接上篇,监控工具 sys-status
只有监控和异常发警报功能是不够的,历史数据未存储,也无法提供历史数据获取,这一次更新,就使用 diskCache
来存储数据,然后使用 FastApi
封装外部获取数据的 API
,目前已部署使用。
一个使用 Python 实现的 Linux 服务器监控工具,钉钉机器人异常警报,外部api访问获取历史数据。
使用 Python 3.7+ 版本测试通过。
项目地址
https://github.com/hsu1943/sys-status
功能
- 检查硬盘占用
可指定检查多个挂载路径,以及占用百分比阈值,超过阈值发出警报;
-
检查进程运行情况
配置需要检查的进程查找字符串,检查运行情况,进程不存在时发出警报;
-
检查 supervisor 守护程序守护的进程运行情况
非 RUNNING 状态时发出报警;
- 使用钉钉群机器人报警;
-
提供外部访问api,获取运行情况历史记录;
安装
clone git@github.com:hsu1943/sys-status.git
cd sys-status
pip install -r ./requirement.txt
配置
复制配置示例
cp ./config.ini ./config-local.ini
编辑 config-local.ini
,按照自己的需求配置。
运行
使用 crontab
运行脚本 run.py
即可。
接口使用
服务启动:
python ./main.py
服务将会运行在配置文章中指定的端口 service-port
上(默认8008)。
访问
GET http://127.0.0.1:8008/sys-status/api?gap=900&limit=30
请求参数
参数名 | 类型 | 示例 | 说明 |
---|---|---|---|
gap | int | 900 | 时间间隔,可选 900|3600|86400,默认900 |
limit | int | 30 | 数据条数,最大720,默认10 |
响应示例
{
"code":200,
"status":"success",
"data":[
{
"time":"2021-04-20 14:30:01",
"disk_data":[
{
"filesystem":"/",
"size":"40G",
"used":"27G",
"avail":"11G",
"use%":"71%"
}
],
"process_data":[
{
"process":"nginx",
"status":"RUNNING"
},
{
"process":"php",
"status":"RUNNING"
},
{
"process":"mysql",
"status":"RUNNING"
}
],
"supervisor_data":[
{
"service":"mail-queue",
"status":"RUNNING"
},
{
"service":"service-gender-ocr",
"status":"RUNNING"
},
{
"service":"service-pdf-packer",
"status":"RUNNING"
}
]
}
]
}
标题:Python工具:使用FastApi为sys-status封装外部访问接口
原文链接:https://beltxman.com/3483.html
若无特殊说明本站内容为 行星带 原创,未经同意请勿转载。