SSL な Rails + nginx ホストに munin を仕込む話

自分用の覚え書きです。

sudo su -
apt update

munin のセットアップ

apt -y install munin
vim /etc/munin/munin.conf

次のように編集。特に htmldir は Debian 系の標準とは違うので注意。

--- snip ---
dbdir   /var/lib/munin
htmldir /var/www/munin
logdir  /var/log/munin
rundir  /var/run/munin
--- end of snip ---

htmldir の作成。

mkdir /var/www/munin
chown munin:munin /var/www/munin

nginx で munin にアクセスできるように設定。

vim /etc/nginx/sites-available/default

--- snip ---
server {
  # Let's Encrypt を使った SSL な Rails サイト設定
  listen 443 ssl;
  ssl_certificate     /etc/letsencrypt/live/<domain_name>/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/<domain_name>/privkey.pem;
  client_max_body_size 50M;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header Host $http_host;
  proxy_set_header X-CSRF-Token $http_x_csrf_token;
  location / {
     proxy_pass https://<rails_host>:<rails_port>;
  }
  # munin にアクセスできるようにするための設定 [←NEW]
  location /munin {
    alias /var/www/munin;
    index index.html index.htm;
    allow ::1;
    allow 127.0.0.1;
    deny all;
  }
}
--- end of snip ---

設定のリロードと再起動をし、munin の集計を即時行う。

/etc/init.d/nginx reload
/etc/init.d/munin-node restart
su - munin --shell=/usr/bin/munin-cron # 即時更新

-L8080:127.0.0.1:4443 などトンネルを掘って、手元から https://localhost:8080/munin にアクセスして確認する。証明書エラーでブラウザから怒られてもアクセスする。

nginx のステータス モニタリング設定

引き続き root 権限。 location /status の一節を追加する。

vim /etc/nginx/sites-available/default

--- snip ---
  # nginx のステータスを munin が問い合わせできるようにするための設定 [←NEW]
  location /status {
    stub_status on;
    allow ::1;
    allow 127.0.0.1;
    deny all;
  }
--- end of snip ---

/etc/init.d/nginx reload

掘ったトンネルで、手元から https://localhost:8080/status にアクセスして確認する。
次のような pre な HTML が出てくればOK。

--- snip ---
Active connections: 6 
server accepts handled requests
 587 587 1144 
Reading: 0 Writing: 1 Waiting: 5 
--- end of snip ---

munin の nginx 用プラグインを有効化して再起動、更新する。

ln -s /usr/share/munin/plugins/nginx_request /etc/munin/plugins/nginx_request
ln -s /usr/share/munin/plugins/nginx_status /etc/munin/plugins/nginx_status

/etc/init.d/munin-node restart
su - munin --shell=/usr/bin/munin-cron # 即時更新

手元から https://localhost:8080/munin にアクセスして確認する。

投稿者:

dyama

佐世保のシステムエンジニアです。詳しいプロフィールやこのブログについてはこちらをご覧ください。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください