最近よくなんらかのシステムがこわれていて、しばらくして気が付くことがおおくなった。よって、監視ソフトを入れて、異常と判断したらメールを飛ばすくらいのことはやってみようと思う。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と同様。
コメント