ダッシュボードのZabbixサーバーの状態の件数について
いつも参考にさせていただいております。
以下について、ご教示頂ければ助かります。
ダッシュボードのZabbixサーバーの状態にあるアイテム数、トリガー数について、実際DBに登録されている件数(SQLにてcount取得)と同数として表示されない事象を確認しています。
このアイテム数、トリガー数はDBに登録されている件数が表示されると理解しておりますが、認識違いでしょうか。
また、画面更新すると少しづつ数は増えていっているのですが、取得タイミング、取得する仕組みについてご教示頂けないでしょうか。
Zabbixのバージョンは2.2.11となります
よろしくお願いします
TNK - 投稿数: 4671
DBからどのようにして件数を確認しましたか?
恐らく、テンプレートのものも一緒にカウントしてしまっているの
ではないでしょうか?
ダッシュボード上の値を取得するのであれば、ホストに紐づけられ
たアイテムやトリガーとして抽出する必要があったと思います。
wakaba - 投稿数: 228
広瀬です
※Ver2.4.8、及び3.0.4での話ですが、両者とも大きな変化はなかったので、2.2でも通用すると
思いますが、確証はありませんので参考程度にどうぞ。
hostsテーブル中の、host、status、flagsフィールドでそれぞれ適宜判断できる箇所です。
statusフィールドはテンプレートなら「3」、有効なホストは「1」、無効なホストは「0」。
flagsフィールドで特殊要件のホスト(値が「0」以外)が存在するので、それを除外する
※flagsフィールドの特殊要件はビルトインテンプレを除外していると存在しない場合もあり
この辺の要件満たすSQL文作ればよいのではないかと思います。ざっとテーブル見渡し
た限りでのかなり大雑把な回答ですが、参考になればと思います。
wakaba - 投稿数: 228
失礼、返答内容間違えました。ホスト数じゃなくてアイテム数でしたね。
考え方は同じで、対象はitemsテーブルのstatusとstateフィールド、及びhostsとitemsテーブル
が持つhostidフィールドの情報が必要です。SQL文はすぐに思いつきませんが恐らくはinner
joinだと思いますが・・・その辺の結合が必要だと思います。
この手のSQL構造みたい場合、show create tableで片っ端から対象になるであろうテーブル
定義をひっくり返していけばある程度見分けが付く事があるようです<実際この回答は即興
※トリガー数も考えは同じです。基本はtriggersテーブル見る事
wakaba - 投稿数: 228
広瀬です
あくまでもVer3.0.4での結果ですが、アイテム数(現在有効数)なら以下かと
select count(j.itemid) as c from items j inner join hosts a on j.hostid=a.hostid where j.flags in (0,4) and j.type<>9 and a.status=0;
いちを、自前環境に於いては数値はあってます<適当に有効・無効化させても確認済み