This is a translation of the original English documentation page. Help us make it better.

集計計算

概要

集計計算は、Zabbix サーバーによって複数の項目から情報を収集し、使用する集計関数に応じて集計を計算できる 計算項目タイプです。

集計計算項目では、符号なしの整数値と浮動小数点値 (情報の種類) のみがサポートされています。

集計計算では、監視対象のホストでエージェントを実行する必要はありません。

文法

集計は、どちらかの作業で取得することができます。:

  • history of items:
aggregate_function(function(/host/item,parameter),function(/host2/item2,parameter),...)
aggregate_function(foreach_function(/*/key?[group="host group"],timeperiod))

where:

  • aggregate_function` は、サポートされている aggregate functions: avg, max, min, sum, etc のいずれかである。
  • foreach_function` は、サポートされている foreach 関数 (avg_foreach, count_foreach など) のうちの 1 つです。

Foreach関数は、複数の項目の履歴を扱うためにitem filterを使用し、各項目につき1つの値を配列で返します。

集計結果がfloat値の場合、集計された情報の item タイプがNumeric(unsigned)であれば、整数に切り捨てられます。

以下の場合、集計計算がサポートされなくなる可能性があります:

  • 参照した項目が見つからない(item キーが正しくない、item が存在しない、含まれるグループがすべて正しくない場合に 発生する可能性があります)
  • 関数を計算するためのデータがない

使用例

集計のためのキーの例です。

例1

ホストグループ 'MySQL Servers' の総ディスク容量

sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"]))
例2

そのホストでnet.if.in[*]に一致するすべての item の最新値の合計

sum(last_foreach(/host/net.if.in[*]))
例3

ホストグループ ’MySQL Servers' の平均プロセッサ負荷

avg(last_foreach(/*/system.cpu.load[,avg1]?[group="MySQL Servers"]))
例4

ホストグループ ’MySQL Servers’ の1秒あたりのクエリ数の5分平均値

avg(avg_foreach(/*/mysql.qps?[group="MySQL Servers"],5m))
例5

特定のタグを持つ複数のホストグループに属する全ホストのCPU負荷の平均値

avg(last_foreach(/*/system.cpu.load?[(group="Servers A" or group="Servers B" or group="Servers C") and (tag="Service:" or tag="Importance:High")]))
例6

ホストグループ全体の最新の item 値合計で計算します

sum(last_foreach(/*/net.if.out[eth0,bytes]?[group="video"])) / sum(last_foreach(/*/nginx_stat.sh[active]?[group="video"])) 
例7

The total number of unsupported items in host group 'Zabbix servers'. ホストグループ 'Zabbix servers' のサポート対象外 item の総数です。

sum(last_foreach(/*/zabbix[host,,items_unsupported]?[group="Zabbix servers"]))
正しい/間違った構文の例

式 (関数呼び出しを含む) は、ヒストリー、トレンド、または foreach 関数 パラメーターとして使用できません。 ただし、これらの関数自体は、他の (非ヒストリ) 関数パラメーターで使用できます。

有効 avg(last(/host/key1),last(/host/key2)*10,last(/host/key1)*100)
max(avg(avg_foreach(/*/system.cpu.load?[group="Servers A"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers B"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers C"],5m)))
I無効 sum(/host/key,10+2)
sum(/host/key, avg(10,2))
sum(/host/key,last(/host/key2))

次のような表現に注意してください。

sum(sum_foreach(//resptime[*],5m))/sum(count_foreach(//resptime[*],5m))

式の両方の部分が常に同じ値のセットになるとは限りません。 式の一部が評価されている間に、要求された期間の新しい値が到着し、式の他の部分が異なる値のセットを持つことがあります。