商业堡垒机对接GrayLog实现生产服务器高危命令钉钉机器人自动告警

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 商业堡垒机对接GrayLog实现生产服务器高危命令钉钉机器人自动告警

商业堡垒机对接GrayLog实现生产服务器高危命令钉钉机器人自动告警


一、堡垒机配置syslog日志发送


填写Graylog的IP与端口,为了好区分,我这里选用1516 UDP端口


640.jpg这样GrayLog上启一下Syslog UDP Input,端口为1516

640.jpg

如图所示 640.jpg


640.jpg

日志样例


XXXXXXXX SecurityAuditSystemLog logType=YAB_RESOURCE_LOGIN_LOG, startTime=2022-02-26 16:10:50, endTime=2022-02-26 16:11:14, user=yuanfan<袁繁>, sourceIP=192.168.31.100, resource=CentOS7_Prod生产服务器, targetIP=192.168.31.105, protocol=SSH, account=root


日志中都是Key=Value键值对,那么是否将这些键值对直接映射成日志字段呢?

通过翻阅GrayLog官方的文档,找到了一种很简单的方法


https://docs.graylog.org/docs/extractors


AUTOMATICALLY EXTRACT ALL KEY=VALUE PAIRS

640.jpg



二、配置extractor


选中message最后的下三角符号,创建extractor提取器

640.jpg


类型Copy input


640.jpg


Store as field:message

Add converter选择Key=Value pairs as fields并Add


640.jpg



640.jpg

这时新产生的堡垒机日志就自动生成字段了


640.jpg


640.jpg


三、配置Prometheus告警模板


比如有reboot等高危操作时推送钉钉告警

如下图生产服务器192.168.31.127出现重启命令时就产生告警


640.jpg


Prometheus告警模板如下


### [【告警信息】](.check_result.Event.Source)
### <font color=#FF0000>告警描述:{{.event_definition_description}}</font>
{{ range $k,$v:=.backlog }}
###### <font color=#67C23A>告警产生时间</font>:{{GetCSTtime $v.timestamp}}
###### <font color=#67C23A>告警详细描述</font>:<font color=#FF0000>员工:{{$v.fields.user}} </font>通过堡垒机登录<font color=#FF0000>{{$v.fields.resource}}</font>于{{GetCSTtime $v.timestamp}}时间点执行了<font color=#FF0000>{{$v.fields.command}}</font>高危操作
###### <font color=#67C23A>告警服务器名称</font>:<font color=#FF0000>{{$v.fields.resource}}</font>
###### <font color=#67C23A>告警服务器的IP</font>:{{$v.fields.targetIP}}
###### <font color=#67C23A>告警原始日志</font>:{{$v.message}}
{{end}}


640.png


四、GrayLog配置Alert


Graylog上Alert的配置截图

640.jpg

640.jpg


640.jpg


640.jpg


查询条件


gl2_remote_ip:192.168.31.245 AND resource:"生产服务器192.168.31.127," AND command:"reboot,"


然你的查询条件可以不局限这个示例,比如生产服务器如果都需要告警,可以在堡垒上把相关的生产服务器名称中都加上生产服务器的标签 这时查询条件可以这样写:


gl2_remote_ip:192.168.31.245   AND resource:生产服务器* AND command:reboot,


640.jpg

告警条件及查询语法请自行思维发散


五、钉钉机器人告警效果


钉钉机器人告警效果如下


image.png

总结:


本文有测试阶段时也踩过不少坑

在graylog-server-3.3.16+elasticsearch-oss-6.8.8环境中踩了一些坑,截图如下

640.jpg

640.jpg


640.jpg


测试环境中使用的是GrayLog4.1.5+elasticsearch-7.14.0,测试一切正常

经过日志分析与Graylog+Google求证,最后参考如下几个链接解决


https://community.graylog.org/t/key-value-extractor-and-quotes-remove-whitespaces-with-regex-and-replace/3907/6
https://community.graylog.org/t/indexer-error-mapper-parsing-exception-no-matching-token-for-number-type-big-integer/22701/9
https://docs.graylog.org/docs/elasticsearch#custom-index-mappings
https://www.cnblogs.com/huangxiufen/p/12461191.html


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
打赏
0
0
0
0
36
分享
相关文章
|
9月前
|
ecs-centos分区空间大于70时发送钉钉告警并清理
当分区空间大于70时,开始清理并发送钉钉告警。
112 1
shell脚本实现文件自动清理并推送钉钉机器人告警
shell脚本实现文件自动清理并推送钉钉机器人告警
131 1
调用钉钉机器人API接口将堡垒机安全运维告警单发给运维人员
调用钉钉机器人API接口将堡垒机安全运维告警单发给运维人员
242 0
Nightingale——夜莺监控系统部署企业微信机器人告警系【四】
Nightingale——夜莺监控系统部署企业微信机器人告警系【四】
226 1
Nightingale——夜莺监控系统部署企业微信机器人告警系【四】
阿里云ECS与混合云策略结合,提供云上云下无缝对接,提升业务灵活性和运维效率。
【7月更文挑战第3天】阿里云ECS与混合云策略结合,提供云上云下无缝对接,提升业务灵活性和运维效率。ECS支持多种计费模式和先进架构,保证低延迟计算。混合云融合公有云灵活性与私有云安全,实现资源最优配置。通过VPC互通、应用迁移、数据同步实践,确保安全合规,助力企业数字化转型。阿里云服务展示技术实力,支持企业在混合云时代抓住机遇。
227 3
shell脚本实现Linux磁盘空间超过阈值自动钉钉机器人告警
shell脚本实现Linux磁盘空间超过阈值自动钉钉机器人告警
144 0
【优化篇】调用钉钉机器人API接口将堡垒机安全运维告警单发给运维人员
【优化篇】调用钉钉机器人API接口将堡垒机安全运维告警单发给运维人员
153 0
Android平台Camera2数据如何对接RTMP推流到服务器
在Google 推出Android 5.0的时候, Android Camera API 版本升级到了API2(android.hardware.camera2), 之前使用的API1(android.hardware.camera)就被标为 Deprecated 了。
340 0
钉钉告警机器人Java接入指南
本文讲实现Java代码调用钉钉机器人API,发送指定告警消息的效果,以满足用户对于系统的实时监控。 API:https://open.dingtalk.com/document/orgapp/custom-robots-send-group-messages 每个机器人每分钟最多发送20条消息到群里,如果超过20条,会限流10分钟。 重要 如果有大量发消息的场景(譬如系统监控报警)可以将这些信息进行整合,通过markdown消息以摘要的形式发送到群
1751 1
MES系统在机器人行业生产管理中的运用
简单介绍一下MES系统在机器人行业生产管理中的运用
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等