运维入坑实践之ELK集群部署
ELK,即elasticsearch、logstash、kibana,是一个强大的日志分析利器,目前大部分公司都在使用此集群作为日志分析工具。业界比较流行的除了elk还有graylog(后续会整理一份graylog集群搭建教程)。本文主要讲解了elk集群的搭建步骤,后续会基于本集群为大家讲解nginx日志接入elk及字段解析与查询。
版本说明
系统版本:
CentOS Linux release 7.4.1708 (Core)
软件版本:
- jdk1.8(安装步骤略)
- Elasticsearch:7.12.1
- Kibana:7.12.1
- Logstash:7.12.1
角色分配
ip规划 | 角色分配 |
192.168.25.101 | ES:master、datanode Kibana |
192.168.25.102 | ES:master、datanode Logstash |
192.168.25.103 | ES:master、datanode |
集群搭建步骤
安装elasticearch
- wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.1-linux-x86_64.tar.gz
- tar -xf elasticsearch-7.12.1-linux-x86_64.tar.gz -C /opt/
- 创建用户及目录
useradd es ##创建es账户,服务启动需要使用非root用户 mkdir /data/es/{data|logs} -p ##创建数据、日志目录 chown -R es. /data/es ##修改文件夹宿主
- 修改配置文件(另外两个节点配置相同,只需修改其中的节点名称和ip)
vi /opt/elasticsearch/config/elasticsearch.yml cluster.name: test-es-cluster ## 集群名称 node.name: test01 ## 集群节点名称 path.data: /data/es/data ## 数据存放路径 path.logs: /data/es/logs ## log存放路径 network.host: 192.168.25.103 ## 集群节点ip http.port: 9200 ## 端口 discovery.seed_hosts: ["192.168.25.101", "192.168.25.102","192.168.25.103"] cluster.initial_master_nodes: ["test01", "test02","test03"]
-
启动集群服务
/opt/elasticsearch/bin/elasticsearch -d
-
常见问题:
-
bootstrap check failure [1] of [2]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
vi /etc/security/limits.conf ##编辑此文件,添加以下内容: * soft nofile 65536 * hard nofile 65536
-
bootstrap check failure [2] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
vi /etc/sysctl.conf ##修改此配置文件 vm.max_map_count=262144
logstash部署
- wget https://artifacts.elastic.co/downloads/logstash/logstash-7.12.1-linux-x86_64.tar.gz
- tar -xf logstash-7.12.1-linux-x86_64.tar.gz -C /opt/
- 编辑配置文件
##收集本地日志到es集群 input{ file{ path => "/data/test.log" type=> "test" start_position => "beginning" codec => plain } } output{ elasticsearch { hosts => [ "192.168.25.101:9200", "192.168.25.102:9200", "192.168.25.103:9200" ] index => "test-%{+YYYY.MM.dd}" } }
- 启动服务
/opt/logstash-7.12.1/bin/logstash -f /opt/logstash-7.12.1/config/test.conf
Kibana部署
- wget https://artifacts.elastic.co/downloads/kibana/kibana-7.12.1-linux-x86_64.tar.gz
- tar -xf kibana-7.12.1-linux-x86_64.tar.gz -C /opt/
- 创建配置文件
-
server.port: 5601 server.host: "192.168.25.103" server.name: "test-kibana" elasticsearch.hosts: ["http://192.168.25.101:9200"]
- 启动服务
/opt/kibana-7.12.1-linux-x86_64/bin/kibana -c /opt/kibana-7.12.1-linux-x86_64/config/kibana.yml
注:本文中所有配置均为生产环境实测配置。