SNMPに対応したネットワーク機器や自作NASなどのシステム監視をしたいと日頃から思っておりました。
調べて見るとオープンソースで無償提供している「MIRACLE ZBX コミュニティ版」というのがあるじゃないですか。
コミュニティ版というのは導入から運用まで自分で行う代わりに、サポート対応などが必要な場合は有償で承るというもの・・・みたいです。
サポート対応を頼むにしてもそれなりの金額がするので、個人で頼むには適しません。
この製品、オープンソース「Zabbix」ベースのようなので、Zabbixについて知識があればそれなりに解決するのかもしれません。
私は初めて「Zabbix」を触るので、SNMP設定も含めて手探りで勉強していくことになりそうです。
とりあえず、今回この製品で行いたいことは下記の通り。
・ネットワーク機器の監視(CPU/メモリ使用率、トラフィック、筐体温度)
・NASの監視(CPU/メモリ/ディスク使用率、トラフィック)
なお、このソフトウェアは Red Hat 系の Linux が必須になります。
Windows ではサーバーとしての機能はなく、エージェント(クライアント)機能しかありません。
大手クラウドのサーバーレンタル系では、コミュニティ版ではない「MIRACLE ZBX」が導入されている・・・らしい。
★2021-07-23 追記
ConoHa VPS にて導入可能なようです。
導入に必要な予備知識
そもそも Red Hat 系の Linux 知識が必須です。
日頃から触っている方でないと、導入は難しいと感じました。
Web サーバーとして apache or nginx の構築が可能であること。
DB サーバーとして MySQL(MariaDB)or PostgreSQL の導入及び設定作業が可能であること。
既に Web サーバーや DB サーバーがある場合、設定ファイルのIPアドレスなどの変更が適宜可能であること。(ここの設定、MIRACLE ZBX のマニュアルに無いです)
インストール環境の準備です
Red Hat 系の Linux が必要になります。
下記が対応しています。
- MIRACLE LINUX 8 Asianux Inside(推奨)
- Asianux Server 7 == MIRACLE LINUX V7
- Red Hat Enterprise Linux 8.x
- Red Hat Enterprise Linux 7.x
- CentOS 8.x
- CentOS 7.x
- Oracle Linux 8.x
- Oracle Linux 7.x
- Amazon Linux 2
今回は、CentOS 8 の仮想PCを新たに用意しました。
まず Web サーバーを用意する必要があります。
apache or nginx で PHP を使用するようです。
仮想PCに apache を導入しました。
インストールマニュアルだと MIRACLE ZBX のサーバーソフトを導入する場所に Web サーバーも導入してある前提になっていました。
いわゆる・・・localhost で設定されている。
次に DB サーバーを用意する必要があります。
MySQL(MariaDB)or PostgreSQL のどちらかになるようです。
既に MariaDB サーバーがあるので、そちらを使用することにしました。
インストールマニュアルだと MIRACLE ZBX のサーバーソフトを導入する場所に・・・以下略
適合環境だとサクッとインストール出来ます。
実はRed Hat系のFedoraというOSでインストール作業したのですが、パッケージ競合を起こして入れられる状態では無かったです。
下手に手探りで導入しても保守が大変になるので、CentOSの仮想PCを新たに用意したわけです。
ひとまず、インストールマニュアル通りにコマンドをSSHコンソールから入れていきます。
ざっくりですが、作業的には下記のような流れです。
◆サーバーソフトウェアのインストール
◆Web画面からの設定作業
◆エージェント(クライアント)ソフトウェアのインストール
◆SNMP機器の設定作業
◆Web画面からの監視対象設定作業
■各ソフトウェアのバージョンについて
apache:2.4.37-39
PHP:7.2.24-1
MariaDB:10.4.20
MIRACLE ZBX:5.0.13-4(Zabbix:5.0.13)
◆サーバーソフトウェアのインストール
マニュアル通りなので飛ばします。
強いて言えば、今回はDBサーバーだけIPアドレスがマニュアルとは違うので、その設定を行っただけでしょうか。(設定箇所はマニュアルに記載されていません)
インストールおよび設定ファイルの書き換えが終わったらサーバーサービスの起動を行います。
SNMP設定として、YAMAHA private MIB を別途設定しました。
これは後続で設定するテンプレートの内容とリンクするものです。
◆Web画面からの設定作業
ソフトウェアをインストールすると勝手に設定が加わるのでWebサービスを再起動すれば、有効になります。
http://<WebサーバーIPアドレス>/zabbix/ にアクセスすると下記の画面が表示されます。
次に進むと、サーバー要件など満たしているか画面が出てきます。
その次に進むとDBサーバーの接続設定画面です。
その次に進むと、サーバーサービスがどこのサーバーのどのポートにあるかを設定する画面になります。
最後に設定内容の確認画面になり・・・
Web のフロント画面が設定出来た旨の画面が最終的に表示されます。
◆エージェント(クライアント)ソフトウェアのインストール
NASにエージェントソフトウェアをインストールしました。
設定ファイルにサーバーサービスのIPアドレスなどを設定します。
★☆★ 2021-07-21 修正 ここから ★☆★
OSはCentOSではなく Fedoraであったため、エージェントのサービス起動設定が正しく動作していないようでした。
手探りで修正したらサービス起動出来るようになりました。
個人的なメモ書きですが、/usr/sbin/zabbix_agentd が /usr/sbin/zabbix_agent2 に変わってインストールされていることや、/usr/lib/systemd/system/zabbix-agent.service のPIDの出力先など変更しました。
どうやら MIRACLE ZBX で提供していたエージェントパッケージがおかしいみたい。
Fedora の場合、dnf によるインストールで提供される Zabbix のエージェントを使用することで問題なくサービス起動出来るようになる。
といっても、そのサービスは conf ファイルを明示的に指定していないので /etc/zabbix/zabbix_agentd.conf を参照しません。どのみち、/usr/lib/systemd/system/zabbix-agent.service の修正が必要になります。
/usr/local/ 配下に conf ファイルを置くのであれば、特に修正は不要と思います。
★☆★ 2021-07-21 修正 ここまで ★☆★
Windows用のエージェントインストーラーも用意されているので、後でインストールして設定しておきたい。
◆SNMP機器の設定作業
YAMAHAルーター、YAMAHA無線LANにSNMPv2cの設定を施しました。
◆Web 画面からの監視対象設定作業
別途用意した YAMAHA ルーター用のXMLテンプレートを Web 画面からインポートします。
監視用ホストとして YAMAHA ルーターを登録し、インポートしたテンプレートとリンクさせます。
とりあえず、Web サイトの情報を真似てなんとか初期設定は出来たような気がします。
ルーターのグラフ
左上:CPU/メモリ使用率
右上:筐体温度
左下:LAN1(家庭内側LANトラフィック)
右下:LAN2(インターネット側LANトラフィック)
続いて、監視対象としてNASを登録しました。
すると・・・
もう・・・何も言えないですね。
そうです。
突貫作業だったため、NAS のシステムディスクに、今回作成した仮想PCのイメージファイルを置いていました。
結果的に SSD から HDD へ移動したため、ディスクのレスポンスが低下した旨のアラーム警告がWEB画面から表示され続けました。
そもそもこのアラートは企業向けサーバーのレスポンス低下アラートのはずなので、アラート条件から外しました。
さて・・・これで初期設定は終わった・・・と思う。
次は SNMP を利用したグラフの項目カスタマイズだ!
ここからようやく Zabbix とはなんぞ?という感じで勉強が始まる。。。
執筆中
かもみーる先生の次回作更新にご期待ください。
やりたいことメモ
・各PCのHDDのS.M.A.R.T.を監視 → 【済】2021-07-21
・監視対象PCのPing監視
・SNMP関連の勉強
・ストレージ使用量の肥大化抑制 → 【済】2021-07-21
DBのhistory_logテーブルの保持期間を変更
・Windows用エージェントを登録し、イベントログを閲覧出来るようにしてみる → 【済】2021-07-25
★2021-07-21 手探りで追記中
Zabbix 5.xx系でのザックリとした登録作業の流れ
・エージェントにZabbixサーバー側からコマンド実行可能を可能とする設定を追加する。
・エージェントから値取得したいコマンドをZabbix Web画面からアイテムの登録をする。
・上記で登録したアイテムからグラフを作成する。
・上記で登録したアイテムからトリガー(通知設定)を作成する。
とりあえず試したこと。
・エージェント側の設定ファイルで UserParameter を設定したが、[m|ZBX_NOTSUPPORTED] [Unsupported item key.] と出る。
→数時間頑張ったが諦めた。
→UserParameter を削除して AllowKey=system.run[*] を追加した。
これはエージェント側でテスト用コマンドを実行してもエラーになる。
Zabbixサーバーでホストのアイテム登録でエージェントに対してのコマンドを登録すると実行可能になった。
・zabbix_agentd.confの設定値が不明だったが、とても参考になった公式のGitHub
日本語で書かれている情報系サイトのほとんどがやってみた系なので最低限しか設定値の情報しかなくて、あまり参考にならなかった。あとは Zabbix バージョンが古いとか。
confファイルで設定しない項目がある場合、そのバージョンに沿ったデフォルト値がセットされる模様。
Zabbix のバージョンアップをすると稀にデフォルト値が変わることがあるかもしれない。
現時点バージョンのデフォルト値でもいいから明示的に項目を設定すべし。
項目を省略するなら必ず吟味すべき。
システムの運用保守経験者としてこれは重要!と思う。
明示的に項目設定することで、メジャーバージョンアップで項目が廃止になることもありますが、それはその時に改めて確認すればよいと思う。
★2021-07-23 追記
MIRACLE ZBX の Windwos エージェントをインストールしてみた。
デフォルト設定だと C:\Program Files\ZABBIX Agent 2 にインストールされる。
zabbix_agent2.conf に下記を追加
AllowKey=system.run[*]
本当は DenyKey も追加すべきだけど、勉強用途なので一旦スルーします。
業務で使用するために閲覧している方、セキュリティに関わる場所なのでしっかりと吟味してほしい。
Webフロントからアイテム登録をして、コマンド実行出来るか確認する。
こんな感じで設定してみる。
system.run[<実行したいコマンドを設定>] を設定しますが、試しに data /t を指定してみた。
実行結果は現在日付が表示される想定。
テスト実行してみると、問題なく現在日付が表示される。
ひとまず Windows 環境で HDD の SMART 情報を取得して監視させるのが目標。
しかし、 Windows には SMART 情報を取得する機能は標準では提供されていない。
サードパーティ製ソフトウェアとして CrystalDiskInfo を入れれば値は取れなくはないが、少々工夫が必要になってくる。
詳細はというと・・・CrystalDiskInfo が格納されたディレクトリ配下にSMART情報が格納されたディレクトリがあります。
ディスクストレージ毎にフォルダーが作成されていますが、半角スペースを含むため少々扱いにくいです。
そこで、ディスクストレージのフォルダー名を1,2,3とナンバリングしたシンボリックリンクで作成します。
例としてTOSHIBAのSSDを1というシンボリックリンクを作成している(シリアルナンバーが入っていたので黒塗りしてます)
その後、Webフロント画面から監視ホストのアイテムを下記のように登録します。
同様な操作で3項目のアイテムを作成して下記のグラフを作成。
同じような操作を他のPCに設定を施せば、Webフロント画面から一括でSMART情報の確認が出来ます。
★2021-07-25 追記
Windows のイベントログ採取について
◆そもそも、Windows のイベントログとは・・・。
ハードウェアの動的な増減だったりシステムやアプリケーションなどが発生したイベントを記録したものです。
OS不具合調査やアプリケーションなどの原因調査などで利用するもので、イベント ビューアーから参照が可能です。
OSが不安定になってきたら注意深く観察することで原因を特定出来たりする場合があります。
通常は稼働端末からしか閲覧出来ませんが Zabbix へ情報を送ることで、稼働端末を操作せずにWebフロント画面から閲覧することが可能になります。
これは稼働PCが多ければ多いほど、効果的になります。
◆設定方法と確認方法について
1.抽出したい Windows の PC にエージェントをインストールします。
2.Webフロント画面からエージェントをインストールしたPCのホスト情報を登録します。
3.登録したホストに対して下記のようにアイテムを登録します。
ここではイベントログのシステムを取得しており、警告とエラーを抽出し情報については除外しています。
4.確認は「監視データ」「最新データ」「監視しているホスト」「登録したアイテム名」のヒストリで確認が出来ます。
フィルター機能を使用して、検索したいキーワードを設定して抜粋することも可能です。
★2021-08-20 追記
ネットワークマップを作製してみた。
ネットワーク図というより LAN 配線図かな・・・。
スマートフォンやPCはマップには入れていない。
「正常」と書かれているのは監視対象。
インターネットを表す雲マークも入れたいけれど、スペースが足りない。
-
購入金額
0円
-
購入日
2021年07月18日
-
購入場所
サイバートラストのサイト
cougarさん
2021/07/19
入れるのは簡単だけど設定が面倒ですよね……
バージョン違うと設定違ったりとかもありますし。
頑張ってくださいw
かもみーるさん
2021/07/19
コメントありがとうございます。
企業で自社サーバーあるなら監視サービスは必須ですよね。
触ってて気が付きましたが、アラーム通知、確認、解決とインシデント管理出来るのもよいですね。
個人宅で使用するには明らかに使いこなせないですが、時間かけて勉強していきます。