搭建基本的日志监控系统elk+filebeat+redis+elastalert

filebeat+redis+logstash+elasticsearch+kibana+elastalert

搭建基本的日志监控系统

因为现行业务的需要服务器已开始转向分布式和微服务化,为方便排查错误及预警自己动手试了一下日志收集监控系统的搭建。

filebeat-7.1.1

日志采集使用的是filebeat,收集端没有使用logstash是因为logstash是java实现的太重机器的资源消耗较大,而filebeat是go lang实现的,比较轻量化,在占用很少资源的情况下可以很好的实现日志信息采集的工作,
网址:https://www.elastic.co/guide/en/beats/filebeat/current/index.html
手动安装:curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.1.1-linux-x86_64.tar.gz
tar xzvf filebeat-7.1.1-linux-x86_64.tar.gz

在不同的filebeat的output中可以输入到不同的redis的list中。

redis

因为目前只是想做一个基本的试用,所以没有采用kafka而是采用了更轻量化的redis的list来实现。

logstash-7.1.1

日志接收端采用的是logstash-7.1.1,针对不同的日志如果是输出到不同的redis的list中的,可以配置多个input,在不同的input中设置不同的type,以便在output的时候方便处理
input:
redis {
type => “nginxlog”
host => “127.0.0.1”
password => your pass word
port => “6379”
data_type => “list”
key => “nginxlog”
}

output {
if [type] == “nginxlog” {
elasticsearch {
hosts => [“http://localhost:9200”]
index => ["%{[appname]}-%{+YYYY.MM.dd}"]
user => “elastic”
password => your pass word
}
}

elasticsearch-7.1.1

elasticsearch用来做数据存储,方便检索

kibana-7.1.1

用来做信息展示,因为使用的是免费版没有wathcer等功能,因此下面自己添加elastalert来实现报警功能。

elastalert

https://github.com/Yelp/elastalert
elastalert是使用python实现的,使用的时候注意python的版本及各依赖的版本,我使用的时候因为数据存储使用的是elasticsearch7.1.1所以碰到了这种小错误,因为elastalert的release版本不支持elasticsearch所以要使用beta版本:
pip install “elastalert>=0.2.0b”
相应的python依赖也需要更新:
pip install -U PyYAML

elastalert中配置邮件通知,配置的rules被触发后发邮件通知到相应的人员。

  • 如何同时运行多个规则?修改config.yaml,指定rules_folder,启动时不要指定rule,例:
    python -m elastalert.elastalert --verbose (不要指定具体的rule),这样就会加载rules_floder下的所有rule

  • 如何指定多种提醒方式? 例如邮件短信等都写在一个alert下面,每个告警的参数再单独分开。

待续

以上只是一个基本的试用,目前能正常工作,试行一段时间后会再行升级到kafka并将通知扩展到企业微信通知上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值