写在开头
- 本教程同样适用于服务器监控以及其他BGP网络的监控
- 本教程只是分享自己的方案,不一定适用于其他场景
咱是 AS4242423396,欢迎来Peer
需要用到的软件
- Prometheus: 用于收集其他程序的数据
- Grafana: 用于展示Prometheus的数据
- Bird_Exporter: 用于收集来自Bird的数据
- node_exporter: 用于收集各个节点的基础信息
搭建过程
核心部分
prometheus 和 grafana 都可以直接使用Docker运行,具体命令如下:
1 2 3 4
| $ docker run -d -p 9090:9090 -v /etc/prometheus:/opt/prometheus/config -v /opt/prometheus/data:/prometheus prom/prometheus
$ docker run -d -p 3000:3000 -v /var/lib/grafana:/opt/grafana grafana/grafana
|
这里需要注意一点,Prometheus默认是没有任何鉴权的,所以请注意配置一下防火墙
节点部分
node_exporter因为需要收集完整的系统信息,直接在系统中运行可以省去很多配置工作,所以我们可以直接在系统中运行node_exporter
首先前往 node_exporter 下载安装
下载完成后直接解压就可以使用了,适当配置一下Service和防火墙即可
bird_exporter 也是同理,前往 bird_exporter 下载安装即可
PowerDNS
PowerDNS自带一个metrics,直接在配置文件中启用即可
配置Prometheus
以下是我的配置文件
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
| global: scrape_interval: 15s evaluation_interval: 15s
scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] - job_name: "dn42-nameserver" scheme: https metrics_path: /metrics static_configs: - targets: ['xxx.xxx.xxx.xxx:443'] - job_name: "dn42-bird" scheme: https metrics_path: /metrics http_sd_configs: - url: "https://example.com/xxx.json" refresh_interval: 10s - job_name: "dn42-nodes" scheme: https metrics_path: /metrics http_sd_configs: - url: "https://example.com/xxx.json" refresh_interval: 10s
|
服务发现配置,labels中可以填写任意内容,可以用Grafana展示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| [ { "targets": [ "example1.com:443" ], "labels": { "id": "node-1" } }, { "targets": [ "example2.com:443" ], "labels": { "id": "node-2" } }, ]
|
仪表盘配置
我的建议是去Grafana社区抄一个
额外内容
- 安装和Prometheus配套运行的Alertmanager,可以通过它配置监控告警;也可以直接使用Grafana配置告警