接上一篇:【graylog告警联动篇】部署webhook服务实现自动传参并自动执行shell脚本
在webhook工具的基础下实现:【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
1、创建Linux服务器的日志存储索引

2、创建Syslog UDP类型Input


如果防火墙有启用,需要放通对应的端口
firewall-cmd –permanent –zone=public –add-port=1514/udp
firewall-cmd –reload

3、创建对应Stream


4、Linux服务器使用Rsyslog服务将系统日志接入到Graylog代码语言:javascript代码运行次数:0运行复制
echo "*.* @192.168.31.54:1514;RSYSLOG_SyslogProtocol23Format" >> /etc/rsyslog.conftail -n 5 /etc/rsyslog.confsystemctl restart rsyslog
5、验证是否收到这台服务器的系统日志
GrayLog平台上进行查询,确认是否正常收到系统日志


6、PrometheusAlert配置Linux磁盘满告警模板
linuxdiskalert告警模板
模板内容如下
代码语言:javascript代码运行次数:0运行复制
## [告警信息](.check_result.Event.Source)### 告警描述:{{.event_definition_description}} {{ range $k,$v:=.backlog }}##### 告警开始时间:{{GetCSTtime $v.timestamp}} ##### 告警服务器名称:{{$v.source}} ##### 告警服务器IP地址:{{$v.fields.gl2_remote_ip}} ##### 告警日志详情:{{$v.message}} {{end}}
7、并在GrayLogNotifications配置界面中添加告警模板
1)、HTTP Notification中告警模板如下

使用PrometheusAlert中对应的模板
代码语言:javascript代码运行次数:0运行复制
http://192.168.31.54:8089/prometheusalert?type=dd&tpl=linuxdiskalert&ddurl=https://oapi.dingtalk.com/robot/send?access_token=838eb303c4035b35447b3caaaa486b2ee6b1f4918be28eba07f7b491155652bc&at=15306545487

2)Alarm Callbacks类型告警模板 Bash Command 内容为:/opt/ServerDisk_Request.sh ${gl2_remote_ip}
一键职达
AI全自动批量代投简历软件,自动浏览招聘网站从海量职位中用AI匹配职位并完成投递的全自动操作,真正实现’一键职达’的便捷体验。
79 查看详情


其中/opt/ServerDisk_Request.sh 实现推送到钉钉群机器人
调用webhook执行查看磁盘使用情况的shell脚本 aaa 记得给graylog系统用户添加到sudoers用户中

8、接下来配置磁盘满的告警




9、测试触发告警代码语言:javascript代码运行次数:0运行复制
logger -n 192.168.31.54 -P 1514 -d "write error:/var/log/messages: no space left on device"
Tips

/opt/ServerDisk_Request.sh的脚本内容如下
代码语言:javascript代码运行次数:0运行复制
#!/bin/bashServerIP=$1cat > /opt/ServerDisk_request.json < ##### Linux服务器:tempIP n ", "btnOrientation": "1", "btns": [ { "title": "确认查看", "actionURL": "http://192.168.31.54:9090/hooks/diskinfo?ServerIP=tempIP" }, { "title": "忽略", "actionURL": "http://192.168.31.54:9090/" } ] }}EOFsed -i "s^tempIP^$ServerIP^g" /opt/ServerDisk_request.jsonecho "$ServerIP" > /opt/ServerIP_temp.txtcurl -k -H "Content-Type: application/json" -X POST -d @/opt/ServerDisk_request.json 'https://oapi.dingtalk.com/robot/send?access_token=838eb303c4035b35447b3caaaa486b2ee6b1f4918be28eba07f7b491155652bc'
webhook中hooks.json内容如下
代码语言:javascript代码运行次数:0运行复制
[root@almalinux ~]# cat /opt/webhook/hooks.json [ { "id": "diskinfo", "execute-command" : "/opt/diskdf_info.sh", "include-command-output-in-response": true, "incoming-payload-content-type": "application/json", "pass-arguments-to-command": [ { "source":"url", "name":"ServerIP" } ] }]
/opt/diskdf_info.sh脚本内容如下
代码语言:javascript代码运行次数:0运行复制
#!/bin/bash# 读取保存在 /opt/ServerIP_temp.txt 的服务器 IP 地址read server_ip < /opt/ServerIP_temp.txt# 确认是否正确获取了 IP 地址if [ -z "$server_ip" ]; then echo "未能获取服务器 IP 地址。" exit 1 # 如果没有获取到 IP 地址,则退出程序。else echo "=======================================================" echo "当前服务器(IP:$server_ip))的磁盘df -PTh信息如下" ssh -o StrictHostKeyChecking=no -i /root/.ssh/id_rsa root@$server_ip "df -lPTh | grep -vE 'overlay|tmpfs|cdrom'" echo "=======================================================" echo "lsblk信息如下" ssh -o StrictHostKeyChecking=no -i /root/.ssh/id_rsa root@$server_ip "lsblk" echo "=======================================================" fi
说明:需要GraylogServer服务器生成SSH免密登录的密钥对,并需要公钥写入到所有系统日志接入了GrayLog的Linux服务器
最终的告警效果
收到告警后,点击查看按钮

本公众号回复【Linux磁盘满】获取以上脚本和webhook配置文件下载链接
以上就是【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/451314.html
微信扫一扫
支付宝扫一扫