こんにちは、プラットフォーム技術部の齊藤(沙)です。

これまでZabbixに関していろいろ確認してきましたが、まだまだ知らないこと、わからないことが沢山あるなと感じる日々です。

もっとZabbixについて理解を深めたい!と思っていたところ、

「ソースを読むのです。そーすれば理解は深まります。」

という神(先輩)の声が聞こえたため、今回はZabbixのソースから仕様を調べることにチャレンジしてみたいと思います。

前回の記事はこちら。

こんにちは!プラットフォーム技術部の齊藤(沙)です。前回はZabbixが監視設定や履歴データを保管するデータベースの中でも監視項目であるアイテムに関連するテーブルについて確認しました。今回は監視閾値であるトリガーに関連するテーブルについて確認していきます...

まとめ記事作りました♥

こんにちは、プラットフォーム技術部の齊藤(沙)です。「まるごとおまかせZabbix」をより便利で有用なサービスとするために日々奮闘中の私ですが、アークシステム ザビ家の一員として、Zabbix に関する日々の取り組みやナレッジをご紹介していきます!おかげさまで記...

調査対象

今回は以下の仕様について調査を行います。

WebUI上のグラフ描画にてHistoryとTrendの表示が切り替わる条件

オンラインマニュアルには以下の記載があります。
※今回の調査はv3.0.20のソースにて実施します。

  • longevity of item history. For example, item history can be kept for 14 days. In that case, any data older than the fourteen days will be coming from trends.
  • data congestion in the graph. If the amount of seconds to display in a horizontal graph pixel exceeds 3600/16, trend data are displayed (even if item history is still available for the same period).
  • if trends are disabled, item history is used for graph building – if available for that period. This is supported starting with Zabbix 2.2.1 (before, disabled trends would mean an empty graph for the period even if item history was available).

ふむふむ。わかったようなわからないような。

特に「水平グラフのピクセルに表示する秒数が3600/16を超える」ってどういう状態なんだろう。。。読めば読むほどわからないので疑問を解消するために早速ソースを見てみます。

ソースを探そう

まずはソースをダウンロードし、解凍してみます。
今回はWebUIの画面描画に関する調査なので「frontends」内のソースを確認してみます。

ソースを探そう

沢山あります・・・。どれだろう。。。
実際にWebUIでグラフ画面を表示させてみると、「charts.php」が参照されているようなので中を覗いてみます。

charts.phpの中でグラフを描画している箇所は以下のようです。

「CLineGraphDraw.php」内の「draw」ファンクションを呼び出しているようなのでさらに覗いてみます。
※以下はdrawファンクションの冒頭のみ抜粋

「$this->selectData();」というそれっぽい呼び出しがありました!
さらにさらに「selectData」ファンクションを覗いて見るとHistoryとTrendを切り替えていそうな箇所を発見。

一部、計算してそうな箇所の数値が変数になっているので内容を確認するため、「defines.inc.php」を覗くと以下の記載がありました。

上記を踏まえると、冒頭で疑問だった「水平グラフのピクセルに表示する秒数が3600/16を超える」という状態は、以下の処理を指していて、以下の式が成り立つときもHistoryデータがグラフ描画に利用されているようです。

上記式の中の「period」はグラフの表示期間を、「sizeX」はWeb画面上のグラフを描画する範囲の横軸のピクセル数を表すようなので、

表示期間(秒数) / グラフ描画範囲の横軸ピクセル数 < 225

となり、HistoryとTrendデータどちらを利用するかはグラフの表示期間と画面のサイズによって変動するんだということがわかりました!

グラフ描画に用いられるデータ量が多すぎるとグラフが非常に見難くなるのでそれを回避するためのロジックがしっかりと組み込まれているんですね。Zabbix素敵。

でもなんで225(3600/16)なんだろう。試行錯誤の賜物なのか・・・。それともなんらかのロジックによって生み出された数字なのか・・・。

また時間があるときに「defines.inc.php」の値を書き換えてみていろいろごにょごにょしてみたいと思います。

まとめ

マニュアルを読んだだけでは具体的に理解することができませんでしたが、実際ソースを読んでみるとより具体的に理解することができました。

仕様がわからなかったらソースを読もう!を合言葉に今後もZabbixのことをもっと知っていきたいと思います。


アークシステムでは、Zabbixの環境構築や保守サポートを低価格・短納期で実現する「まるごとおまかせZabbix」を提供しています。 本サービスの詳細や、Zabbixを活用したソリューションにご興味をお持ちの方がいらっしゃいましたら サービス紹介ページ からお気軽にお問合わせ下さい。

 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

Twitter で「株式会社アークシステム」をフォローしよう!

【わたしに♥おまかせ Zabbix⑦】グラフのHistoryとTrendが切り替わる条件https://devlog.arksystems.co.jp/wp-content/uploads/2018/11/woz7_ec.jpghttps://devlog.arksystems.co.jp/wp-content/uploads/2018/11/woz7_ec-150x150.jpgsachi-saitoまるごとおまかせZabbixプラットフォーム技術部製品紹介システム運用・保守保守,Zabbix,システム監視こんにちは、プラットフォーム技術部の齊藤(沙)です。 これまでZabbixに関していろいろ確認してきましたが、まだまだ知らないこと、わからないことが沢山あるなと感じる日々です。 もっとZabbixについて理解を深めたい!と思っていたところ、 「ソースを読むのです。そーすれば理解は深まります。」 という神(先輩)の声が聞こえたため、今回はZabbixのソースから仕様を調べることにチャレンジしてみたいと思います。 前回の記事はこちら。まとめ記事作りました♥調査対象 今回は以下の仕様について調査を行います。 WebUI上のグラフ描画にてHistoryとTrendの表示が切り替わる条件 オンラインマニュアルには以下の記載があります。 ※今回の調査はv3.0.20のソースにて実施します。longevity of item history. For example, item history can be kept for 14 days. In that case, any data older than the fourteen days will be coming from trends. data congestion in the graph. If the amount of seconds to display in a horizontal graph pixel exceeds 3600/16, trend data...ARK Solution Development Division Developers Blog.