首页 > 运维 > linux运维 > 正文

【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况

爱谁谁
发布: 2025-07-23 12:34:16
原创
695人浏览过

接上一篇:【graylog告警联动篇】部署webhook服务实现自动传参并自动执行shell脚本

在webhook工具的基础下实现:【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况

1、创建Linux服务器的日志存储索引
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
2、创建Syslog UDP类型Input
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况

如果防火墙有启用,需要放通对应的端口

firewall-cmd --permanent --zone=public --add-port=1514/udp

firewall-cmd --reload

【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
3、创建对应Stream
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
4、Linux服务器使用Rsyslog服务将系统日志接入到Graylog代码语言:javascript代码运行次数:0运行复制
<code class="javascript">echo "*.* @192.168.31.54:1514;RSYSLOG_SyslogProtocol23Format" >> /etc/rsyslog.conftail -n 5 /etc/rsyslog.confsystemctl restart rsyslog</code>
登录后复制
5、验证是否收到这台服务器的系统日志

GrayLog平台上进行查询,确认是否正常收到系统日志

【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
6、PrometheusAlert配置Linux磁盘满告警模板

linuxdiskalert告警模板

模板内容如下

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">## [告警信息](.check_result.Event.Source)### <font color=#FF0000>告警描述:{{.event_definition_description}}</font> {{ range $k,$v:=.backlog }}##### <font color="#FF0000">告警开始时间</font>:{{GetCSTtime $v.timestamp}} </br>##### <font color="#FF0000">告警服务器名称</font>:{{$v.source}} </br>##### <font color="#FF0000">告警服务器IP地址</font>:{{$v.fields.gl2_remote_ip}} </br>##### <font color="#FF0000">告警日志详情</font>:{{$v.message}} </br>{{end}}</code>
登录后复制
7、并在GrayLogNotifications配置界面中添加告警模板

1)、HTTP Notification中告警模板如下

【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况

使用PrometheusAlert中对应的模板

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">http://192.168.31.54:8089/prometheusalert?type=dd&tpl=linuxdiskalert&ddurl=https://oapi.dingtalk.com/robot/send?access_token=838eb303c4035b35447b3caaaa486b2ee6b1f4918be28eba07f7b491155652bc&at=15306545487</code>
登录后复制
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况

2)Alarm Callbacks类型告警模板 Bash Command 内容为:/opt/ServerDisk_Request.sh ${gl2_remote_ip}

一键职达
一键职达

AI全自动批量代投简历软件,自动浏览招聘网站从海量职位中用AI匹配职位并完成投递的全自动操作,真正实现'一键职达'的便捷体验。

一键职达 79
查看详情 一键职达
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况

其中/opt/ServerDisk_Request.sh 实现推送到钉钉群机器人

调用webhook执行查看磁盘使用情况的shell脚本 aaa 记得给graylog系统用户添加到sudoers用户中

【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
8、接下来配置磁盘满的告警
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
9、测试触发告警代码语言:javascript代码运行次数:0运行复制
<code class="javascript">logger -n 192.168.31.54 -P 1514 -d "write error:/var/log/messages: no space left on device"</code>
登录后复制
Tips
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况

/opt/ServerDisk_Request.sh的脚本内容如下

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">#!/bin/bashServerIP=$1cat  > /opt/ServerDisk_request.json << \EOF{ "msgtype": "actionCard", "actionCard": {  "title":"是否查看当前Linux服务器磁盘占用情况",  "text":"   ##### 请确认是否查看当前Linux服务器磁盘占用情况 \n>  ##### <font color=#FF0000> Linux服务器:tempIP  </font> \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'</code>
登录后复制

webhook中hooks.json内容如下

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">[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"    }  ] }]</code>
登录后复制

/opt/diskdf_info.sh脚本内容如下

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">#!/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</code>
登录后复制

说明:需要GraylogServer服务器生成SSH免密登录的密钥对,并需要公钥写入到所有系统日志接入了GrayLog的Linux服务器

最终的告警效果

收到告警后,点击查看按钮

【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况

本公众号回复【Linux磁盘满】获取以上脚本和webhook配置文件下载链接

以上就是【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号