ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。
Elasticsearch
是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
#下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-3-2/elasticsearch-7.3.2-x86_64.rpm
Logstash
主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
下载地址:https://www.elastic.co/cn/downloads/past-releases/logstash-7-3-2/logstash-7.3.2.rpm
Kibana
也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
下载地址:https://www.elastic.co/cn/downloads/past-releases/kibana-7-3-2/kibana-7.3.2-x86_64.rpm
因为安装Elasticsearch和logstash需要安装java环境所以我们还需要下载一个jdk环境包:https://www.jb51.net/softs/551517.html/jdk-8u131-linux-x64_.rpm
环境准备
三台服务器
192.168.83.140 (elasticsearch)
192.168.83.141 (logstash)
192.168.83.142 (kibana)
关闭三台服务器上的防火墙
systemctl stop firewalld
setenforce 0
三台服务器时间同步
yum -y install ntpdate
ntpdate ntp.aliyun.com
安装部署
一、三台服务器上传相应的rpm包并安装
192.168.83.140 (elasticsearch)
rpm -ivh jdk-8u131-linux-x64_.rpm
rpm -ivh elasticsearch-7.3.2-x86_64.rpm
192.168.83.141 (logstash)
rpm -ivh jdk-8u131-linux-x64_.rpm
rpm -ivh logstash-7.3.2.rpm
192.168.83.142 (kibana)
rpm -ivh kibana-7.3.2-x86_64.rpm
二、修改elasticsearch的配置文件并启动
vim /etc/elasticsearch/elasticsearch.yml
#集群的名字
17行:cluster.name: my-application
#节点的名字,在集群中是唯一的
23行:node.name: 192.168.83.140(Elasticsearch的名字(具有唯一性))
#监听的IP地址
55行:network.host: 0.0.0.0
#监听的端口
59行:http.port: 9200
#发现的集群的其他elasticsearch节点
68行:discovery.seed_hosts: “192.168.83.140”
72行:cluster.initial_master_nodes: “192.168.83.140”
#集群中有几个Elasticsearch 运行时,集群恢复正常
gateway.recover_after_nodes: 2
启动
#启动Elasticsearch 并设置为开机自启
systemctl start elasticsearch
systemctl enable elasticsearch
三、修改kibana
vim /etc/kibana/kibana.yml
#监听端口
2行:server.port: 5601
#监听IP
7行:server.host: “192.168.83.142”(kibana的ip)
#elasticsearch服务器地址
28行:elasticsearch.hosts: “http://192.168.83.141:9200”
#设置页面语言为中文
114行:i18n.locale: “zh-CN”
启动
systemctl start kibana
systemctl enable kibana
四、修改logstash配置文件
192.168.83.141 (logstash)
cd /etc/logstash/
cp logstash-sample.conf /etc/logstash/conf.d/system.conf
cd /etc/logstash/conf.d/
vim system.conf
input{ \\收集的日志信息
file { \\收集的方式是文件形式
path => "/var/log/messages" \\日志的绝对路径
type => "system-log" \\日志的类型,只是标签的含义,可以自定义名字
start_position => "beginning" \\从日志文件的最开始收集日志
}
}
output{ \\日志的输出
elasticsearch { \\日志输出给elasticsearch
hosts => "192.168.189.171:9200" \\elasticsearch的IP和端口
index => "system-log_%{+YYYY.MM.dd}" \\日志的索引和日期后缀
}
}
给日志文件增加读的权限
chmod 644 /var/log/messages
启动logstash
systemctl start logstash
systemctl enable logstash
各个服务的监听端口
elasticsearch:
9200 节点监听端口
9300 集群监听端口
kibana: 5601
logstash: 9600
192.168.83.142:5601
各个服务启动后,浏览器访问kibana,创建索引然后就可以查询日志了!
*这是最基础的ELK搭建,监控的是Elasticsearch的系统日志,还可以根据需求不同编写不同的logstash配置文件,来达成所需监控的目的,贴合实际生产环境,根据每天的日志的大小,如果日志量达到TB级,可以做elasticsearch的集群,和数据库消息队列等。