Grafana同步监控群晖信息(设置篇)

下载文件

老苏找到了一个项目,能通过简单的脚本捕获群晖的 SNMP 信息并写入 InfluxDB,然后在 Grafana 同步显示

项目地址:https://github.com/kernelkaribou/synology-monitoring

项目总共就 2 个文件

其中

  • Synology_dashboard.json 用于 GrafanaDashboard 界面显示
  • synology_snmp.sh 用于捕获群晖的 SNMP 信息并写入 InfluxDB

docker 文件夹中,创建一个新文件夹,并将其命名为 grafana,将上面两个文件下载到本机,其中 synology_snmp.sh 需上传到 grafana 目录

新建 Bucket

用管理员身份登录到 InfluxDB ,左侧菜单 Explore –> Create Bucket

新建一个名为 nasBucket

创建 Token

InfluxDB 左侧菜单 Data –> API Tokens –> Generate API Token

Token 有两种不同的权限,建议读写的权限即可,也就是建 Read/Write API Token,读写都选择 刚创建的 nas

点击名称会显示 Token

设置参数

synology_snmp.sh 原始代码运行会返回 HTTP/1.1 401 Unauthorized,老苏研究了一下,发现原代码中用的写入 InfluxDB 的方式似乎已经不支持了,所以老苏查了官方文档做了修改,在 InfluxDB 2.1.1 上测试通过

InfluxDB 设置

InfluxDB 设置部分屏蔽了 3 个参数,分别是

  • influxdb_name
  • influxdb_user
  • influxdb_pass

然后新增了 3 个参数,分别是

  • influxdb_token
  • influxdb_organization
  • influxdb_bucket

写入 InfluxDB

因为方式改了,所以原来写入 InfluxDB 的代码就不能用了,老苏注释了原来的代码

新增加了下面这段来实现 InfluxDB 数据库的写入

1
2
3
4
5
6
curl --request POST \
"$http_method://$influxdb_host:$influxdb_port/api/v2/write?org=$influxdb_organization&bucket=$influxdb_bucket&precision=ns" \
--header "Authorization: Token $influxdb_token" \
--header "Content-Type: text/plain; charset=utf-8" \
--header "Accept: application/json" \
--data-binary "$post_url"

如果你担心自己修改出问题,可以直接下载老苏修改后的synology_snmp.sh文件,地址:https://github.com/wbsu2003/synology/blob/main/synology-monitoring/synology_snmp.sh

启用 SNMP

控制面板 –> 终端机 SNMP –> SNMP 中勾选 启动 SNMP 服务,勾选 启用 SNMP v1、SNMPv2c 服务

  • 社群:public
  • 设备名称:ds3617xs
  • 设备位置:home
  • 联系方式:wbsu2003@gmail.com

任务计划

控制面板 –> 任务计划 –> 新增 –> 任务的计划 –> 用户定义的脚本

任务设置 –> 运行命令 中输入下面的命令

1
bash /volume2/docker/grafana/synology_snmp.sh

计划 中日期和时间设置

  • 在以下天中运行:每天
  • 首次运行时间:00:00
  • 运行频率:每 1 分钟,也可以降低采集的频率,比如 每 10 分钟 甚至可以更低
  • 最后运行时间:23:59

导入 json

用管理员身份登录 Grafana,左侧菜单 + –> Import

选择 Upload JSON file

载入 Synology_dashboard.json 文件,点 Import

最终效果

虽然也有点高大上的意思,但配色不是太好看,有点小失望,好在老苏只是为了学习,另外最上面似乎也有点问题,暂时先这样吧

参考文档

grafana/grafana: The tool for beautiful monitoring and metric analytics & dashboards for Graphite, InfluxDB & Prometheus & More
地址:https://github.com/grafana/grafana

grafana/grafana - Docker Image | Docker Hub
地址:https://registry.hub.docker.com/r/grafana/grafana/

Run Grafana Docker image | Grafana Labs
地址:https://grafana.com/docs/grafana/latest/installation/docker/

Grafana Plugins - extend and customize your Grafana | Grafana Labs
地址:https://grafana.com/grafana/plugins/

Write data with the InfluxDB API | InfluxDB OSS 2.1 Documentation
地址:https://docs.influxdata.com/influxdb/v2.1/write-data/developer-tools/api/

kernelkaribou/synology-monitoring: Simple script for capturing SNMP stats to influxdb and viewing Synology NAS health in Grafana
地址:https://github.com/kernelkaribou/synology-monitoring