利用RELK进行日志收集

利用RELK进行日志收集

发布时间:April 3, 2018 // 分类:运维工做,开发笔记,python // No Commentspython

前不久在作应急的老是遇到要求对日志进行分析溯源,当时就想到若是对常见的日志类进行解析后统一入库处理,而后在对相关的IP/URL进行统计概括。对于溯源之类的非常方便。想到数据量比较大,又要便于分析,就想到了ELK.redis

搭建一套基于elk的日志分析系统。
系统centos 内存4G 双核

大概架构如此

1.elk搭建mongodb

wget https: //artifacts .elastic.co /downloads/elasticsearch/elasticsearch-6 .4.2.rpm
wget https: //artifacts .elastic.co /downloads/kibana/kibana-6 .4.2-x86_64.rpm
wget https: //artifacts .elastic.co /downloads/logstash/logstash-6 .4.2.rpm
 
rpm -ivh elasticsearch-6.4.2.rpm
sudo chkconfig --add elasticsearch
/etc/init .d /elasticsearch start
 
rpm -ivh kibana-6.4.2-x86_64.rpm
/etc/init .d /kibana start
sudo chkconfig --add kibana
 
rpm -ivh logstash-6.4.2.rpm
cd /usr/share/logstash
ln -s /etc/logstash . /config

整个elk系统搭建好了,安装redis做为agent收集日志来做为logstash的输入源centos

wget http: //download .redis.io /redis-stable . tar .gz
tar zxf redis-stable. tar .gz
cd redis-stable
make && make install

修改redis.conf。缓存

bind 0.0.0.0
protected-mode no
daemonize yes
maxclients 1000000

启动redisruby

sudo redis.conf /etc/
redis-server /etc/redis .conf

Logstash配置文件是JSON格式,放在/etc/logstash/conf.d 。 该配置由三个部分组成:输入,过滤器和输出。bash

input 数据输入端,能够接收来自任何地方的源数据。
file:从文件中读取
syslog:监听在514端口的系统日志信息,并解析成RFC3164格式。
redis:从redis-server list 中获取
beat:接收来自Filebeat的事件
Filter 数据中转层,主要进行格式处理,数据类型转换、数据过滤、字段添加,修改等,经常使用的过滤器以下。
grok: 经过正则解析和结构化任何文本。Grok 目前是logstash最好的方式对非结构化日志数据解析成结构化和可查询化。logstash内置了120个匹配模式,知足大部分需求。
mutate: 在事件字段执行通常的转换。能够重命名、删除、替换和修改事件字段。
drop: 彻底丢弃事件,如debug事件。
clone: 复制事件,可能添加或者删除字段。
geoip: 添加有关IP地址地理位置信息。
output 是logstash工做的最后一个阶段,负责将数据输出到指定位置,兼容大多数应用,经常使用的有:
elasticsearch: 发送事件数据到 Elasticsearch,便于查询,分析,绘图。
file: 将事件数据写入到磁盘文件上。
mongodb:将事件数据发送至高性能NoSQL mongodb,便于永久存储,查询,分析,大数据分片。
redis:将数据发送至redis-server,经常使用于中间层暂时缓存。
graphite: 发送事件数据到graphite。http://graphite.wikidot.com/
statsd: 发送事件数据到 statsd。

编写logstash的配置文件。对全部的数据全盘接受,感谢Mosuan师傅的指导。架构

input {   
     redis {
         host => '127.0.0.1'
     port => 6379
         password => 'password'
         data_type => 'list'
         key => 'logstash:redis'
     }
}
output {
     elasticsearch { hosts => localhost }
     stdout { codec => rubydebug }
}

Logpara

相关文章
相关标签/搜索