共计 1244 个字符,预计需要花费 4 分钟才能阅读完成。
自用的一个服务器磁盘监控工具,根据磁盘占用执行对应的脚本,可以结合 alertmanager 发送报警。
https://github.com/typ431127/diskscript
- 挂载设备百分比监控
- 目录大小监控
- 文件大小监控
- 支持发送到 alertmanager 报警,自定义 labels 和报警名称
- 二进制直接使用
测试版本,谨慎使用
仅在 Centos7 下测试通过
Windows WSL 环境下次磁盘容量获取不正确
config.yml
配置文件示例
console: true # 是否输出脚本执行信息
alert: # alertmanager
enable: true # 启用报警
url: "http://localhost:9093"
labels: ["env=dev","sp=aliyun"] # 全局 labels, 添加到所有报警中
mount: # 挂载设备
- mount: "/" # 根分区超过 90% 占用报警
threshold: 90
alert: true # 超过阈值报警
labels: ["disk=/"] # 自定义 alertmanager labels (可选)
alertname: "根分区磁盘占用过大" # 自定义报警名称(可选)
scripts: # 可选
- "/bin/sh /data/scripts/xxx.sh"
directory: # 挂载目录
- directory: "/data/logs/nginx/"
threshold: 5g # 限制 5g 超过 5g 报警
alert: true
scripts: # 执行脚本
- "/data/scripts/nginx-log.sh"
- directory: "/data/logs/xxxxx/"
threshold: 5g # 限制
scripts: # 执行脚本
- "find /data/logs/xxx -mtime +7 -delete"
- "find /data/logs/xxx -mtime +7 -delete"
file: # 文件占用检查
- file: "/mnt/d/ISO/Windows.iso"
threshold: 5g # 限制
alert: true
scripts: # 执行脚本
- "find /data/logs/xxx -mtime +7 -delete"
- "find /data/logs/xxx -mtime +7 -delete"
- file: "/mnt/d/ISO/ubuntu-21.10-desktop-amd64.iso"
threshold: 4g # 限制
alert: true
scripts: # 执行脚本
- "cat /dev/null > /data/logs/nginx/blog_access.log"
- "/data/scripts/1.py"
可作为定时任务使用
* * * * * cd /data/xxx && ./diskscript
下载使用
tar xvf diskscript_Linux_x86_64.tar.gz
chmod +x diskscript
# 编辑 config.yml 文件
# 执行程序
./diskscript
# 指定配置文件
./diskscript -conf xxx.yml
正文完