ELK简介
官网地址:https://www.elastic.co/cn/
官网权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。
Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。
Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。
Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据
部署规划
计划在三台CentOS7机器上部署ELK,其中一台机器作为ELK的服务节点,IP为192.168.1.185;另外两台作为客户节点,IP为192.168.1.186/187。
其中服务节点部署Elasticsearch、Logstash和Kibana三个组件,客户节点部署Logstash。
服务节点部署
环境准备
默认root用户下操作,其他用户请在命令前添加sudo。
yum -y install java-1.8.0-openjdk |
2、关闭防火墙。
systemctl stop firewalld |
或者设置防火墙规则:
|
firewall-cmd --add-port=9200/tcp --permanent |
3、添加ELK仓库
|
cat > /etc/yum.repos.d/elasticsearch.repo < |
5、更新yum包
yum clean all |
Elasticsearch
如果yum 下载慢,使用下面安装方法上传完成后,执行安装:
wget –c https://mirrors.huaweicloud.com/elasticsearch/7.2.1/elasticsearch-7.2.1-x86_64.rpm
rpm -ivh elasticsearch-7.2.1-x86_64.rpm
2、确认Elasticsearch的安装信息
# rpm -qi elasticsearch
Name : elasticsearch
Epoch : 0
Version : 7.2.1
Release : 1
Architecture: x86_64
Install Date: Thu 11 Jun 2020 10:16:45 AM CST
Group : Application/Internet
Size : 535521434
License : Elastic License
Signature : RSA/SHA512, Thu 25 Jul 2019 03:39:33 AM CST, Key ID d27d666cd88e42b4
Source RPM : elasticsearch-7.2.1-1-src.rpm
Build Date : Thu 25 Jul 2019 02:08:59 AM CST
Build Host : packer-virtualbox-iso-1559162487
Relocations : /usr
Packager : Elasticsearch
Vendor : Elasticsearch
URL : https://www.elastic.co/
Summary : Distributed RESTful search engine built for the cloud
Description :
Reference documentation can be found at
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
and the 'Elasticsearch: The Definitive Guide' book can be found at
https://www.elastic.co/guide/en/elasticsearch/guide/current/index.html
3、启动Elasticsearch并设置开机启动
systemctl daemon-reload
systemctl start elasticsearch
systemctl enable elasticsearch.service
4、查看Elasticsearch运行状态
systemctl status elasticsearch
ps -ef | grep elasticsearch
netstat -nlpt
5、尝试请求
# curl localhost:9200
{
"name" : "node-1",
"cluster_name" : "my-application",
"cluster_uuid" : "zxkahIszSWahBps7ozbGEg",
"version" : {
"number" : "7.2.1",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "fe6cb20",
"build_date" : "2019-07-24T17:58:29.979462Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
6、设置允许其他机器访问
当前只能响应本机的请求,想要其他机器也能访问的话,那么需要修改elasticsearch的配置。
# vim /etc/elasticsearch/elasticsearch.yml,如下修改:
|
# line 17, uncomment |
7、重启Elasticsearch
|
systemctl stop elasticsearch |
如果可以看到:::9200,就可以通过外部浏览器访问Elasticsearch服务了,至此Elasticsearch安装配置完成。
Kibana
1、安装Kibana
yum install -y kibana
同样的,如果下载速度缓慢,那么可以通过浏览器下载 https://mirrors.huaweicloud.com/kibana/7.2.1/kibana-7.2.1-x86_64.rpm ,然后上传到服务节点,上传后执行安装:
rpm -ivh kibana-7.2.1-x86_64.rpm
2、确认Kibana的安装信息
rpm -qi kibana
Name : kibana
Version : 7.2.1
Release : 1
Architecture: x86_64
Install Date: Thu 11 Jun 2020 10:44:13 AM CST
Group : default
Size : 557832921
License : Elastic License
Signature : RSA/SHA512, Thu 25 Jul 2019 03:42:35 AM CST, Key ID d27d666cd88e42b4
Source RPM : kibana-7.2.1-1.src.rpm
Build Date : Thu 25 Jul 2019 02:35:36 AM CST
Build Host : packer-virtualbox-iso-1559162487
Relocations : /
Packager : Kibana Team
Vendor : Elasticsearch, Inc.
URL : https://www.elastic.co
Summary : Explore and visualize your Elasticsearch data
Description :
Explore and visualize your Elasticsearch data
3、启动Kibana并设置开机启动
systemctl start kibana |
4、查看Kibana运行状态
|
systemctl status kibana |
5、测试访问
# curl localhost:5601 -L
6、设置允许其他机器访问
# vim /etc/kibana/kibana.yml,如下修改:
|
# line 2, uncomment and change |
7、重启Kibana
|
systemctl stop kibana |
如果可以看到0.0.0.0:5601,就可以通过外部浏览器访问Kibana服务了,至此Kibana安装配置完成。
Logstash
1、安装Logstash
yum install -y logstash
也可以通过浏览器下载 https://mirrors.huaweicloud.com/logstash/7.2.1/logstash-7.2.1.rpm ,然后上传到服务节点,上传后执行安装:
rpm -ivh logstash-7.2.1.rpm
2、确认Logstash的安装信息
# rpm -qi logstash
Name : logstash
Epoch : 1
Version : 7.2.1
Release : 1
Architecture: noarch
Install Date: Thu 11 Jun 2020 10:50:36 AM CST
Group : default
Size : 299656320
License : Elastic License
Signature : RSA/SHA512, Thu 25 Jul 2019 03:43:37 AM CST, Key ID d27d666cd88e42b4
Source RPM : logstash-7.2.1-1.src.rpm
Build Date : Thu 25 Jul 2019 03:26:03 AM CST
Build Host : packer-virtualbox-iso-1559162487
Relocations : /
Packager :
Vendor : Elasticsearch
URL : http://www.elasticsearch.org/overview/logstash/
Summary : An extensible logging pipeline
Description :
An extensible logging pipeline
3、启动Logstash
systemctl start logstash |
4、查看Logstash运行状态
|
systemctl status logstash |
启动成功了,然后呢?怎么使用?
5、Logstash hello world
systemctl stop logstash
/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
输入启动命令后,耐心等待服务启动,直到出现Successfully started Logstash API endpoint。输入“hello world”回车,即可打印出输出。
logstash通过管道来处理数据,标准的管道包含input、filter和output。以上命令,指定了一个管道的参数,没有filter,input是控制台标准输入,output是控制台标准输出。
6、管道配置写入文件
在当前用户目录,新建配置文件std.conf,内容为:
|
input { |
7、测试配置文件并启动
/usr/share/logstash/bin/logstash --path.settings /etc/logstash -f ~/std.conf |
8、从文件中读取信息
(1)新建/usr/local/test.log文件,内容为:
hello logstash! |
(2)新建test.conf,内容为:
|
input { |
(3)启动Logstash
/usr/share/logstash/bin/logstash --path.settings /etc/logstash -f ~/test.conf
9、写入信息到文件
(1)修改test.conf为:
|
input { |
(2)启动Logstash
/usr/share/logstash/bin/logstash --path.settings -f ~/test.conf
启动后,/usr/local/目录下多了test.log.out文件。
数据传递
Logstash收集到了数据,怎样传递给Elasticsearch显示?怎样传递给Kibana显示?
1、修改test.conf为:
|
input { |
2、启动Logstash
/usr/share/logstash/bin/logstash -f ~/test.conf
3、查看索引
浏览器访问 http://192.168.1.185:9200/_cat/indices?v
其中有个索引是logstash的,这就是我们想要查看的数据索引。
4、查看数据
浏览器访问 http://192.168.1.185:9200/logstash-2020.06.11-000001/_search
看到了hello logstash!,说明数据已经成功传递到了Elasticsearch。链接后添加?pretty参数,可以进行格式化显示。
5、Kibana添加indices
浏览器访问Kibana http://192.168.1.185:5601
点击页面上的Logs,---》数据源按钮。
然后填写indices相关信息 , 最后点击Update Source,即可在页面上看到Logstash传递的信息。
6、修改test.log
修改test.log为:
hello logstash! |
客户节点部署
环境准备
默认root用户下操作,其他用户请添加sudo。
yum -y install java-1.8.0-openjdk
2、关闭防火墙。
systemctl stop firewalld |
3、添加ELK仓库
|
cat > /etc/yum.repos.d/elasticsearch.repo < |
4、更新yum包
yum clean all |
Logstash
1、安装Logstash
yum install -y logstash
也可以通过浏览器下载 wget https://mirrors.huaweicloud.com/logstash/7.2.1/logstash-7.2.1.rpm ,然后上传到服务节点,上传后执行安装:
rpm -ivh logstash-7.2.1.rpm
2、确认Logstash的安装信息
rpm -qi logstash
3、创建测试文件
新建配置文件test.conf,内容为:
|
input { |
新建/usr/local/test.log,内容为:
this is a log recorded by 186 |
4、启动logstash
/usr/share/logstash/bin/logstash -f ~/test.conf |
5、在Kibana查看日志
刷新Kibana,即可看到客户节点的日志。