docker-monitor
データベースを使わない監視環境をさくっと立ち上げられるように
作成したコンテナです。
なぜ「データベースを使わない」を選択したかというと、設定するときは
コンテナで確かめるのでそもそも不要なのでは?と思ったのが経緯です。
使用しているものは、Nagios と Ganglia です。
(実際、Zabbixだと設定めんどくさいので)
事前準備
ホストにボリュームを持たせる場合は、以下ディレクトリを作成することを推奨します。
もちろん、ボリュームは --link-conrainer
でおこなっても構いません。
#!/bin/bash
NAME=mymonitor
# useradd -u 48 -r -c "Apache" -d /var/www -s /sbin/nologin apache
# useradd -u 117 -r -c "Ganglia Monitoring System" -d /var/lib/ganglia -s /sbin/nologin ganglia
# useradd -u 119 -r -c "Nagios Monitoring System" -d /var/spool/nagios -s /sbin/nologin nagios
mkdir -p /var/www/monitor/${NAME}/{archives,rw,spool,spool/checkresults}
chown 117:117 /var/www/monitor/${NAME} /var/www/monitor/${NAME}/{archives,rw,spool,spool/checkresults}
chmod 750 /var/www/monitor/${NAME}/ /var/www/monitor/${NAME}/{archives,rw,spool,spool/checkresults}
mkdir -p /var/www/monitor/${NAME}/{conf,rrds,dwoo,dwoo/cache,dwoo/compiled}
chown 48:48 /var/www/monitor/${NAME}/{conf,dwoo,dwoo/cache,dwoo/compiled}
chown 119:119 /var/www/monitor/${NAME}/rrds
使用方法
docker-compose(fig) の場合
docker-compose の場合、以下のように使用しています。
monitor:
image : miko2u/monitor
hostname: mymonitor
stdin_open: true
tty: true
ports:
- 9808:80
volumes:
- /var/www/monitor/mymonitor:/var/lib/ganglia
- /var/www/monitor/mymonitor:/var/log/nagios
環境設定
REDIS
外部の REDIS を使用する場合、true
を設定します。
デフォルトは false
です。
ただし、使用できない場合はセッションのために内部のredisを使用します。
REDIS_PORT_6379_TCP, REDIS_PORT_6379_TCP_ADDR
外部の REDIS を使用する場合、IPアドレス等を使用します。
リンクコンテナ用ですが、変数を合わせることもできます。
デフォルトは、tcp://172.17.42.1:6379
になります。
MONITOR_PASSWORD
アクセスするための Basic 認証を設定します。(ユーザー名はnagiosadmin)
デフォルトは非公開です。
ADMIN_EMAIL
通知のための管理者メールアドレスを指定します。
デフォルトは root@localhost.localdomain になります。
MAILHUB
メールを送信するときの中継アドレスを指定します。
コンテナ内部には MTA を立てていませんので、必須になります。
デフォルトは172.17.42.1
になります。これは、ホストのIPアドレスになります。
iptables を使用している場合は、 docker0 ブリッジをコンテナから見えるようにしてください。
注意点
監視するときのIPアドレスは当然dockerによってNATされますので、
各監視エージェント(gmond, nrpe等)から見えるIPアドレスにご注意ください。