Ubuntu 16.04のDockerイメージを使ってMuninをインストールした。
今回はDockerfileをもとに手元でビルドする。
リポジトリjekil/docker-munin-server: A docker Munin server, with cgi support and configurable via docker args
$ sudo mkdir /opt/munin
$ cd /opt/munin
$ git clone https://github.com/jekil/docker-munin-server
$ cd docker-munin-server
$ sudo docker build . -t munin-server
Sending build context to Docker daemon 160.3 kB
Step 1/19 : FROM ubuntu:16.04
…
ビルドに少し時間がかかる。ビルド終了後に確認する。
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
munin-server latest a3b39615948b 2 minutes ago 286 MB
サーバー起動用のスクリプト start-munin.sh
を作成する。
#!/bin/bash -xe
docker run -d -p 127.0.0.1:8800:80 \
-e NODES="foo.server.local:192.168.1.1 bar.server.local:192.168.1.2" \
-v $PWD/data/lib:/var/lib/munin \
-v $PWD/data/log:/var/log/munin \
-v $PWD/data/conf:/etc/munin \
-v /etc/localtime:/etc/localtime:ro \
--restart=always \
munin-server
追記: 改良版の munin-service.sh
(以下)は再起動や停止もできるのでこっちがおすすめ
#!/bin/bash
case $1 in
"start" ) docker run -d -p 127.0.0.1:8800:80 \
-v $PWD/data/lib:/var/lib/munin \
-v $PWD/data/log:/var/log/munin \
-v $PWD/data/conf:/etc/munin \
-v /etc/localtime:/etc/localtime:ro \
--restart=always \
munin-server ;;
"stop" ) docker ps | grep munin-server | awk '{print $1}' | xargs docker stop | xargs docker rm ;;
* ) echo "[usage] munin-service.sh [start|stop]" ;;
esac
ディレクトリをあらかじめ作成
mkdir -p data/lib data/log data/conf
data/conf
へmunin.conf
を以下の内容で配置する。 graph_strategy cgi
がなくてグラフが表示されずトラブルシュートした。
参考: nginx configuration — Munin 2.0.43-detached-2018-12-11-c16-g4537119 documentation
dbdir /var/lib/munin
htmldir /var/cache/munin/www
logdir /var/log/munin
rundir /var/run/munin
staticdir /etc/munin/static
graph_strategy cgi
cgiurl_graph /munin-cgi/munin-cgi-graph
起動すると template
や static
のディレクトリがないと怒られた。そのため、別コンテナでUbuntuからmuninをインストールしたファイルたちをコピーして data/conf
の下に配置した。transfer.shにあげたので、落として展開してうまく使うと楽にできる。
wget https://transfer.sh/wE0hQ/a.tgz
補足: muninにはtemplateがあり、任意のテンプレートを挿入することでUIを変えられる。Twitter BootstrapベースのUIにしたければここから落として展開して data/conf
へ配置する。
git clone https://github.com/jonnymccullagh/munstrap
cd munstrap
cp -r template/ ../data/conf/
cp -r static/ ../data/conf/
実行権限をつけてRoot権限で実行する。
sudo chmod +x start-munin.sh
sudo ./start-munin.sh
疎通確認のためにtelnetを入れておく。
sudo docker ps
(コンテナidを控える)
sudo docker exec -it (コンテナid) /bin/bash
apt update
apt install telnet
ServerからNodeへの疎通を確認する。
telnet 192.168.1.2 4949
list
などを入力して帰ってくるか試してみる。
続編: Nodeのインストール