dockerでsnmpエージェント設定を簡単に行う

スポンサーリンク

はじめに

前回の投稿でラズパイをsnmpエージェントとして動作させ、snmp-exporterの設定確認に使用しました。

この設定をDockerfileで作成して実施したのでメモがてら残しておきます。

内容しょぼいですがGithubとDockerHubを初めて連携させたのでその記念に投稿しておきます。

注意

いつものとおり、とりあえず動けばいいの精神で作っているので完成度は大変低いです。

これが唯一の方法とかではないのでもっと良い書き方をご自身で探してみてください。

※そもそもubuntu16.04をimageに選んでいる時点で察してください・・・

Dockerfile

無事動いたDockerfileはこちらです。

EXPOSEは外部からアクセスさせるのに必要です。今回はudp161を指定してます。

ENTRYPOINT 箇所はsnmpdを起動させるために必要です。

実行コマンド

実行コマンドはこちらです。

まず上で作成したDockefileがある場所に移動して

docker build -t test/ubuntu16.04:001 .

ビルドしたあとに起動させますが、そのときにudp161を引き渡すように設定します。
docker run -itd -p 161:161/udp --name test test/ubuntu16.04:001

おまけ:確認コマンド

以下コマンドで作成したdokcerコンテナにログインします。

docker exec -it test /bin/bash

その後以下コマンドでsnmpがget出来ることを確認します。

snmpwalk -v 2c -c public localhost .1

もちろんlocalhostをIPアドレスに変えれば別端末からポーリング確認できます。

来るもの拒まない設定なのでw

GitHubとDockerHub

今回試したかったこととして、GithubとDockerHubの連携がありました。

やり方は探せばいっぱいあるので書きません。

一応それぞれのリンクだけ張っておきます。

DockerHub経由で使用する場合は

docker pull hakengineer/snmp-agent

このコマンドが上で書いた「docker build -t test/ubuntu16.04:001 .」の代わりになります。

さらに起動させるときは、コンテナ名をtest2とした場合、以下で起動します。

docker run -itd -p 161:161/udp --name test2 hakengineer/snmp-agent:latest

DockerHubを経由させるとraspiで動かなくなる問題

なぜかDokcerfileからbuildさせるとdocker runできるのに、DockerHubを経由させるとraspiではdocker runで起動しなくなります・・・。。

ちなみにESXi上のubuntu16.04ではDockerHub経由でも問題なく動作しました。

起動しないときのログを一応残しておきます。

まとめ

自環境を汚すことなく使えるdokcerはホント便利です。

ちょいちょいこんな小ネタを挟んでいけたらと思います。

raspiだけ使うときは要確認ですかね。Dokcerfileからbuildすれば行けるのが救いですが。

スポンサーリンク

シェアする

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

フォローする