天天看点

Centos7.2 搭建ELK-5.6.4日志分析平台(二)

上一篇,我记录了elasticsearch,logstash,kibana三个软件的安装和运行,并按照我之前的博文,使用supervisor进行进程管理,且我们elasticsearch是做了集群的,两个节点,都可以作为master和data节点。架构图如下:

Centos7.2 搭建ELK-5.6.4日志分析平台(二)

架构图上,已完成后面的部分,接下来记录一下前半部分的实现,即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上看到实时日志输出。

Centos7.2 搭建ELK-5.6.4日志分析平台(二)

如果你能看到类似的界面,则恭喜你,到此,整个系统算是搭建成功了

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上界面的配置,监控的配置等等。