Prometheus SNMP Exporter導入メモ
目次
PrometheusでSNMP pollingを行うため、Prometheus SNMP Exporterを導入した時の記録
Prometheus SNMP Exporter (https://github.com/prometheus/snmp_exporter)を導入していく。
今回は現時点で最新のバージョン0.20.0
を導入したが、
NOTE: This is a safe harbor release. Future releases will have breaking changes to the configuration format.
という記述があるため、次のリリースを使用する際などには、一部設定の修正が必要かもしれない。
導入
wget https://github.com/prometheus/snmp_exporter/releases/download/v0.20.0/snmp_exporter-0.20.0.linux-amd64.tar.gz
tar xvf snmp_exporter-0.20.0.linux-amd64.tar.gz
sudo cp snmp_exporter-0.20.0.linux-amd64/snmp_exporter /usr/local/bin/prometheus-snmp-exporter
sudo cp snmp_exporter-0.20.0.linux-amd64/snmp.yml /etc/prometheus/snmp.yml
sudo mkdir -p /var/log/prometheus
sudo mkdir -p /var/lib/prometheus
# ubuntu
if ! getent passwd prometheus > /dev/null; then
sudo adduser --system --home /var/lib/prometheus --no-create-home --group --gecos "Prometheus daemon" prometheus
fi
# centos
if ! getent passwd prometheus > /dev/null; then
sudo useradd --system --home-dir /var/lib/prometheus --no-create-home --comment "Prometheus daemon" prometheus
fi
sudo chown prometheus:prometheus /var/log/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus
# 後始末
rm -rf snmp_exporter-0.20.0.linux-amd64
- /lib/systemd/system/prometheus-snmp-exporter.service
- 作成後、
ll /lib/systemd/system/prometheus-snmp-exporter.service
でroot:root 644になっていることを確認。
- 作成後、
[Unit]
Description=Prometheus exporter for SNMP-enabled devices
Documentation=https://github.com/prometheus/snmp_exporter
After=network.target
[Service]
Restart=always
User=prometheus
ExecStart=/usr/local/bin/prometheus-snmp-exporter --config.file="/etc/prometheus/snmp.yml" $ARGS
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=20s
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
コミュニティ名を指定するため、手動でsnmp.yml
を書き換える。
今回はif_mibを使用するため、以下のように、if_mib
の下にauth -> communityを入れる。
# 本当はgeneratorを使って生成する?ちゃんと調べていないのでよくわからない
suuei@mon:~$ diff -u snmp_exporter-0.20.0.linux-amd64/snmp.yml /etc/prometheus/snmp.yml
--- snmp_exporter-0.20.0.linux-amd64/snmp.yml 2021-02-12 20:51:40.000000000 +0900
+++ /etc/prometheus/snmp.yml 2021-02-13 20:06:59.732110892 +0900
@@ -6082,6 +6082,8 @@
help: Describes whether the amount of available swap space (as reported by 'memAvailSwap(4)'),
is less than the desired minimum (specified by 'memMinimumSwap(12)'). - 1.3.6.1.4.1.2021.4.101
if_mib:
+ auth:
+ community: public
walk:
- 1.3.6.1.2.1.2
- 1.3.6.1.2.1.31.1.1
配置したファイルの起動と、自動起動の設定。
sudo systemctl daemon-reload
sudo systemctl enable --now prometheus-snmp-exporter
Prometheusへの設定
SNMP Exporterが起動したところで、今度はPrometheusに設定を入れていく。
/etc/prometheus/prometheus.yml
に以下のように追記。
# snmp
- job_name: 'snmp'
static_configs:
- targets:
- c3560cg # ホスト名とか
- 127.0.0.1 # IPアドレスとか
metrics_path: /snmp
params:
module: [if_mib]
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9116 # The SNMP exporter's real hostname:port.
sudo service prometheus restart
で反映。