最近よくなんらかのシステムがこわれていて、しばらくして気が付くことがおおくなった。よって、監視ソフトを入れて、異常と判断したらメールを飛ばすくらいのことはやってみようと思う。cacti ? zabbix ? どちらもいれてみる。
cacti のインストール
まず、mrtg 相当の機能を有するという cacti をインストールしてみる。fedora の標準リポジトリに含まれているので OS は fedora とする。
OS のインストール
fedora 39 server の ISO イメージの PVE への転送(現在 38 のものしかないので)。PVE での VM の作成。fedora の ISO イメージから起動して普通にインストールを行う。
また、autofs や rsyslog・chronyd その他必要なアプリケーションのインストールおよび設定を行っておく。
OS のセキュリティ設定
firewalld で必要な設定を行っておく。
cacti のインストール・設定
ここを参考にインストールした。このページは fedora38 を利用しているが fedora39 でも問題なくすすめることができた…と思われたが…
cacti の設定時エラーその1
上記の Webページのとおり作業をすすめていくと、別の PC 等の web ブラウザから接続するための説明が抜けているのか、それとも fedora39 になってパラメータが変更されたのかわからないが、/etc/httpd/conf.d/cacti.conf の中で、必要なディレクトリのアクセス権が Require host localhost しかなく、
Forbidden You don't have permission to access this resource.
の表示が出てしまう。
Require ip で接続に必要なパラメータを追加して apache を再起動しておく。
cacti の設定時エラーその2
つづいて、以下のメッセージが出力された。
FATAL: Connection to Cacti database failed. Please ensure:
the PHP MySQL module is installed and enabled.
the database is running.
the credentials in config.php are valid.
/etc/cacti/db.php の $database_password をただしく設定する。
なお、/usr/share/cacti/include/config.php→/etc/cacti/db.php のようなシンボリックリンクが張られている。
cacti の設定時エラーその3
ブラウザで無反応。
データベースの初期データのセットアップができていなかった。以下のコマンドを実行してデータベースのセットアップを行う。
# mysql -ucactiuser -ppassword --host=localhost cacti < /usr/share/doc/cacti/cacti.sql
cacti のブラウザでの設定
ユーザ名と初期パスワード(admin/admin)を入力してログインすると、すぐにパスワードを変更するように要求される。大文字小文字と特殊文字が必要。
つづいて、php やら mariadb やらのパラメータのチェックがあるのでエラーが出なくなるまで修正を行う。
cacti の設定時エラーその4
ブラウザでの設定を進めていくと、/usr/share/cacti/log に書込権がないといって先に進まない。ログをみると SELinux がらみであった。
Web 上で情報をみていると結構 SELinux がらみで議論されていて結論が出ていないようである。
今日のところは、SELinux を disabled にして対処する。
Web ブラウザでの設定(正常に進むパターン)
エラーなく進むとこのようになる。















systemctl timer の設定
上記のエラーを対処していくとブラウザでの設定は完了である。つづいて以下の内容で timer 設定を行う。なお、fedora の cacti では cron のスクリプト(コマンド自体はコメントアウトされており呼び出されるが何もしない)が用意されている。こちらはそのままにしておき、ここを参考に systemctl の timer 設定を行う。
service ファイルの内容
[Unit]
Description=Cacti Poller
[Service]
User=apache
Type=simple
ExecStart=/usr/bin/php /usr/share/cacti/poller.php
timer ファイルの内容
[Unit]
Description=Cacti Poller Timer
[Timer]
OnCalendar=*:0/5:0
Unit=cacti_poller.service
AccuracySec=1
[Install]
WantedBy=multi-user.target
いつものようにサービスを登録し、systemctl list-timers コマンドおよびログをみて動作していることを確認する。
spineのインストール
つづいて spine をインストールする。(spine をインストールすると機器へのポーリング時の処理がはやくなるとのことである)
spine は標準リポジトリに含まれている。以下のコマンドでインストールする。
# dnf -y install cacti-spine
/etc/spine.conf のなかのデータベース接続用の ID およびパスワードを確認する。cacti で使用するデータベース名・利用者・パスワード等を記載する。
Cacti の画面から、 [Settings] リンクを押下し、 [Path] タブを表示させる。

Spine Binary File Location に /usr/bin/spine、Spine Config File Path に /etc/spine.conf
を設定して、[save]をクリックする。

つづいて [Poller] タブを表示させ、 [Poller Type] の項目をに設定して 「Save」をクリックする。

ログをみて、spine メソッドになっていることを確認する。
監視対象の SNMP エージェント設定
監視対象の機器の SNMP エージェント設定を事前に行っておく。ここを参照。
cacti への登録
cacti 側で監視対象とする機器を追加するには、左サイドバーの「Create」→「New Device」をクリックする。すると画面右に「Devices [new]」画面が表示される。
ここで監視対象とする機器の情報を入力していく。
WAP125
General Host Options 項目では、サーバーの説明(Description)やホスト名(Hostname)、使用するテンプレート(Host Template)などを指定する。Description にはサーバー名などを、ホスト名には監視対象のホスト名もしくは IP アドレスを入力しておく。また、あらかじめ用意された監視・グラフ設定を適用するテンプレートを利用することで、容易に設定を行うことが可能。テンプレートには複数が用意されているが、SNMP を使用した監視を行う場合は「Generic SNMP Device」を選択する。
「Availability/Reachability Options」項目についてはとくに変更する必要は無い。
また、「SNMP Options」ではSNMP関連の設定を行える。「SNMP Version」には使用する SNMP のバージョンを、「SNMP Community」では SNMP エージェントで設定したコミュニティ名を指定しておく。
設定項目の入力が完了したら、「Create」ボタンをクリックすると設定が保存される。SNMP で正しくデータの取得が行えていれば、画面左上に取得されたサーバー情報が表示される。

IX2215

APLGS120GTSS

グラフの作成
WAP125
cacti にログインし、Console→Management→Devices→WAP125 を選択する。
つづいて画面右上の「Create Graphs for this Device」をクリックする。
後は時間がたてば、自動的にグラフを作成してくれる。
その他のデバイス
WAP125 と同様。
コメント