1、简介
在现代的IT环境中,对于服务器和网络设备的监控是至关重要的。Synology(群辉)作为一种流行的网络存储解决方案,为用户提供了高性能和可靠的存储服务。然而,了解Synology设备的运行状况和性能指标对于确保其正常运行和及时采取措施至关重要。
Prometheus是一个功能强大的开源监控系统,它提供了灵活的数据模型和丰富的查询语言,可用于收集、存储和可视化各种应用程序和设备的监控指标。通过将Prometheus与Synology(群辉)集成,您可以实时监控Synology(Snmp协议)设备的关键指标,如CPU使用率、内存使用率、磁盘空间、网络流量等,以便及时发现问题并采取适当的措施。
2、环境准备
Synology(群辉):7.2 .1
prometheus:2.48.0
Grafan :10
Snmp_exporter: 0.22.0 (注意版本:新版本配置变更)
Snmp版本问题:https://github.com/prometheus/snmp_exporter/blob/main/auth-split-migration.md
从snmp_exporter v0.23.0 版本开始,配置文件格式snmp_exporter已更改。v0.22.0 及之前版本的配置文件将不起作用
3、Synology配置
1、开启SNMP协议
2、安装Docker
在套件中心,直接搜索 “docker” 进行安装
7.0 和 6.0 的版本不一样
7.0
3、Node-Exporter 安装
Node-Exporter 是监控 Synology的底层系统,相当于Linux操作系统, 这个可以使用docker的镜像安装,不过这里 大佬已经封装好插件,直接使用。
添加源
1
2
|
https://spk7.imnks.com/
http://spk.bobohome.store:8880
|
4、Docker安装组件
参考: https://github.com/ddiiwoong/synology-prometheus
Docker目录下,创建monitor目录,后续的配置存放里面
1、Snmp_exporter 安装
我使用dockerfile 进行安装
snmp的文件:https://github.com/ddiiwoong/synology-prometheus/blob/master/snmp-synology/snmp.yml
1
2
3
4
5
6
7
8
9
10
11
|
version: "3.8"
services:
snmp-exporter:
image: ricardbejarano/snmp_exporter:0.22.0
container_name: snmp_exporter
volumes:
- ./snmp-synology/snmp.yml:/etc/snmp_exporter/snmp.yml
ports:
- 9116:9116
command:
- "--config.file=/etc/snmp_exporter/snmp.yml"
|
启动成功
测试
2、Prometheus安装
这次我才用ssh到nas系统,直接执行命令进行创建
prometheus.yml 配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets: ['alertmanager:9093']
rule_files:
- "/etc/prometheus/rules/*"
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
labels:
group: 'prometheus'
- job_name: node
static_configs:
- targets: ['192.168.123.200:9100']
- job_name: 'snmp'
metrics_path: /snmp
static_configs:
- targets:
- 192.168.123.200
params:
module: [synology]
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 192.168.123.200:9116
|
放到指定位置,然后创建prometheus
1
2
3
4
5
6
7
8
9
|
docker run -d -p 9090:9090 -u root \
-v /volume1/docker/monitor/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /volume1/docker/monitor/prometheus/rules:/etc/prometheus/rules \
-v /volume1/docker/monitor/prometheus/data:/etc/prometheus/data \
--name prometheus \
prom/prometheus:latest \
--storage.tsdb.path=/etc/prometheus/data \
--storage.tsdb.retention.time=90d \
--config.file=/etc/prometheus/prometheus.yml
|
3、Grafan安装
参考文档:https://blog.csdn.net/wayne_primes/article/details/112467639
1
2
3
4
5
6
7
8
9
10
|
docker run \
-d --name grafana -p 3000:3000 \
grafana/grafana grafana
将配置文件拷贝至宿主机方便修改配置
docker exec -it grafana cat /etc/grafana/grafana.ini > /data/grafana/grafana.ini
mkdir -p /data/grafana/data
#修改目录权限否则启动后容器中用户无法创建数据文件夹和文件
chmod 777 /data/grafana/data
|
Grafan创建命令
1
2
3
4
5
6
7
|
docker run -d -p 3000:3000 -u root \
--name grafana \
-e "GF_SECURITY_ADMIN_PASSWORD=admin" \
-v "/volume1/docker/monitor/grafana/grafana.ini:/etc/grafana/grafana.ini" \
-v "/volume1/docker/monitor/grafana/data/:/var/lib/grafana" \
$(cat /etc/hosts |grep -Ev "^$|[#;]" | awk -F ' ' '{if(NR>2){print "--add-host "$2":"$1}}') \
grafana/grafana grafana
|
5、界面展示
1、添加数据源
2、导入大屏展示
ID:
Linux:8919
群辉:14284 14364