ELK工作流程
-
多个独立的Agent(Shipper)负责收集不同来源的数据,一个中心Agent(Indexer)负责汇总和分析数据,在中心Agent前的Broker(使用Redis实现)作为缓冲区,中心Agent后的ElasticSearch用于存储和搜索数据,前端的Kibana提供丰富的图表展示。
-
Shipper表示日志收集,使用LogStash收集各种来源的日志数据,可以是系统日志、文件、Redis、mq等等;
-
Broker作为远程Agent与中心Agent之间的缓冲区,使用Redis实现,一是可以提高系统的性能,二是可以提高系统的可靠性,当中心Agent提取数据失败时,数据保存在Redis中,而不至于丢失;
-
中心Agent(Indexer)也是LogStash,从Broker中提取数据,可以执行相关的分析和处理(Filter);
-
ElasticSearch用于存储最终的数据,并提供搜索功能;
-
Kibana提供一个简单、丰富的Web界面,数据来自于ElasticSearch,支持各种查询、统计和展示
机器部署
系统 | IP | 配置 |
---|---|---|
CentOS 6.5 | 192.168.123.2 | Logstash |
CentOS 6.5 | 192.168.123.3 | ES+Kibana |
Logstash
(Logstash部署在IP为192.168.123.2的机器上。)
数据流
input|decode|filter|encode|output
安装和配置
1.安装Java环境
[root@localhost ~]# yum install java-1.8.0-openjdk
[root@localhost ~]# export JAVA_HOME=/usr/java
[root@localhost bin]# which java
/usr/bin/java
2.下载并安装GPG key
[root@localhost ~]# rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch
3.yum源配置
[root@localhost ~]# cat > /etc/yum.repos.d/logstash.repo <<EOF
[logstash-5.0]
name=logstash repository for 5.0.x packages
baseurl=http://packages.elasticsearch.org/logstash/5.0/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1
EOF
[root@localhost ~]# yum clean all
3.安装Logstash
[root@localhost ~]# yum install logstash
4.安装目录
[root@localhost ~]# whereis logstash
logstash: /etc/logstash /usr/share/logstash
/etc/logstash/conf.d #配置文件目录,默认是空的,需要自己写
/usr/share/logstash/bin/logstash #执行文件
5.编辑一个简单的配置文件
[root@localhost bin]# cd /etc/logstash/conf.d
[root@localhost bin]# vim 1.conf
#1.conf文件内容
input{
stdin{}
}
output{
stdout{}
}
################################
input插件stdin(标准输入)
output插件 stdout(标准输出)
/opt/logstash/bin/logstash 前台启动
提示:标准输入和标准输出的意思就是我们输入什么就会输出什么
将日志存储