prometheusのsnmp exporterをdockerで動かす

スポンサーリンク

はじめに

前回prometheusとgrafanaを動かすところまでざっくりと書きました。

今回はsnmp exporterを組み込むところまで書きます。

snmp exporterはその名の通りsnmpでネットワーク機器などを監視するためにあるものです。snmpポーリングのほうです。

参考サイト

snmp exporter公式

prometheus.ymlやsnmp.ymlを作るのに大変参考になったサイト様

使用した環境について

各versionはこちら

Ubuntu 16.04.4 LTS

docker:17.03.2-ce

prometheus:2.2.0

grafana:5.1.2

snmp exporter:0.10.0

docker-compose.ymlの設定例

docker-compose.ymlの設定例です。

こちらのファイルを「docker-compose.yml」として適当なディレクトリに保存します。

新たに追加したのは「snmp-exporter:」配下ですのでその部分だけ簡単に説明。

- ./snmp.yml:/etc/snmp_exporter/snmp.ymlにあるとおり、カレントディレクトリにsnmp.ymlを用意する必要があります。これが起動するsnmp-exporterの設定ファイルになります。このsnmp-exporterを作るのが結構大変なんですがありがたいことにこれを作るgeneratorというものがあります。その使い方については次回に。

prometheus.ymlの設定例

prometheus.ymlの設定例です。

- job_name: 'snmp-exporter'より手前は前回と同様です。それ以下について簡単に解説。

snmp-exporterの設定は後述するsnmp.ymlと連携しています。

static_configs:配下にtype:ciscoのノードとして192.168.0.100があり、

type: ubuntuのノードとして192.168.0.15があります。

最後にあるreplacementの192.168.0.16がsnmp exporterがあるノード、つまりこの設定を実行するIPアドレスとなります。

snmp.ymlの設定例

snmp exporterの設定ファイルであるsnmp.ymlの設定例です。

この設定は次回記載するgenerator.ymlをもとに作られたものです。勝手に作ってくれるものでsnmp.ymlには一切手を加えていません。

簡単に説明するとciscoとubuntuで分けています。それぞれ以下のMIBを取得します。

cisco:ifOutOctets、ifOutErrors、cpmCPUTotal5secRev

ubuntu:ifInOctets、ifInErrors

※一応書いておきますが普通こんな取得の仕方はしないはずですw

あくまで例として説明するためにおかしなMIBの取り方をしてます。

communityはciscoはciscopublic、ubuntuはpublicとしています。

動かしてみる

docker-compose -f docker-compose.yml up -dで実行します。

ちなみに前回利用したimageを一度消しているので再度imageの取得からしてます。

3つのコンテナがupしていればOKです。

prometheusの管理画面にアクセスしてみる

本来ならhttp://localhost:9090/targetsにアクセスすればsnmp-exporterの項目が追加されているはずです。私の環境ではhttp://192.168.0.16:9090/targetsにアクセスしました。

一応こんな感じになります。

※注意

このキャプチャを取ってる環境ではcisco機器がないため、1/2upとなっています。

cisco機器高いんですよね。買えるわけないわー買うならラズパイ買ってるわー

最後に

とりあえずsnmp exporterを動かすところまで実施しました。

他にもsnmpで監視する機器を別ファイルで管理する方法もあります。

一番面倒なのはsnmp.ymlですかね。でもgeneratorがあれば自動で作成されるので楽ちんです。

snmp exporterを動かすのに必要なsnmp.ymlを作ってくれるgeneratorについては次回に触れます。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする