[comment]: # ({19cf85e8-bfe1a94d})
# 1 集計計算

[comment]: # ({/19cf85e8-bfe1a94d})

[comment]: # ({b3f24d3f-f8e62abe})
#### 概要

集計計算は、Zabbix サーバーによって複数の項目から情報を収集し、使用する集計関数に応じて集計を計算できる [計算項目](/manual/config/items/itemtypes/calculated)タイプです。

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

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

[comment]: # ({/b3f24d3f-f8e62abe})

[comment]: # ({b0cecf7e-63d83a0c})
#### 文法

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

-   history of items:

```{=html}
<!-- -->
```
    aggregate_function(function(/host/item,parameter),function(/host2/item2,parameter),...)

-   a [foreach function](/manual/appendix/functions/aggregate/foreach)
    を唯一のパラメータとして:

```{=html}
<!-- -->
```
    aggregate_function(foreach_function(/*/key?[group="host group"],timeperiod))

where:

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

Foreach関数は、複数の項目の履歴を扱うために[item filter](/manual/appendix/functions/aggregate/foreach#item-filter)を使用し、各項目につき1つの値を配列で返します。

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

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

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

[comment]: # ({/b0cecf7e-63d83a0c})

[comment]: # ({3bbe172c-3bbe172c})
#### 使用例

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

[comment]: # ({/3bbe172c-3bbe172c})

[comment]: # ({874bcf94-874bcf94})
##### 例1

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

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

[comment]: # ({/874bcf94-874bcf94})

[comment]: # ({3182672a-3182672a})
##### 例2

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

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

[comment]: # ({/3182672a-3182672a})

[comment]: # ({cdf2da8b-cdf2da8b})
##### 例3

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

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

[comment]: # ({/cdf2da8b-cdf2da8b})

[comment]: # ({db9c8fce-db9c8fce})
##### 例4

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

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

[comment]: # ({/db9c8fce-db9c8fce})

[comment]: # ({0233edd3-0233edd3})
##### 例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")]))

[comment]: # ({/0233edd3-0233edd3})

[comment]: # ({30448f5d-30448f5d})
##### 例6

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

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

[comment]: # ({/30448f5d-30448f5d})

[comment]: # ({3e9404a6-3e9404a6})
##### 例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"]))

[comment]: # ({/3e9404a6-3e9404a6})

[comment]: # ({50b7adbb-f094da29})
##### 正しい/間違った構文の例

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

|式|例|
|-|---------|
|有効|`avg(last(/host/key1),last(/host/key2)*10,last(/host/key1)*100)`<br>`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)`<br>`sum(/host/key, avg(10,2))`<br>`sum(/host/key,last(/host/key2))`|

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

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

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

[comment]: # ({/50b7adbb-f094da29})
