0

0

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

爱谁谁

爱谁谁

发布时间:2025-07-23 12:34:16

|

700人浏览过

|

来源于php中文网

原创

接上一篇:【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运行复制
echo "*.* @192.168.31.54:1514;RSYSLOG_SyslogProtocol23Format" >> /etc/rsyslog.conftail -n 5 /etc/rsyslog.confsystemctl restart rsyslog
5、验证是否收到这台服务器的系统日志

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

【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况
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中告警模板如下

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

使用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
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况

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

知元AI
知元AI

AI智能语音聊天 对讲问答 AI绘画 AI写作 AI创作助手工具

下载
【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运行复制
logger -n 192.168.31.54 -P 1514 -d "write error:/var/log/messages: no space left on device"
Tips
【Graylog告警联动篇】Linux服务器磁盘爆满告警并实现一键查看服务器磁盘占用情况

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

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

最终的告警效果

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

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

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

相关专题

更多
js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

557

2023.06.20

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

394

2023.07.04

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

754

2023.07.04

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

478

2023.09.01

JavaScript转义字符
JavaScript转义字符

JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

454

2023.09.04

js生成随机数的方法
js生成随机数的方法

js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

1031

2023.09.04

如何启用JavaScript
如何启用JavaScript

JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

658

2023.09.12

Js中Symbol类详解
Js中Symbol类详解

javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

554

2023.09.20

AO3中文版入口地址大全
AO3中文版入口地址大全

本专题整合了AO3中文版入口地址大全,阅读专题下面的的文章了解更多详细内容。

1

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.9万人学习

Excel 教程
Excel 教程

共162课时 | 12.8万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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