商业堡垒机对接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模拟数据,通过数据加工对数据进行清洗并归档至OSS中进行存储。
相关文章
|
2月前
|
安全 机器人 API
简单几步,钉钉机器人秒变通义千问对话机器人
通过阿里云计算巢AppFlow平台,无需编码,只需简单几步,即可将钉钉机器人转化为通义千问对话机器人。首先在灵积模型服务平台获取API Key,然后在AppFlow中配置连接器,授权并保存Webhook Url。在钉钉中创建自定义机器人,选择Outgoing功能,填写签名和Webhook地址。最后,@机器人即可开始对话。此外,还提供了通过钉钉开放平台创建机器人的步骤。AppFlow简化了集成过程,加速了企业自动化服务流程。
|
2月前
|
缓存
ecs-centos分区空间大于70时发送钉钉告警并清理
当分区空间大于70时,开始清理并发送钉钉告警。
54 1
|
2月前
|
机器人 关系型数据库 MySQL
shell脚本实现文件自动清理并推送钉钉机器人告警
shell脚本实现文件自动清理并推送钉钉机器人告警
74 1
|
2月前
|
运维 监控 安全
调用钉钉机器人API接口将堡垒机安全运维告警单发给运维人员
调用钉钉机器人API接口将堡垒机安全运维告警单发给运维人员
120 0
|
4天前
|
数据管理 机器人 BI
数据管理DMS产品使用合集之如何让报表自动更新推送到钉钉机器人
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
35 3
|
4天前
|
运维 机器人 开发者
使用阿里云百炼通过appflow模板,组合钉钉机器人搭建个人知识库评测与感想
尝试构建个人助手机制,用阿里云百炼+AppFlow+钉钉机器人,花费两午休时间解决配置问题。百炼appid复制时多出空格致错,文档未提及,耗时排查。应用创建时模型选项限于max, plus, turbo,性价比高的qwen-long未上线。期望尽快修复bug和上线新模型以降低成本。附故障排查截图。
33 1
|
6天前
|
数据安全/隐私保护
|
2月前
|
Serverless Go API
Serverless 应用引擎产品使用之在阿里云Serverless中,我想在钉钉机器人中使用函数计算的签名认证如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
2月前
|
SQL DataWorks 机器人
DataWorks常见问题之导致钉钉群的机器人发报警消息如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。

热门文章

最新文章