请点击打开pdf查看本篇文章
pdf的rul路径为:https://download.zhoufengjie.cn/document/loganalysis/elasticsearch-logstash-kibana-install.pdf
系统:CentOS-7.7
elasticsearch版本:7.7.0【7.8还在预览版】
kibana版本:7.7.0
0、说明简介:
ELK主要由ElasticSearch、Logstash和Kibana三个开源工具组成,还有其他专门由于收集数据的轻量型数据采集器Beats。 Elasticsearch :分布式搜索引擎。
具有高可伸缩、高可靠、易管理等特点。可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 是用Java 基于 Lucene 开发,现在使用最广的开源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基于它来构建自己的搜索引擎。 在elasticsearch中,所有节点的数据是均等的。
Logstash :数据收集处理引擎。
支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储以供后续使用。
Kibana :可视化化平台。
它能够搜索、展示存储在 Elasticsearch 中索引数据。使用它可以很方便的用图表、表格、地图展示和分析数据。
Filebeat:轻量级数据收集引擎。
相对于Logstash所占用的系统资源来说,Filebeat 所占用的系统资源几乎是微乎及微。它是基于原先 Logstash-fowarder 的源码改造出来。换句话说:Filebeat就是新版的 Logstash-fowarder,也会是 ELK Stack 在 Agent 的第一选择。
版本说明: Elasticsearch、Logstash、Kibana、Filebeat安装的版本号必须全部一致,不然会出现kibana无法显示web页面。
ELK工作演示图:
A、Filebeat在APP Server端收集日志
B、Logstash处理过滤Filebeat收集过来的日志
C、Elasticsearch存储Logstash提供的处理之后的日志,用以检索、统计
D、Kibana提供web页面,将Elasticsearch的数据可视化的展示出来
1、软件下载:【从下面网址找最新版本】
https://www.elastic.co/guide/en/elasticsearch/reference/7.7/setup.html#jvm-version
https://www.elastic.co/cn/downloads/elasticsearch
https://www.elastic.co/cn/downloads/kibana
https://www.elastic.co/cn/downloads/logstash
https://www.elastic.co/cn/downloads/beats
也可以从国内的镜像站找软件包,比如:https://mirrors.tuna.tsinghua.edu.cn/elasticstack/yum/elastic-7.x/7.7.0/
1.1、下载软件:【在我安装的时候,最新版本是7.7.0版本】
下载openjdk需要自己找一下路径:http://openjdk.java.net/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-x86_64.rpm.sha512
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.7.0-x86_64.rpm
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.7.0.rpm
1.2、下面是我准备的软件包:
通常ES是多台设备做集群性部署,我这边单独单机部署了。
2.1、关掉基础服务
2.2、安装jdk:
rpm -ivh jdk-8u191-linux-x64.rpm
声明java路径:
vim /etc/profile.d/jdk.sh
source /etc/profile.d/jdk.sh
2.3、部署elasticsearch:
官方安装教程为:https://www.elastic.co/guide/en/elasticsearch/reference/7.7/rpm.html#rpm
修改系统配置属性:vim /etc/security/limits.conf
2.3.1、安装elasticsearch:
校验一下elasticsearch文件是否正常:
安装:rpm -ivh elasticsearch-7.7.0-x86_64.rpm
设置elasticsearch随机启动:
systemctl daemon-reload
systemctl enable elasticsearch
启动elasticsearch:
systemctl start elasticsearch
查看进程监听:
2.3.2、修改elasticsearch配置文件:
停止elasticsearch:
systemctl stop elasticsearch
修改配置文件:
vim /etc/elasticsearch/elasticsearch.yml
vim /etc/elasticsearch/jvm.options
创建目录并赋权为elasticsearch:
mkdir /data/{els_data,log/els} -p
chown -R elasticsearch.elasticsearch /data/els_data
chown -R elasticsearch.elasticsearch /data/log/els
重新启动elasticsearch
systemctl start elasticsearch
查看进程监听:
查看请求状态:
2.3.3、使用elasticsearch的api:
常见api如下:
Elasticsearch API 集群状态:http://192.168.0.97:9200/_cluster/health?pretty
节点状态:http://192.168.0.97:9200/_nodes/process?pretty
分片状态:http://192.168.0.97:9200/_cat/shards
索引分片存储信息:http://192.168.0.97:9200/index/_shard_stores?pretty
索引状态:http://192.168.0.97:9200/index/_stats?pretty
索引元数据:http://192.168.0.97:9200/index?pretty
具体使用说明参见文章:https://www.e-learn.cn/content/java/1078247
3、部署Kibana
Kibana是node.js 编写的,不需要java环境。直接安装即可
3.1、安装Kibana
注意,安装的kibana版本要与elasticsearch版本相同
rpm -ivh kibana-7.7.0-x86_64.rpm
3.2、配置Kibana
理论上应该单独分开部署,我这里单机部署了:
vim /etc/kibana/kibana.yml
创建日志目录和文件并赋权:
mkdir -p /data/log/kibana/
touch /data/log/kibana/kibana.log
chmod o+rw /data/log/kibana/kibana.log
3.3、启动kibana并检查
配置随机启动:
systemctl daemon-reload
systemctl enable kibana
启动kabana
systemctl start kibana
查看端口监听:
访问kibana:
http://192.168.0.97:5601
4、部署Logstash
配置与Elasticsearch相同的Java环境,版本为8以上的Java环境
4.1、安装logstash
rpm -ivh logstash-7.7.0.rpm
vim /etc/logstash/logstash.yml
增加目录权限:[一定要增加权限,不然可能会一直不上传日志]
mkdir /data/logstash/plugin-data -p
chown logstash:logstash /data/logstash -R
chmod +w /data/logstash/plugin-data -R
chown logstash:logstash /var/log/logstash -R
4.2、配置logstash采集
配置nginx:这里以采集nginx的日志为例,修改nginx的log配置。下面的信息采集对应的nginx的log配置为json格式,便于采集使用;
配置logstash收集日志配置文件:
vi /etc/logstash/conf.d/nginx-log.conf
4.3、测试和启动logstash
手动测试logstash是否正常
/usr/share/logstash/bin/logstash –path.settings /etc/logstash/ -f /etc/logstash/conf.d/nginx.conf –config.test_and_exit
设置logstash随机启动,并启动logstash
systemctl enable logstash
systemctl start logstash
查看日志:/var/log/logstash/logstash-plain.log【有比较小的错误可以后续再排查】
详情见:https://www.jianshu.com/p/d7e0a502fd52
5、部署filebeat
我们知道Elastic Stack被称之为ELK (Elasticsearch,Logstash and Kibana)。由于beats的加入,现在很多人把ELK说成为ELKB。这里的B就是代表Beats。Beats在Elasticsearch中扮演很重要的角色,filebeat可以向logstash输入日志,也可以直接向elasticsearch输入日志,并且beats可扩展,支持自定义构建。
因为:Logstash的数据都是从Beats中获取,Logstash已经不需要自己去数据源中获取数据了。 以前我们使用的日志采集工具是logstash,但是logstash占用的资源比较大,没有beats轻量,所以:官方也推荐使用beats来作为日志采集工具。
5.1、安装filebeat
rpm -ivh filebeat-7.7.0-x86_64.rpm
5.2、配置filebeat
vi /etc/filebeat/filebeat.yml
测试:/usr/bin/filebeat test output
5.3、启动filebeat:
配置随系统启动:
systemctl enable filebeat
启动filebeat:
systemctl start filebeat
5.4、filebeat使用和排障
见:https://www.elastic.co/cn/beats/filebeat
https://www.elastic.co/guide/en/beats/filebeat/current/index.html
6、在kibana上配置索引
日志=>设置
management(管理)=>索引模式=>创建索引模式
在discover里面查看日志是否已经上来了: