- 架构优化
- 部署
- !需要提前安装dokcer哦
- docker 启动
欢迎关注。
架构优化要弄一套日志监控管理系统,市面上比较火的就是Elastic公司的ELK框架,即Elasticsearch、Logstash和Kibana,日志监控用的是Elastalert,:
Elastalert是一个简单的框架,用于从Elasticsearch中的数据中发现异常或者其他模式的特征,然后可以进行报警。他将Elasticsearch与规则类型和警报这两个组件联合起来使用。定期查询Elasticsearch,并且将数据传递给规则类型,当找到规则所对应的匹配项时,发出报警。
部署源码安装 ,Elastalert的安装部署需要Python环境,请先提前安装,建议安装Python-3.6.9版本。从github下载Elastalert源码_ 所以 今天讲,最简单的方法实现最复杂的问题
docker部署 日志报警
最终效果:
- 配置报警接收端口、创建一个 钉钉机器人 字段为ip
2. 测试一下钉钉
curl -H "Content-Type: application/json"
-d '{"msgtype":"text","text":{"content":"EFK alert test"}}'
https://oapi.dingtalk.com/robot/send?access_token=7f10310db8be10da66319f18dfe505717ddae33cfd0eb19bde3f90c24fdae876
- 配置文件设置
// vim /opt/config.yaml rules_folder: /opt/elastalert/rules #指定告警规则文件目录 run_every: seconds: 10 #查询Elasticsearch的时间间隔 buffer_time: minutes: 3 es_host: 192.168.10.58 #elasticsearch IP es_port: 9200 #elasticsearch端口 writeback_index: elastalert_status writeback_alias: elastalert_alerts alert_time_limit: days: 2 #失败重试次数
- Rule规则配置
mkdir /opt/rules
vim /opt/rules/alter.yaml
······
这里只是小部分哦
研究不易完整文件+qq 857676355
·········
alert_text_type: alert_text_only
alert_subject: "监控告警" #配置告警标题
#配置告警内容
alert_text: "
您有一条告警信息❌: n
时间:{0}n
级别:高n
服务名称: {1}n
出现关键字:ERROR、Exception n
出现次数:{2}n
请及时登录Kibana查看n
地址: http://192.168.10.58:5601/ n主要信息如下:nn{3} n "
#指定可用字段(对应的 kibala 日志里面)
alert_text_args:
- "@timestamp" #0
- host.name #1
- num_hits #2
- MESSAGE #3
docker 启动
docker pull 857676355/efkalarm docker run -d --name elastalert --restart=always -v /opt/config.yaml:/opt/elastalert/config.yaml -v /opt/rules:/opt/elastalert/rules jertel/elastalert2 [root@k8s ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES f18b22796f91 857676355/efkalarm "/opt/elastalert/run…" 11 seconds ago up (1)



