ELK之elasticsearch安装

设置主机名

[root@es1 ~]# hostnamectl set-hostname es1.example.local

主机名

[root@es1 ~]# hostname
es1.example.local

创建目录

[root@es1 ~]# mkdir /data/elk -p
[root@es2 ~]# mkdir /data/elk -p
[root@es3 ~]# mkdir /data/elk -p

每台都要查看磁盘

[root@es1 ~]# fdisk -l

格式化

[root@es1 ~]# mkfs.ext4 /dev/sdb

查看磁盘

[root@es1 ~]# lsblk -f

sdb    ext4                                     058fe63a-ae02-4aae-9295-38eeae9ce98b

临时挂载

[root@es1 ~]# mount /dev/sdb /data/elk/

查看挂载

[root@es1 ~]# df -Th

/dev/sdb       ext4       490G   53M   488G   1% /data/elk

永久挂载

[root@es1 ~]# echo "/dev/sdb /data/elk/ ext4 defaults 0 0" >> /etc/fstab

验证

[root@es1 ~]# umount /data/elk

[root@es1 ~]# mount -a

[root@es1 ~]# df -Th

安装es

注意:es依赖jdk,可以下载官方的es包中包含jdk就无须下载jdk

使用dpkg安装

[root@es1 src]# dpkg -i elasticsearch-7.12.1-amd64.deb

拷贝到其他机器

[root@es1 src]# scp elasticsearch-7.12.1-amd64.deb 172.31.2.102:/usr/local/src

[root@es1 src]# scp elasticsearch-7.12.1-amd64.deb 172.31.2.103:/usr/local/src

修改配置文件

[root@es1 ~]# vim /etc/elasticsearch/elasticsearch.yml

cluster.name: my-long
node.name: elk-node1
path.data: /data/elk/data
path.logs: /data/elk/logs
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200

discovery.seed_hosts: ["172.31.2.101", "172.31.2.102",'172.31.2.103']

cluster.initial_master_nodes: ["172.31.2.101", "172.31.2.102",'172.31.2.103']

action.destructive_requires_name: true

gateway.recover_after_nodes: 2

配置文件详解

cluster.name: ELK-Cluster #ELK 的集群名称,名称相同即属于是同一个集群
node.name: elk-node1 #当前节点在集群内的节点名称,与 host1 不能相同
path.data: /elk/data #ES 数据保存目录
path.logs: /elk/logs #ES 日志保存目
bootstrap.memory_lock: true #服务启动的时候锁定足够的内存,防止数据写入swap
network.host: 0.0.0.0 #监听 IP
http.port: 9200 #监听端口
#集群中 node 节点发现列表
discovery.seed_hosts: ["172.31.2.101","172.31.2.102","172.31.2.103" #集群初始化那些节点可以被选举为 master
cluster.initial_master_nodes: ["172.31.2.101","172.31.2.102","172.31.2.103"]
#2.x 5.x 6.x 配置节点发现列表
discovery.zen.ping.unicast.hosts: ["192.168.15.11", "192.168.15.12"]
#一个集群中的 N 个节点启动后,才允许进行数据恢复处理,默认是 1
gateway.recover_after_nodes: 2

# 设置是否可以通过正则或者_all 删除或者关闭索引库,默认 true 表示必须需要
显式指定索引库名称,生产环境建议设置为 true,删除索引库的时候必须指定,
否则可能会误删索引库中的索引库。
action.destructive_requires_name: true

修改内存限制,并同步配置文件:
内存锁定的配置参数:

https://discuss.elastic.co/t/memory-lock-not-working/70576

修改内存

[root@es1 ~]# vim /etc/elasticsearch/jvm.options
-Xms2g
-Xmx2g

最小和最大内存限制,为什么最小和最大设置一样大?

https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html

官方配置文档最大建议 30G 以内。

修改授权

[root@es1 ~]# chown elasticsearch.elasticsearch /data/elk/ -R

改启动文件

[root@es1 ~]# vim /usr/lib/systemd/system/elasticsearch.service


User=elasticsearch
Group=elasticsearch

LimitMEMLOCK=infinity

重新加载

[root@es1 ~]# systemctl daemon-reload

重新启动

[root@es1 ~]# systemctl restart elasticsearch

查看端口

[root@es1 ~]# ss -tanl

LISTEN               0                     128                                               *:9200                                           *:*
LISTEN               0                     128                                               *:9300                                           *:*

登录浏览器查看:http://172.31.2.101:9200/

安装 elasticsearch 插件之 head:

插件是为了完成不同的功能,官方提供了一些插件但大部分是收费的,另外也有一些开发
爱好者提供的插件,可以实现对 elasticsearch 集群的状态监控与管理配置等功能。

浏览器安装 elasticsearch 插件:

https://chrome.google.com/webstore/category/extensions?hl=zh-CN

搜索:elasticsearch head

ELK脚本批量删除index索引

删除多少天的

DATE=`date -d "5 days ago" +%Y.%m.%d`

删除的文件名

完整脚本

[root@es01 ~]# cat es-delete.sh
#!/bin/bash
DATE=`date -d "5 days ago" +%Y.%m.%d`
# 放index索引名称
NAME="
XXXX
XXXX
XXXX
"
for i in ${NAME};do
  FILE_NAME=${i}-${DATE}
  # 删除index索引名
  curl -XDELETE http://ip:9200/${FILE_NAME}
done

手动测试

[root@es01 ~]# curl -XDELETE http://ip:9200/xxx-xxx-index索引
原文地址:https://www.cnblogs.com/xuanlv-0413/p/15374785.html