前言
在现代数据管理中,定期备份是确保数据安全的关键。群晖NAS(Network Attached Storage)提供了丰富的备份功能,但在实际使用中,我们需要实时监控备份任务的状态。通过API,我们可以轻松获取备份任务的相关信息,并将其集成到监控系统中,以便及时发现潜在问题。本文将介绍如何监控群晖 Active Backup for Business备份任务。
一、群晖NAS API 文档
群晖NAS提供了一套RESTful API,允许用户访问和管理NAS的各种功能,包括文件管理、备份任务等。要开始使用API,首先需要了解如何获取API的访问权限。
但是,在里面并未找到 Active Backup for Business
相关的 API 说明和使用文档。
二、解决办法(思路)
既然官方有 API 使用文档,但没找着 Active Backup for Business
的 API 文档,那就说明应该有 API 查看 Active Backup for Business
备份状态的,毕竟群晖 NAS 备份大多任务通过这个工具来实现,官方自己也推荐使用这个工具备份,要是 API 不能查看Active Backup for Business
状态那就说不过去了。
于是到网上去寻找有没有人根据 群晖 API 开发做了函数、库之类的,结果还真有,里面甚至包含了 API 的使用文档。
这个链接地址和里面的 README 图片都与群晖官方十分相似,曾让我一度认为是群晖官方自己做的库。
API 文档里包含了获取 Active Backup for Business
信息,只用装个 Python 库使用它给的示例代码就可以连接群晖并获取信息了。
pip3 install synology-api
#or
python3.6 setup.py install
#or
pip3 install git+https://github.com/N4S4/synology-api
- 1
- 2
- 3
- 4
- 5
from synology_api import filestation, downloadstation
# Initiate the classes DownloadStation & FileStation with (ip_address, port, username, password)
# it will log in automatically
# NOTE: for Filestation and Downloadstation only has been added interactive_output=True,
# It can be omitted and initiate the wrapper with the below ove code
fl = filestation.FileStation('Synology Ip', 'Synology Port', 'Username', 'Password', secure=False, cert_verify=False, dsm_version=7, debug=True, otp_code=None)
fl.`get_info()`
dwn = downloadstation.DownloadStation('Synology Ip', 'Synology Port', 'Username', 'Password', secure=False, cert_verify=False, dsm_version=7, debug=True, otp_code=None)
dwn.`get_info()`
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
运行后将返回 Json 格式的信息。
BUT!!!
按文档操作会发现,能连接上,但调用函数等和文档上面描述的完全不一样!!!!!
用 Python 的 dir()
和 help()
方法可以查看有什么函数可以调用以及这个函数怎么用,结果发现完全对不上!!!!!!
估计作者更新代码后忘更新 README 了,那就再到网上继续找了。。。。
结果让我找到了基于群晖 API 做的 exporter
!!!甚至省了做 exproter
的步骤!!!
synology_backup_exporter(github)
结果他居然是基于前面我找到 synology-api 去做的(反正能用就行了)。
三、测试
synology_backup_exporter 作者已经推到了 dockerhub 官方上面,按 README 说明,在另一台能联通群晖 NAS 的设备上,拉取进行修改 config.json 文件,运行使用即可。
docker pull raphii/synology_backup_exporter:dsm7
- 1
config.json 文件:
{
"DSMAddress": "syno.ip.add.ress",
"DSMPort": "5000",
"Username": "admin",
"Password": "changeme",
"Secure": false,
"Cert_Verify": false,
"ActiveBackup": true,
"HyperBackup": true,
"HyperBackupVault": true,
"ExporterPort": "9771",
"DSM_Version": "7"
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
注:设备没运行的不要写 true
,要改成 false
,比如 HyperBackup 我没运行要改成 false
,否则运行的时候会报错,起不来。
启动命令:
docker run -itd -v ~/syno_api/config.json:/app/config.json -p 9771:9771 --name syno raphii/synology_backup_exporter:dsm7
- 1
浏览器访问 http://exporter
就是成功运行了。
这个
synology_backup_exporter
真牛,除了虚拟机备份,就连物理机,文件服务器的备份状态都能抓到!!!
四、加入监控
修改普罗米修斯的 /etc/prometheus/prometheus.rules 文件,追加如下内容并重启服务。
scrape_configs:
- job_name: 'synology-backup-exporter'
static_configs:
- targets:
- ':9290' # 替换为实际的 IP 地址和端口
- 1
- 2
- 3
- 4
- 5
在浏览器访问 Prometheus ,点击 “Status” → “Targets” 中若能发现 “synology-backup-exporter” 栏,且设备数量对得上,State 为 UP,则代表已接入普罗米修斯监控了。
总结
报警规则、看板制作、消息推送,由后面的更新的Prometheus+Grafana的部署篇章中会详细说明。
目前,已更新的 Prometheus 及其相关篇章有:
评论记录:
回复评论: