ZabbixでHDDの読み書き情報を確認する方法
前回ひとつの問題を解消できたZabbix。
せっかくなので色々と構ってみたいのですがなにぶん初心者なものでどこから手を付けたらよいものかと思案した結果、ドキュメントを眺めながら試したいことを試す!というありきたりな結論に達したのでした。
ということで今回はHDDの読み書きを監視するよう登録・設定したいと思います。
「アイテム」を知る
調べたところアイテムというのはZabbixにおける用語の一つでずばり「監視項目」のこと。
アイテムキーとパラメータから構成されておりキーは監視項目そのものを、パラメータは監視する条件を指定して組み合わせることでより詳細な情報を取得できます。
今回の目的は「HDDの読み書きを監視する」ことなのでそれに沿ったキーとパラメータを調べてみました。
HDDを監視するアイテムを作成
続いてはHDDを監視するアイテムを作成します。
私の環境だとHDDを2玉使ってRAID1を構築しており、それぞれのデバイス名は「sda1」「sdb1」となっております。
まずはsda1の読み込み情報を取得するアイテムを作成してみました。
「設定」→「ホスト」から画面右上にある「アイテムの作成」をクリックします。
登録内容は以下のとおり。
名前は自分がわかりやすい名称でよいと思います。
タイプはサーバ監視を行う手法とでもいいましょうか、例えばZabbixエージェントがインストール済みのホストを監視する場合はそのままZabbixエージェントを選択します。(今回の場合もこれ)
他にはSNMP(Simple Network Management Protocol)を利用した監視やシンプルチェックなど色々な項目がありますのでこれらは随時覚えていきたいところ。
続いてのキーはタイプを選択することで自動的に選択肢が与えられます。Zabbixエージェントに紐付けられたキーの中にHDDの読み込み情報を取得するためのキーがちゃんとvfs.dev.read[device,<type>,<mode>]として用意されています。
今回の設定では
- device:sda1。自分の環境に応じて。デフォルトの設定はall:すべてのドライブ。
- <type>:省略。LinuxのデフォルトはSectorで取得。OSにより異なるため注意。
- <mode>省略。avg1で1分間の、avg5で5分間の、avg15で15分間の平均を取得可。
ということで「vfs.dev.read[sda1]」という表記になります。
データ型は数値(浮動小数)、単位は表示上の問題なので、セクタを取得する今回はこのようにしました。
あとは何も入力・変更せず。アプリケーションを選択することで監視画面で表示されるグループを選択できますが今回はあえてそのまま。こうすると一覧表示したときにotherグループとして表示されます。
保存を押してやると登録完了。この調子でsda1 writeとsdb1 read/writeを登録してしまいます。
sda1.device.write
sdb1.device.read
sdb1.device.write
これで各HDDに対する読み書きを監視するアイテムが作成できました。
アイテム一覧を見るとこんな感じに。
作成したアイテムで実際に監視してみる
真ん中あたりに4つ作成されています。それでは作成したアイテムに基づいた監視情報を確認してみます。
「監視データ」→「最新データ」を見てみます。すると…
一番下の方に-other-というグループがありその下にsda1とsdb1のread/writeが作成されていることがわかります。
データ型で数値を使った場合は自動的にグラフも作成されるという親切ぶり。さっそくクリックしてみてみると…
こんな感じで簡単にグラフで表示できました。やっぱり累積したデータを図で見るほうが利用情報としてはとてもわかりやすいです。
何時何分に大量の読み込みが発生している!とか書き込みが!とかが手に取るようにわかりますよね♪
ZabbixでHDDの読み書きを監視するまとめ
忘れないうちに今回の内容を纏めておきます。
- Zabbixでは監視する対象をアイテムと呼ぶらしい
- 設定→ホスト→アイテム→アイテムの作成から好みのアイテムを登録可
- ただしデフォルトでも幾つかのアイテムがあるのでダブりに注意
- 監視対象によってタイプとキーを設定
- 作成したアイテムは監視データ→最新データより閲覧可能
- データ型:数値で作成したアイテムはすぐにグラフも見れる
といったところ。
ただ、今回作成したグラフを個別に見るよりできれば4つを統合して見たほうが情報としては生きてくるはず。
ということで次はグラフを作成して両方のHDDに対する読み書きを一元管理できるようにしたいと思います。