当前位置: 首页 > article >正文

深入 Prometheus 监控生态 - 第五篇:利用 API 信息进行监控(NAS 备份任务监控 + 解决思路)

文章目录

  • 前言
  • 一、群晖NAS API 文档
  • 二、解决办法(思路)
  • 三、测试
  • 四、加入监控
  • 总结


前言

在现代数据管理中,定期备份是确保数据安全的关键。群晖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 的使用文档。

synology-api(github)

这个链接地址和里面的 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
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()`

运行后将返回 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

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"
}

注:设备没运行的不要写 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

浏览器访问 http://<ipmi-exporter_IP>:9771 ,能访问且看到许多数据 exporter 就是成功运行了。


四、加入监控

修改普罗米修斯的 /etc/prometheus/prometheus.rules 文件,追加如下内容并重启服务。

scrape_configs:
  - job_name: 'synology-backup-exporter'
    static_configs:
      - targets:
        - '<synology-backup-exporter-ip>:9290' # 替换为实际的 IP 地址和端口

在浏览器访问 Prometheus ,点击 “Status” → “Targets” 中若能发现 “synology-backup-exporter” 栏,且设备数量对得上,State 为 UP,则代表已接入普罗米修斯监控了。

总结

报警规则、看板制作、消息推送,由后面的更新的Prometheus+Grafana的部署篇章中会详细说明。

目前,已更新的 Prometheus 及其相关篇章有:

  • 深入 Prometheus 监控生态 - 第一篇:原理与架构详解
  • 深入 Prometheus 监控生态 - 第二篇:网络等硬件设备监控(snmp-exporter)
  • 深入 Prometheus 监控生态 - 第三篇:操作系统信息监控(node-exporter)
  • 深入 Prometheus 监控生态 - 第四篇:服务器硬件信息监控(ipmi-exporter)
  • 深入 Prometheus 监控生态 - 第五篇:利用 API 信息进行监控(NAS 备份任务监控 + 解决思路)

http://www.kler.cn/a/371908.html

相关文章:

  • 3D Gaussian Splatting代码详解(三):模型构建,实现3D 高斯椭球体的克隆和分裂
  • 正则表达式:强大的文本匹配与处理工具
  • 基于Matlab 火焰识别技术
  • ECharts饼图,配置标注示例
  • GPT避坑指南:如何辨别逆向、AZ、OpenAI官转
  • 深入理解所有权与借用——借用与生命周期管理
  • 【约束优化】一次搞定拉格朗日,对偶问题,弱对偶定理,Slater条件和KKT条件
  • 画思维导图的app有哪些?5个软件让你轻松画思维导图不求人
  • PostgreSQL 不同模式之间的数据迁移
  • Python小游戏18——中国象棋
  • 安卓13 连接usb设备后不更新ui
  • Android 应用权限管理详解
  • 【Linux】线程锁同步互斥生产消费模型
  • Windows: 如何实现CLIPTokenizer.from_pretrained`本地加载`stable-diffusion-2-1-base`
  • 网络爬虫的基本原理是什么?
  • 初始Docker
  • NVR设备ONVIF接入平台EasyCVR视频分析设备平台视频质量诊断技术与能力
  • 深入解析 MySQL 数据库:数据类型
  • Rust精简核心笔记:第二波,语法精髓部分解锁
  • 十六:Python学习笔记-- 爬虫(2)requests 模块详解
  • 装饰器怎样实现
  • LeetCode --- 420周赛
  • 大数据新视界 -- 大数据大厂之大数据重塑影视娱乐产业的未来(4 - 3)
  • linux查看系统负载情况
  • STM32--I2C外设
  • Java AQS Semaphore 源码