ELK日志监控告警 elastalert 部署及配置

环境

centos7.6
ELK:日志收集框架,elastalert 从其中的es查询告警。
python3.6:或以上,一般系统都自带了

安装elastalert

下载

git clone https://github.com/Yelp/elastalert.git

安装

cd elastalert/
pip install -r requirements.txt
python setup.py install -i https://pypi.tuna.tsinghua.edu.cn/simple
ln -s /usr/local/python3/bin/elastalert* /usr/bin

-i https://pypi.tuna.tsinghua.edu.cn/simple指定源,加快下载速度。如果出现超时,重试即可

安装完成后,会看到四个命令:

  • elastalert:主执行程序
  • elastalert-create-index:创建一个索引,elastalert会把执行记录放到这个索引中,默认情况下,索引名为elastalert_status.
  • elastalert-rule-from-kibana:从Kibana3已保存的仪表盘中读取Filtering设置,帮助生成config.yaml里的配置。不过注意,它只会读取filtering,不包括queries
  • elastalert-test-rule:测试自定义配置中的rule设置。

配置elastalert

主配置文件config.yml

# 用来加载rule的目录,默认是example_rules
rules_folder: rules
# 用来设置定时向elasticsearch发送请求,也就是告警执行的频率
run_every:
  seconds: 30
# 用来设置请求里时间字段的范围
buffer_time:
  seconds: 30
# elasticsearch的host地址,端口
es_host: 192.168.1.89
es_port: 9200
# elastalert产生的日志在elasticsearch中的创建的索引
writeback_index: elastalert_status
writeback_alias: elastalert_alerts
# 失败重试的时间限制
alert_time_limit:
  days: 2

创建索引

elastalert-create-index

在ELK中查看索引

curl 192.168.1.89:9200/_cat/indices?v

创建告警规则

es_host: 192.168.1.100
es_port: 9200
name: warning rule
type: frequency
index: filebeat-* #我这里是filebeat直接保存日志到es
num_events: 5
timeframe:
  minutes: 10
filter:
- query:
    query_string:
      query: "message: WARN OR ERROR" #查询warn和error日志
smtp_host: smtp.exmail.qq.com
smtp_port: 25
smtp_auth_file: /data/elastalert/example_rules/smtp_auth_file.yaml
from_addr: xxx@xx.com
alert:
- "email"
email:
- "dev@dev.com" #接收告警邮件的邮箱

smtp_auth_file.yaml

user: "*****@**********.com"
password: "********"

测试规则配置

通过下面的命令测试配置是否正确

elastalert-test-rule --config ../config.yaml my_rule.yaml

启动

前台启动

elastalert --verbose --config config.yaml --rule example_rules/my_rule.yaml

系统服务启动

[root@docker-server system]# cat /usr/lib/systemd/system/elastalertd.service
[Unit]
Description=elastalertd
[Service]
Type=simple
User=root
Group=root
Restart=on-failure
WorkingDirectory=/data/elastalert
ExecStart=/usr/bin/elastalert --configconfig.yaml --rule rules/my_rule.yaml
[Install]
WantedBy=multi-user.target

systemctl restart elastalertd.service

systemctl stop elastalertd.service

systemctl daemon-reload

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiegwei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值