之前写了收集linux系统历史history命令,下面介绍一下系统里日志收集与展示的。

老规矩,先看效果,满意的话继续看。

一、效果图

1、总览

wKioL1YthELSF2CGAAVVoW2EuIs388.jpg

2、linux系统日志收集数据总量

wKiom1YthEmDRT6dAACF5-7tbtg841.jpg

主要是展示所选范围内容收集日志总量

3、linux系统日志收集主机数

wKiom1YthJfy7zvhAAB1VRxXbUA808.jpg

主要是展示当前总共有多少台主机上传了message日志数据

4、linux系统日志程序类型Top5

wKioL1YthQbR556rAACUzYEf4Nw154.jpg

主要是展示收集的日志信息里前5个程序名;我这5个都是docker服务器,所以docker日志有很多。

5、linux系统日志时间数据总量图

wKioL1YthWKCJ96bAAD8n97EoUk943.jpg

主要是展示每个时间段收集的数据量

6、linux系统日志数据

wKioL1Ythe-guwNCAALjQ8a9w6c267.jpg

主要是展示详细的日志数据

安装elk的过程可以参考上一篇,地址是http://dl528888.blog.51cto.com/2382721/1703059

二、收集日志

我收集的是系统/var/log/messages日志,然后通过rsyslog的tcp 8514端口发给logstash。

1、配置rsyslog

默认rsyslog都安装了,所以只需要修改配置

在/etc/rsyslog.conf里添加

*.* @@localhost:8514

然后重启rsyslog

2、配置logstash

[root@puppet tmp]# cat /etc/logstash/conf.d/logstash_agent.conf
input {
    tcp {
    port => "8514"
    type => "syslog"
   }
}

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
    }
  }
}

output {
redis {

host => ["10.10.125.8:6379"]

data_type =>"list"
key => "logstash:redis"

}

}

3、导入模板

导入顺序

1、Linux系统日志试图.json

2、Linux系统日志搜索.json

3、Linux系统日志Dashboard.json

其他的有问题可以留言。