LoginSignup
3
2

More than 3 years have passed since last update.

MuninサーバをDocker(Ubuntu 16.04)で構築

Last updated at Posted at 2019-12-29

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/confmunin.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

起動すると templatestatic のディレクトリがないと怒られた。そのため、別コンテナで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のインストール

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2