商业堡垒机对接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


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
机器人 异构计算
10分钟,用RAG搭建专业钉钉/飞书客服机器人
只需10分钟,快速搭建专属客服机器人,大幅提升工作效率!通过魔搭社区注册账号、绑定阿里云账号获取免费算力资源,并选择GPU模式运行教程脚本。按照食用指引操作,完成机器人部署并进行对话测试,前5位在评论区提交作业的用户将获赠魔搭社区时尚咖啡杯一个。立即点击教程脚本链接开始体验吧!
362 0
|
5月前
|
安全 Linux Shell
使用SCP命令在CentOS 7上向目标服务器传输文件
以上步骤是在CentOS 7系统上使用SCP命令进行文件传输的基础,操作简洁,易于理解。务必在执行命令前确认好各项参数,尤其是目录路径和文件名,以避免不必要的传输错误。
525 17
|
6月前
|
Linux 网络安全 数据安全/隐私保护
使用Linux系统的mount命令挂载远程服务器的文件夹。
如此一来,你就完成了一次从你的Linux发车站到远程服务器文件夹的有趣旅行。在这个技术之旅中,你既探索了新地方,也学到了如何桥接不同系统之间的距离。
1026 21
|
7月前
|
弹性计算 自然语言处理 Ubuntu
从0开始在阿里云上搭建基于通义千问的钉钉智能问答机器人
本文描述在阿里云上从0开始构建一个LLM智能问答钉钉机器人。LLM直接调用了阿里云百炼平台提供的调用服务。
从0开始在阿里云上搭建基于通义千问的钉钉智能问答机器人
|
8月前
|
JSON API 数据安全/隐私保护
使用curl命令在服务器上执行HTTP请求
总的来说,curl是一个非常强大的工具,它可以让你在命令行中发送各种类型的HTTP请求。通过学习和实践,你可以掌握这个工具,使你的工作更加高效。
624 30
|
8月前
|
存储 人工智能 监控
钉钉对话机器人实现赞踩收集
本文介绍如何通过AppFlow记录钉钉AI对话卡片的用户反馈情况。首先确保已接入钉钉AI机器人,然后分三步实现:1) 修改钉钉AI消息卡片,添加点赞按钮并配置回调参数;2) 配置钉钉卡片点赞消息接收连接流,更新卡片状态;3) 设置日志收集节点,存储用户反馈数据。完成配置后,用户可在群聊中与机器人互动,并使用点踩点赞功能,反馈数据将被有效记录和分析。
669 6
钉钉对话机器人实现赞踩收集
|
9月前
|
弹性计算 人工智能 运维
摆脱繁琐命令-让运维更加流畅-阿里云ECS操作系统控制台运维篇
阿里云操作系统控制台提供了便捷的服务器监控与管理功能,简化了运维工作。通过将多台服务器纳入统一监控平台,用户可以快速查看CPU、内存、磁盘和网络等关键资源的使用情况,避免了逐一远程连接查询的繁琐操作。此外,该工具支持自动化数据汇总,极大地方便了日报、周报和月报的编写。测试过程中,系统展示了良好的稳定性和响应速度,尤其在网络抖动和大文件健康状态测试中表现出色。整体体验流畅,显著提升了运维效率。 操作系统控制台地址:[点击访问](https://alinux.console.aliyun.com/)
329 26
摆脱繁琐命令-让运维更加流畅-阿里云ECS操作系统控制台运维篇
|
9月前
|
Java 网络安全 Apache
SshClient应用指南:使用org.apache.sshd库在服务器中执行命令。
总结起来,Apache SSHD库是一个强大的工具,甚至可以用于创建你自己的SSH Server。当你需要在服务器中执行命令时,这无疑是非常有用的。希望这个指南能对你有所帮助,并祝你在使用Apache SSHD库中有一个愉快的旅程!
559 29
|
9月前
|
Kubernetes API 网络安全
当node节点kubectl 命令无法连接到 Kubernetes API 服务器
当Node节点上的 `kubectl`无法连接到Kubernetes API服务器时,可以通过以上步骤逐步排查和解决问题。首先确保网络连接正常,验证 `kubeconfig`文件配置正确,检查API服务器和Node节点的状态,最后排除防火墙或网络策略的干扰,并通过重启服务恢复正常连接。通过这些措施,可以有效解决与Kubernetes API服务器通信的常见问题,从而保障集群的正常运行。
662 17
|
11月前
|
人工智能 机器人 API
AppFlow:无代码部署Dify作为钉钉智能机器人
本文介绍如何通过计算巢AppFlow完成Dify的无代码部署,并将其配置到钉钉中作为智能机器人使用。首先,在钉钉开放平台创建应用,获取Client ID和Client Secret。接着,创建消息卡片模板并授予应用发送权限。然后,使用AppFlow模板创建连接流,配置Dify鉴权凭证及钉钉连接凭证,完成连接流的发布。最后,在钉钉应用中配置机器人,发布应用版本,实现与Dify应用的对话功能。
2221 7
AppFlow:无代码部署Dify作为钉钉智能机器人

热门文章

最新文章