リソース(CPU、メモリ等)の監視について
お世話になります。
CPU使用率やメモリ使用率の監視についてですが、瞬間的に負荷が上がり閾値を超過するケースがあり
以下の様なトリガー条件式で瞬間的な負荷をエラーとして検知しない様にしております。
深刻度:警告
条件式:{perf_counter[\Processor(_Total)\% Processor Time].count(#3,70,"ge")}=3 and {perf_counter[\Processor(_Total)\% Processor Time].count(#3,90,"lt")}=3
深刻度:致命的な障害
{perf_counter[\Processor(_Total)\% Processor Time].count(#3,90,"ge")}=3
このトリガー条件式ですと以下の様なケースで警告・致命的な障害の
トリガーが出力されない状態となり、条件式の作成に難儀しております。
最新の値1:93
最新の値2:87
最新の値3:87
最新の値4:94
最新の値5:94
最新の値6:84
最新の値7:84
この様なリソース使用率の揺らぎの部分を対応または解決されている方々の
お知恵をお借り出来ればと思い、投稿させて頂きました。
以上、宜しくお願い致します。
KAZ - 投稿数: 1085
kazuyanさん
Zabbixのバージョンは2.4でしょうか?
質問の際にはマイナーバージョンまで書いて頂けると良かと。
何をどう検知したいかなので、どう言う葉縁で検知したいかなのですが…A(^^;
3回中90以上が2回以上あれば検知したいのですか?
それとも3回中1回でも検知したいのですか?
それとも3回中70位上で且つ内1回が90位上を検知したいのですか?
kazuyan - 投稿数: 9
KAZさん
色々情報が足りておらず申し訳ありません。
Zabbixのバージョンは2.4.5です。
自分自身で整理出来ていない所が多く、こちらで質問できるだけの
状態になっていませんでした・・・。
やりたい事は警告を「3回中70以上が3回且つ内90未満が1回」で出力させたいです。
冷静に考えれば.count(#3,90,"lt")=3を.count(#3,90,"lt")=1にすれば事足りる
様な気がしてきました。
変更前
条件式:{perf_counter[\Processor(_Total)\% Processor Time].count(#3,70,"ge")}=3 and {perf_counter[\Processor(_Total)\% Processor Time].count(#3,90,"lt")}=3
変更後
条件式:{perf_counter[\Processor(_Total)\% Processor Time].count(#3,70,"ge")}=3 and {perf_counter[\Processor(_Total)\% Processor Time].count(#3,90,"lt")}=1
お騒がせをしてしまい、申し訳ありませんでした。
次回以降は整理してから投稿致します。
KAZ - 投稿数: 1085
kazuyanさん
ですね。A(^^;
監視条件は一度箇条書き等に書き出して
整理すると考えやすいかも知れません。
kazuyan - 投稿数: 9
KAZさん
アドバイスありがとうございます。
条件の整理が曖昧でご迷惑をお掛けしました。
本筋とは少し逸れてしまうのですが、count(#3,90,"lt")の3回の値が見たいと思い
アラートメールにITEM.VALUEとITEM.LASTVALUEの値を表示する様に設定しました。
実際飛んできたアラートメールを見るとITEM.VALUE、ITEM.LASTVALUE共に
*UNKNOWN*が表示されてしまいました。
設定等に不備があればご指摘頂けますでしょうか。
以下アイテムとアラートメールの内容(該当箇所抜粋)を記載させて頂きます。
<アイテム設定>
タイプ:Zabbixエージェント
キー:perf_counter[\Processor(_Total)\% Processor Time]
データ型:浮動小数点
単位:%
更新間隔:100秒
ヒストリ保存期間:180日
トレンド保存期間:365日
<アラートメール設定(抜粋)>
最新データ1(ITEM.VALUE): {ITEM.VALUE1}
最新データ2(ITEM.VALUE): {ITEM.VALUE2}
最新データ3(ITEM.VALUE): {ITEM.VALUE3}
最新データ1(ITEM.LASTVALUE): {ITEM.LASTVALUE1}
最新データ2(ITEM.LASTVALUE): {ITEM.LASTVALUE2}
最新データ3(ITEM.LASTVALUE): {ITEM.LASTVALUE3}
<実際に飛んできたメール(抜粋)>
最新データ1(ITEM.VALUE): 90.44 %
最新データ2(ITEM.VALUE): 90.44 %
最新データ3(ITEM.VALUE): *UNKNOWN*
最新データ1(ITEM.LASTVALUE): 90.44 %
最新データ2(ITEM.LASTVALUE): 90.44 %
最新データ3(ITEM.LASTVALUE): *UNKNOWN*
fripper - 投稿数: 495
kazuyan さん
ITEM.VALUEx
→トリガー条件式内で x 番目に表記されているアイテムの、トリガー判定段階での最新収集値(発動のキッカケになった値)
ITEM.LASTVALUEx
→トリガー条件式内で x 番目に表記されているアイテムの、通知アクション実行時段階での最新収集値
先のコメントで書かれているトリガー条件式には2つのアイテムキー表記があって
各々、processor time のアイテム(同じアイテムキー)を表記しておられるため、
通知メール内の VALUE1 / VALUE2・LASTVALUE1/LASTVALUE2 は
ともに同じ値(processor time アイテムの最新収集値)を表記したのだと思います
また、3つめのキー表記が無いので、unknown となっているのだと思います
残念ながら、n回前に収集した値 (いわゆる last(#n) に相当する値)を
メール本文に埋め込むようなマクロ表現はありません‥
kazuyan - 投稿数: 9
fripperさん
ご教授頂きありがとうございます。
ITEM.VALUEとLASTVALUEの使い方を勘違いしていたようで
お恥ずかしい限りです。
last(#n)に該当するものをメール本文に埋め込むマクロが現状存在
していない旨、承知致しました。
長々とした質問をしてしまい、失礼いたしました。