上一篇,我记录了elasticsearch,logstash,kibana三个软件的安装和运行,并按照我之前的博文,使用supervisor进行进程管理,且我们elasticsearch是做了集群的,两个节点,都可以作为master和data节点。架构图如下:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZD9CX5RXa2Fmcn9CXwczLcVmds92czlGZvwVP9EUTDZ0aRJkSwk0LcxGbpZ2LcBDM08CXlpXazRnbvZ2LcRlMMVDT2EWNvwFdu9mZvw1dVpXTwEERNhXU6hVdsdUZwZlMkZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TNzEjNwcDNxEDOyETM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
架构图上,已完成后面的部分,接下来记录一下前半部分的实现,即filebeat和redis,和一起其他需要注意的地方。
1. redis
在这个架构中, redis用来做消息管道,用来缓存储峰值数据等。并不需要特别的设置,直接安装一个redis服务即可。因为知识用来一个管道,所以基本并不消耗redis的内存磁盘的存储资源,就像一个中转站,先放一下,马上就被取走。没有数据或数据量较小的时候哦。在redis中看不到任何数据,要像测试filebeat是否正常输出到redis,就要将logstash关掉,然后启动filebeat,观察redis中指定数据库中的数据,然后再开启logstash,会发现redis中的数据以可观的速度在开始减少,直到刷新不出数据。则验证了filebeat --> redis --> logstash 的管道的连通性。
redis的安装这也不赘述,请参考我之前的博文,redis的安装:Centos7.2 Redis数据库的安装与自启动配置
2. filebeat的安装与配置
filebeat是5.x版本后的采集器beats中的其中一个,用于对日志文件的数据进行采集,简单处理,发送给logstash,elasticsearch,kafka,redis等。这里我们是发送给redis。
首先,去官网下载对应版本的filebeat并安装
$ wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.6.4-x86_64.rpm ##下载rpm安装包,更方便的进行服务管理
$ yum localinstall filebeat-5.6.4-x86_64.rpm ## 本地安装
$ vim /etc/filebeat/filebeat.yml ## 修改配置文件,下面为配置文件内容
filebeat.prospectors:
- input_type: log ## 输入类型,为log日志,有两种类型可选,log日志和stdin标准输入
paths: ## 要实时监听采集日志的日志文件路径,下面可以写多个路径,指定多个文件。这里以tomcat日志为例
- /usr/local/apache-tomcat-8080/logs/x5.log
encoding: utf-8 ## 日志编码方式
document_type: tomcat_log_x5sit ## 数据类型,增加这个字段与数据一起发送给后面,可以用来进行日志的分类
multiline.pattern: ^20 ## filebeat默认是以一行为一条日志数据,但是tomcat的错误日志等,有时会输出很多行,需要将下面数据的多行归类为同一条数据。
multiline.negate: true ## pattern是正则匹配规则,这个为true标识,单行数据满足上述匹配规则则视为一条数据,否则则视为上一条数据的内容。
multiline.match: after ## after是表示如果视为上一条数据的内容是加到数据的后面, before则是前面。
- input_type: log ## 类似上面,可以添加多个监听的日志进程,每个进程又可监听多个日志文件。
paths:
- /usr/local/apache-tomcat-8082/logs/pmsSrv-custSrv_*.log ## 这里指定了多个日志文件。
encoding: utf-8
#close_older: 0
document_type: tomcat_log_sms
multiline.pattern: ^20
multiline.negate: true
multiline.match: after
name: "192.168.9.87" ## filebeat的name,这里我用IP来区分不同机器。
output.redis: ## 输出出口配置redis
hosts: ["192.168.9.79"]
port: 6379
key: "redis-pipeline" ## 这个key则是设定输出的数据存到redis队列的key值,要跟logstash中向redis取数据时设定的key相同,才能取到数据,也就是说可以通过这个配置多个管道
db: "10" ## 指定redis数据库。
OK,配置完成后,启动filebeat。filebeat
$ systemctl start filebeat
OK,然后通过上面说的方法,验证一下是否正常启动,管道是否联通。
一切正常后,则可以访问kibana的页面,http://192.168.9.90:5601。 然后用默认的index,即logstash-* 来进行索引,即可进入系统,则可以在discover上看到实时日志输出。
如果你能看到类似的界面,则恭喜你,到此,整个系统算是搭建成功了
OK,到此,基础的系统就搭建完成了,然后在此基础上,要想拓展多种别的功能,则需要添加x-pack插件包,下面说一下,如何安装并修改配置:
1. 取官网下载对应版本的x-pack的插件包,然后利用本地文件安装,官网上是写的自动用网络下载安装,但由于下载速度奇慢,其x-pack较大,每个都自动安装则要重复下载多次。这里用文件本地安装:
$ wget https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-5.6.4.zip
$ /usr/local/ELK/bielasticsearch-5.6.4/bin/elasticsearch-plugin install file:///path/to/file/x-pack-5.6.4.zip
$ /usr/local/ELK/logstash-5.6.4/bin/logstash-plugin install file:///path/to/file/x-pack-5.6.4.zip
$ /usr/local/ELK/kibana-5.6.4-linux-x86_64/bin/kibana-plugin install file:///path/to/file/x-pack-5.6.4.zip
安装后,默认的用户密码为: user:elastic password:changeme
需要修该配置,添加免密认证,才能正常的让logstash连接到elasticsearch,kibana连接elasticsearch。
vim /usr/local/ELK/kibana-5.6.4-linux-x86_64/config/kibana.yml ## 修改kiban配置,新增下面两行配置,然后重启
elasticsearch.username: "elastic"
elasticsearch.password: "changeme"
vim /usr/local/ELK/logstash-5.6.4/config/logstash.yml ## 修改logstash的配置,新增下面三行,然后重启
xpack.monitoring.elasticsearch.url: "http://192.168.9.89:9200"
xpack.monitoring.elasticsearch.username: "logstash_system"
xpack.monitoring.elasticsearch.password: "changeme"
vim /usr/local/ELK/conf/all.conf ## 修改logstash指定运行的自定义过滤规则的配置文件,在输出到elasticsearch时需要添加用户密码验证。
output {
elasticsearch {
hosts => ["192.168.9.89:9200","192.168.9.90:9200"]
index => "logstash-test"
user => "elastic"
password => "changeme"
}
}
OK,重启elk三个服务后,访问kibana界面,会出现用户名密码验证,用x-pack默认的用户密码进行验证即可。
但是,到此还只是算是基础的完成了,剩下的就是根据你要监控的系统,配置各种不同的filebeat,各种不同logstash过滤方式,将各种不同类型的数据传输到elasticsearch。然后再配置不同的监视图标,仪表盘,来进行可视化的监控分析。
在上面,我都是以tomcat日志为例子,进行的采集,logstash中grok也是写的tomcat的日志过滤格式,为了能同时过滤多种日志,然后设定多个仪表盘,多个监控图标。
今天就到这里吧,下一篇则重点记录讲解,系统的其他的各种日志的采集,lotstash的过滤配置文件编写,和kibana上界面的配置,监控的配置等等。