在上 一篇的基础上Centos7 ELK 8.2配置与安装及SpringBoot集成 完成集群配置
1.Elasticsearch
假设有两台机器,192.168.1.177和192.168.1.178.Elasticsearch版本8.2.2 ,不同版本配置参数可能不同.
192.168.1.177的elasticsearch.yml
- cluster.name: elk
- node.name: elk-01
- network.host: 192.168.1.178
- discovery.seed_hosts: ["192.168.1.177", "192.168.1.178"]
- cluster.initial_master_nodes: ["elk-01", "elk-02"]
-
- http.port: 9222
- http.host: 0.0.0.0
- xpack.security.enabled: false
- xpack.security.transport.ssl.enabled: false
192.168.1.178的elasticsearch.yml
- cluster.name: elk
- node.name: elk-02
- network.host: 192.168.1.177
- discovery.seed_hosts: ["192.168.1.177", "192.168.1.178"]
- cluster.initial_master_nodes: ["elk-01", "elk-02"]
-
- http.port: 9222
- http.host: 0.0.0.0
- xpack.security.enabled: false
- xpack.security.transport.ssl.enabled: false
分别启动两个节点后访问http://192.168.1.177:9222/和http://192.168.1.178:9222/
显示如下信息表示成功
- {
- "name" : "elk-01",
- "cluster_name" : "elk",
- "cluster_uuid" : "FBTL85XWR3CkzbgJvOEfPA",
- "version" : {
- "number" : "8.2.2",
- "build_flavor" : "default",
- "build_type" : "tar",
- "build_hash" : "9876968ef3c745186b94fdabd4483e01499224ef",
- "build_date" : "2022-05-25T15:47:06.259735307Z",
- "build_snapshot" : false,
- "lucene_version" : "9.1.0",
- "minimum_wire_compatibility_version" : "7.17.0",
- "minimum_index_compatibility_version" : "7.0.0"
- },
- "tagline" : "You Know, for Search"
- }
- {
- "name" : "elk-02",
- "cluster_name" : "elk",
- "cluster_uuid" : "R2swnVINQ9aT04EALbyoQA",
- "version" : {
- "number" : "8.2.2",
- "build_flavor" : "default",
- "build_type" : "tar",
- "build_hash" : "9876968ef3c745186b94fdabd4483e01499224ef",
- "build_date" : "2022-05-25T15:47:06.259735307Z",
- "build_snapshot" : false,
- "lucene_version" : "9.1.0",
- "minimum_wire_compatibility_version" : "7.17.0",
- "minimum_index_compatibility_version" : "7.0.0"
- },
- "tagline" : "You Know, for Search"
- }
通过启动日志可查看集群状态
浏览器访问http://192.168.1.177:9222/_cat/health?v和http://192.168.1.178:9222/_cat/health?v
可查看集群状态
查看索引状态http://192.168.1.177:9222/_cat/indices?v
Elasticsearch常见命令及参数说明:
- GET _cat/health?v 该命令的作用是查看集群的健康状态。
-
- 具体参数所表示的意义:
-
- Status,这个参数显示的是集群的状态,red红表示集群不可用,有故障。yellow黄表示集群不可靠但可用,一般单节点时就是此状态。green正常状态,表示集群一切正常。
- node.total,这个参数显示的是节点数,表示该集群有多少个节点。
- node.data,上文也说到过个参数是数据节点。显示数据节点的个数。
- Shards,这个参数显示的是分片数,表示我们把数据分成多少块存储。
- Pri,这个参数显示的是主分片数主分片数
- active_shards_percent,这个参数显示的是激活的分片百分比,这里可以理解为加载的数据分片数,只有加载所有的分片数,集群才算正常启动,每次重启这个参数必然不会是百分百,当参数全部激活完毕,这个参数到达百分百时,集群才算是正常启动了。
- GET _cat/indices?v
- GET _cat/indices?v 该命令的作用是查看集群中所有索引的信息。
-
- 具体参数所表示的意义:
-
- Health,这个参数显示的是索引健康状态green为正常,yellow表示索引不可靠,red索引不可用。(重启后开始一般都为yellow状态,这主要是因为分片未全部激活,等待全部激活或索引就会恢复正常,恢复时间一般情况是根据索引的大小决定)
- status,这个参数显示的是索引的状态,是关闭还是打开。
- index,索引名称。
- uuid,这是索引的唯一标识,由系统随机生成。
- docs.count,该索引的文档数。
- docs.deleted,这个参数统计的是已经删除的文档数。
- store.size,索引存储的总容量。
- pri.store.size,主分片的总容量。
- GET _cat/thread_pool
- GET _cat/thread_pool 该命令是查看集群的线程池,导入数据的时候为了方便查看也可以只看写入线程_cat/thread_pool/write?v。根据各个节点线程池的情况可以很直观的看出自己那个节点的性能受到影响,从而去确定问题所在。
-
- 具体参数所表示的意义:
-
- node.name,该参数显示的该线程所在的节点。(一般为数据节点)
- name,线程名称列如write
- active,正在执行的线程数
- queue,等待请求的线程数(该参数如果一直很大的话就需要检查这个节点各项参数配置是否合理了)
- rejected,拒绝的线程请求
- GET _cat/nodes?v
- 该命令是查看所有集群的节点,查看节点是否都加入了集群一般启动的时候使用,同时查看集群中各节点的情况。
-
- Ip,对应节点ip。
- heap.percent,堆内存使用情况。
- ram.percent,运行内存使用情况。
- cpu,cpu使用情况。
- master,带*星号表明该节点是主节点。带-表明该节点是从节点。
- name,节点名称
- GET _cat/allocation?v
- 该命令是查看集群中的各节点所在磁盘的磁盘状况
-
- shards,集群中各节点的分片数。
- disk.indices,索引所占空间。
- disk.used,磁盘使用容量
- disk.avail,磁盘可用容量
- disk.total,磁盘总容量
- disk.percent,磁盘便用率
启动时可能遇到的
问题1
解决方法:
切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
在尾行添加以下内容
vm.max_map_count=262144
并执行命令
sysctl -p
问题2
解决方法:
vi /etc/security/limits.conf
下面这行代码就添加到这个配置文件的末尾就好
- * soft nofile 65536
- * hard nofile 65536
保存完一定要重新登录才能生效.
可以用以下命令查询设置是否成功
- ulimit -Hn
- ulimit -Sn
2.Kibana
修改配置文件config/kibana.yml
- #配置端口号
- server.port: 5601
- #配置网络访问地址
- server.host: "0.0.0.0"
- #配置es链接地址(es集群,多个用逗号分隔)
- elasticsearch.hosts: ["http://192.168.1.177:9222","http://192.168.1.178:9222"]
- #配置中文语言界面
- i18n.locale: "zh-CN"
启动时可能遇到报错
这个时候删除Elasticsearch、Kibana和Logstash解压后目录下的data文件夹下的所有文件再启动.
3.Logstash
修改logstash配置文件
-
-
- input {
- tcp {
- mode => "server"
- host => "0.0.0.0" # 允许任意主机发送日志
- #type => "elk1" # 设定type以区分每个输入源
- port => 4567
- codec => json_lines # 数据格式
- }
- beats {
- port => 5044
- }
- }
-
- output {
- elasticsearch {
- hosts => ["http://192.168.1.177:9222","http://192.168.1.178:9222"]
- index => "springboot-logstash-%{+YYYY.MM.dd}"
- codec => "json"
- #user => "elastic"
- #password => "changeme"
- }
- }
可以用kibana的后台查询索引运行情况