MuninはAgent型のパフォーマンス収集ツールです。ZappixやNagiosに比べるとアラート通知機能は貧弱ですが、設定が非常に簡単である事が最大のメリットです。
監視ツールとしては貧弱ですが、キャパシティプランニングだけならばMuninのみで充分です。また、監視が必要な環境でしたら他の統合監視ツールと組み合わせる事で手間を大きく削減できると思います。サーバ台数が多く運用工数削減が叫ばれるような環境では、非常にお勧めできるソフトウェアです。労働力対効果という評価観点では非常に優れたツールだと思います。
Munin Master
監視ツールは監視を行うサーバと監視されるサーバが存在し、サーバ、クライアント、エージェントなど呼び名はツールによって異なります。 Muninの場合は監視すサーバをMunin Masterと呼び、監視されるサーバをMunin nodeと呼びます。まずは、監視する側であるMunin Masterのインストール方法について説明します。
Munin Master インストール準備
MuninはPerl製のツールです。CentOS 8.0からはperlライブラリ群が標準のリポジトリから消えてしまっています。Muninが使用するperl(DateTime),perl(Params::Validate),perl(File::Copy::Recursive),perl(Taint::Runtime)はPower Toolsなどのリポジトリに格納されています。
CentOS8.0以上を使用している方は、Munin Masterのインストール前にPower Toolsのリポジトリを登録します。
dnf config-manager --set-enabled PowerTools
[root@centos82 ~]# dnf repolist repo id repo の名前 AppStream CentOS-8 - AppStream BaseOS CentOS-8 - Base PowerTools CentOS-8 - PowerTools epel Extra Packages for Enterprise Linux 8 - x86_64 epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64 extras CentOS-8 - Extras
Munin Master インストール方法
yumコマンドまたはdnfコマンドでMuninをインストールします。このコマンドによって、インストールされるパッケージは、munin, munin-node, munin-common, munin-apacheの4つです。muninというパッケージがMunin Masterの事を指します。
dnf install epel-release dnf install munin
Munin Node
Munin Nodeは監視エージェント相当の機能を提供する常駐プログラムです。最低1ノードは監視できる状態にしないと動作確認ができませんので、取り急ぎ、Munin Masterがインストールされた同一OS上にMunin Nodeを構築します。
Munin NodeはMunin Masterと同時にインストールされるため、明示的なインストール操作は不要です。
それではMunin Nodeを起動します。
systemctl enable munin-node.service --now
Munin Nodeはtcp4949でListenします。動作確認の意味を込めて、Muninに対して簡単なコマンドを発行してみましょう。listコマンドは監視可能項目の一覧で、quitコマンドで離脱します。
[root@centos82 ~]# telnet localhost 4949 Trying ::1... Connected to localhost. Escape character is '^]'. # munin node at centos82.gokatei.go list cpu df df_inode entropy forks fw_conntrack fw_forwarded_local fw_packets if_ens33 interrupts irqstats load memory open_files open_inodes proc_pri processes swap threads uptime users vmstat quit Connection closed by foreign host. [root@centos82 ~]#
munin-cron 定期実行
munin-cronは監視を実施したりHTMLを生成したりする定期実行処理プログラムです。このプログラムが正常に動くかどうかを確認しましょう。
muninユーザにスイッチしmunin-cronを実行します。エラ〜メッセージが出力されない事を確認します。
[root@centos82 ~]# su - munin 最終ログイン: 2020/09/06 (日) 18:08:03 JST日時 pts/0 [munin@centos82 ~]$ munin-cron [munin@centos82 ~]$
処理にうまく行った場合は、/var/www/html/munin配下にindex.htmlが生成されています。
[munin@centos82 ~]$ ls -l /var/www/html/munin/ total 168 drwxr-xr-x 2 munin munin 51 Sep 6 17:39 cgi -rw-rw-r-- 1 munin munin 11532 Sep 6 18:08 disk-day.html -rw-rw-r-- 1 munin munin 11560 Sep 6 18:08 disk-month.html -rw-rw-r-- 1 munin munin 11546 Sep 6 18:08 disk-week.html -rw-rw-r-- 1 munin munin 11546 Sep 6 18:08 disk-year.html -rw-rw-r-- 1 munin munin 3089 Sep 6 18:08 index.html drwxr-xr-x 3 munin munin 41 Sep 6 18:08 localhost -rw-rw-r-- 1 munin munin 4842 Sep 6 18:08 network-day.html -rw-rw-r-- 1 munin munin 4850 Sep 6 18:08 network-month.html -rw-rw-r-- 1 munin munin 4846 Sep 6 18:08 network-week.html -rw-rw-r-- 1 munin munin 4846 Sep 6 18:08 network-year.html -rw-rw-r-- 1 munin munin 2796 Sep 6 18:08 problems.html -rw-rw-r-- 1 munin munin 5242 Sep 6 18:08 processes-day.html -rw-rw-r-- 1 munin munin 5252 Sep 6 18:08 processes-month.html -rw-rw-r-- 1 munin munin 5247 Sep 6 18:08 processes-week.html -rw-rw-r-- 1 munin munin 5247 Sep 6 18:08 processes-year.html drwxr-xr-x 2 munin munin 221 Sep 6 17:46 static -rw-rw-r-- 1 munin munin 8683 Sep 6 18:08 system-day.html -rw-rw-r-- 1 munin munin 8705 Sep 6 18:08 system-month.html -rw-rw-r-- 1 munin munin 8694 Sep 6 18:08 system-week.html -rw-rw-r-- 1 munin munin 8694 Sep 6 18:08 system-year.html
ディストリビューションやバージョンによっては、munin-cronを定期実行する設定が/etc/cron.d/muninに自動的に作成されています。もし、パッケージインストールと同時に自動作成されていないならば、以下のようなファイルを手作業で作成してください。
cat << EOF > /etc/cron.d/munin */5 * * * * munin test -x /usr/bin/munin-cron && /usr/bin/munin-cron EOF
ブラウザによる確認
Munin Masterをインストールすると、munin-apacheというパッケージも同時にインストールされます。これは実質のapache httpdです。httpdを起動すると、Muninの監視結果をブラウザで閲覧できます。
systemctl enable httpd.service --now
ブラウザに以下URLを入力し、監視画面を閲覧できる事を確認します。
http://<ip address>/munin/
この画面でlocalhostを押下すると詳細画面へ遷移できます。
詳細画面が表示される事を確認します。