サーバー設定の忘備録10 munin編

実はここが一番てこずった。というか、てこずってる。予想通りの結果が出てるんだけど、出てないという。まぁ、それでも動いたので忘れないように記載します。

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のはず。

カテゴリー: Linux、サーバー, PC関連 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA