実はここが一番てこずった。というか、てこずってる。予想通りの結果が出てるんだけど、出てないという。まぁ、それでも動いたので忘れないように記載します。
GitHub – ethersys/ethersys-docker-munin
では、さっそく。注意点などは下記へ。
cd ~/docker
git clone https://github.com/ethersys/ethersys-docker-munin.git munin
cd munin
#git clone https://github.com/occitech/docker.git munin を使った場合は。
#HTMLログフォルダのパーミッションが間違っているので、その修正。
#このdockerは放置され、メンテされていないため。
#/munin/Dockerfileの中に.
#RUN chown munin:munin /var/log/munin
#を追加するとよい.
#cp Dockerfile Dockerfile.ori
#
#cat << EOF > diff.patch
#--- Dockerfile.ori
#+++ Dockerfile
#@@ -25,6 +25,7 @@
# # copy launcher
# ADD run.sh /usr/local/bin/run
# RUN chmod +x /usr/local/bin/run
#+RUN chown munin:munin /var/log/munin
#
# # persist
# VOLUME /var/lib/munin
#EOF
#
#patch Dockerfile < diff.patch
mkdir -p /docker && cd $_
docker build --no-cache -t munin ./
#docker-compose.ymlを作る
cat << EOF > docker-compose.yml
version: '3'
services:
munin:
image: munin
networks:
nginx-proxy-network:
aliases:
- munin.example.com #THISNODENAMEと同じにしたらわかりやすい.
#ports:
# - "8080:80"
volumes:
- /var/docker/munin/db:/var/lib/munin
- /var/docker/munin/logs:/var/log/munin
- /var/docker/munin/cache:/var/cache/munin
restart: always
environment:
THISNODENAME: "munin.example.com"
CRONDELAY: 2
TZ: "Asia/Tokyo"
NODES: "localhost:127.0.0.1 Ubuntu22HostOS:172.20.0.1"
VIRTUAL_HOST: munin.example.com
VIRTUAL_PORT: 80
#HTTPS_METHOD: noredirect # リダイレクトを無効にする
networks:
nginx-proxy-network:
external: true
networks:
nginx-proxy-network:
external: true
EOF
docker-compose up -d
まず、大きくコメントで残してあるのは、古いdockerイメージと知らずに使ってしまい、四苦八苦した部分です。フォルダの権限が正常ではなかったので、muninの.htmlを生成するフォルダに書き込めず、何時間経ってもまだ準備中だよ的なコメントのHPしか表示されない事態に。それを解決するのが、コメントの中に記入してるchownのコマンド。しかし、めんどくさかったので、他のイメージを使用し、この設定と相成りました。
以下、その他の注意点
- ポート8080を開放すると、何の制限もなくWANに公開されてしいました。慌ててポートを閉じることに。さて、どうしたものかと、いろいろ考えましたが、いい案が思いつかず(自分の技術が未熟なため取れる手段が少ない)、苦肉の策として、上記の設定にして、ルーターで8080を閉じることに。これでローカルからは見れる使用になりました。
- 外出時に見たいときはopenvpn接続で見ることになると思うが、果たしてつながるのか・・・ネットワークが違うから無理なのかな?どうなのかな?
- 情報を取得したときの、「localhost」はmuninコンテナの中の情報???よくわからない。
- ホストOSの情報を取得する方法は以下に記載する。つまり、172.20.0.1の辺りは、適時変更しなければならない。
munin-nodeのインストール
さて、上でmunin-serverをコンテナにしたが、ホストOSにノードを入れる。これは簡単。
sudo apt install munin-node
はい、おわり。
で、設定が少しある。まずは、muin-serverコンテナがどのIPアドレスを取得しているかをみる。
docker network inspect munin-serverのネットワーク
または、
docker inspect muninコンテナ名
で、IPアドレスを探し出し、そのアドレスからmunin-nodeのアクセスをできるように設定ファイルを変更する。設定ファイルは「/etc/munin/munin-node.conf」だったと思う。
中に、
「allow 172\.20\.0.\.5$」と指定するか、「allow 172\.20\.0.\.0$」と範囲で許可するかしてください。
そして、munin-serverコンテナのdocker-compose.ymlの先ほどのIPアドレスを適時変更してください。そうすればOKのはず。