一、资源下载
elasticsearch 下载:
https://www.elastic.co/downloads/past-releases/elasticsearch-7-15-0
Kibana 下载:
https://www.elastic.co/downloads/past-releases/kibana-7-15-0
logstash 下载:
https://www.elastic.co/downloads/past-releases/logstash-7-15-0
二、概念介绍
ELK是包含但不限于Elasticsearch(简称es)、Logstash、Kibana 三个开源软件的组成的一个整体。这三个软件合成ELK。是用于数据抽取(Logstash)、搜索分析(Elasticsearch)、数据展现(Kibana)的一整套解决方案,所以也称作ELK stack。说明:ELK是包含但不限于Elasticsearch(简称es)、Logstash、Kibana 三个开源软件的组成的一个整体。这三个软件合成ELK。是用于数据抽取(Logstash)、搜索分析(Elasticsearch)、数据展现(Kibana)的一整套解决方案,所以也称作ELK stack。
“ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana
1、Elasticsearch 是一个搜索和分析引擎。
2、Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。
3、Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。
三、安装部署
1、Java环境
检查是否已经安装Java
java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment UnionTech (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM UnionTech (build 25.312-b07, mixed mode)
设置java环境变量
vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.312.b07-10.up1.uel20.x86_64/
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
2、Elasticsearch安装
sudo rpm -ivh elasticsearch-7.15.1-x86_64.rpm
systemctl start elasticsearch.service
systemctl status elasticsearch.service
systemctl enable elasticsearch.service
浏览器访问:127.0.0.1:9200 ,返回如下表示成功
3、Kibana安装
sudo rpm -ivh kibana-7.15.1-x86_64.rpm
systemctl start kibana.service
systemctl status kibana.service
systemctl enable kibana.service
修改配置文件
可以通过配置文件修改访问地址、端口号等。
sudo vim /etc/kibana/kibana.yml
server.host: IP #对外暴露kibana服务地址,以便可远程访问kibana
elasticsearch.hosts: ElasticsearchIP:9200 #配置elasticsearch服务地址
i18n.locale: "zh-CN" #i18n国际化汉化图形化界面
可以通过浏览器访问:127.0.0.1:5601
4、Logstash安装
sudo rpm -ivh logstash-7.15.1-x86_64.rpm
sudo systemctl start logstash.service
sudo systemctl status logstash.service
sudo systemctl enable logstash.service
配置 filebeat,修改配置文件 /etc/filebeat/filebeat.yml
1、配置 filebeat 从文件收集日志在 filebeat.prospectors 段修改 type 为 log 中的内容:
- type: log
# Change to true to enable this prospector configuration.
enabled: true
# Paths that should be crawled and fetched. Glob based paths.
paths:
- /var/log/test.log
2、配置把日志发送给 logstash,在 output.logstash 段修改配置 中的内容:
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
3、多行事件编码(合并多行到一条记录),在 filebeat.prospectors 配置块中添加下面的配置:
### Multiline options
multiline.pattern: '^['
multiline.negate: true
multiline.match: after
4、注释掉 output.elasticsearch
#output.elasticsearch:
# Array of hosts to connect to.
#hosts: ["localhost:9200"]
5、最后启动 filebeat 服务:
sudo systemctl restart filebeat.service
测试
1、通过 echo 向 /var/log/test.log 文件中追加 ‘[‘ 开头的行模拟日志记录:
echo "[exception:]" >> /var/log/test.log
echo " at xxx" >> /var/log/test.log
echo " at xxx" >> /var/log/test.log
echo "[OK]" >> /var/log/test.log
2、在浏览器中打开 kibana,添加 beat-test* 模式的索引就可以看到日志记录了:
设置中文界面
在kibana6.7之后就开始支持中文了,开启也很简单,只需要在kibana.yml配置文件中添加上如下配置,然后重启kibana即可
vim /etc/kibana/kibana.yml
i18n.locale: "en" #原设置
i18n.locale: "zh-CN" #修改后