確認環境
Zabbix
Zabbix Server 5.0.17
[root@zbx-svr-5 ~]# zabbix_server -V zabbix_server (Zabbix) 5.0.17 Revision 0a4ac3dabc 18 October 2021, compilation time: Oct 18 2021 13:38:05 Copyright (C) 2021 Zabbix SIA License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it according to the license. There is NO WARRANTY, to the extent permitted by law. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/). Compiled with OpenSSL 1.0.1e-fips 11 Feb 2013 Running with OpenSSL 1.0.1e-fips 11 Feb 2013 [root@zbx-svr-5 ~]#
DB
MariaDB 10.1.48
[root@zbx-svr-5 ~]# mysql -V mysql Ver 15.1 Distrib 10.1.48-MariaDB, for Linux (x86_64) using readline 5.1 [root@zbx-svr-5 ~]#
テーブルごとのカラム確認
history
MariaDB [zabbix]> show columns from history; +--------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------------------+------+-----+---------+-------+ | itemid | bigint(20) unsigned | NO | MUL | NULL | | | clock | int(11) | NO | | 0 | | | value | double | NO | | 0 | | | ns | int(11) | NO | | 0 | | +--------+---------------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) MariaDB [zabbix]>
他のテーブルに history_uint とか history_str とかあるので、history が浮動小数の値を扱っているのは個人的に以外だった。
Zabbix を実装したとき、はじめに扱ったデータが浮動小数のデータだったのかも。(個人の意見です。)
history_uint
- カラムに設定されている value のデータ型: bigint(20) unsigned (符号なし整数 → 整数だけで 8 バイト(=64ビット)使用可能)
- このテーブルの保存される Zabbix のアイテムのデータ型:数値(整数)
MariaDB [zabbix]> show columns from history_uint; +--------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------------------+------+-----+---------+-------+ | itemid | bigint(20) unsigned | NO | MUL | NULL | | | clock | int(11) | NO | | 0 | | | value | bigint(20) unsigned | NO | | 0 | | | ns | int(11) | NO | | 0 | | +--------+---------------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) MariaDB [zabbix]>
符号なしなので 0 ~ 18446744073709551615 まで使える。大きい。
history_str
- カラムに設定されている value のデータ型: varchar(255) (最大 255 バイトを格納できる可変長文字列)
- このテーブルの保存される Zabbix のアイテムのデータ型:文字列
MariaDB [zabbix]> show columns from history_str; +--------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------------------+------+-----+---------+-------+ | itemid | bigint(20) unsigned | NO | MUL | NULL | | | clock | int(11) | NO | | 0 | | | value | varchar(255) | NO | | | | | ns | int(11) | NO | | 0 | | +--------+---------------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) MariaDB [zabbix]>
余談ですが、varchar(255)
と varchar(256)
のどちらにするかで論争があるとかないとか。
history_text
- カラムに設定されている value のデータ型: text (16ビット → 65535文字)
- このテーブルの保存される Zabbix のアイテムのデータ型:テキスト
MariaDB [zabbix]> show columns from history_text; +--------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------------------+------+-----+---------+-------+ | itemid | bigint(20) unsigned | NO | MUL | NULL | | | clock | int(11) | NO | | 0 | | | value | text | NO | | NULL | | | ns | int(11) | NO | | 0 | | +--------+---------------------+------+-----+---------+-------+ 4 rows in set (0.01 sec) MariaDB [zabbix]>
文字列よりも大きい文字を扱う際に使用。
テーブルの内容を確認したところ、私の環境では Template Module Linux generic by Zabbix agent
の Software installed
というアイテムのデータだけが書き込まれていた。
history_log
- カラムに設定されている value のデータ型: text (16ビット → 65535文字)
- このテーブルの保存される Zabbix のアイテムのデータ型:ログ
MariaDB [zabbix]> show columns from history_log; +------------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------------+------+-----+---------+-------+ | itemid | bigint(20) unsigned | NO | MUL | NULL | | | clock | int(11) | NO | | 0 | | | timestamp | int(11) | NO | | 0 | | | source | varchar(64) | NO | | | | | severity | int(11) | NO | | 0 | | | value | text | NO | | NULL | | | logeventid | int(11) | NO | | 0 | | | ns | int(11) | NO | | 0 | | +------------+---------------------+------+-----+---------+-------+ 8 rows in set (0.00 sec) MariaDB [zabbix]>
value は text だが、timestamp や source、severity などログの保存に必要な情報を同時に記録できるようになっている。
ログはどれだけの文字数書かれているかわからないから、text 型になっているのかな。
trends
MariaDB [zabbix]> show columns from trends; +-----------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+---------------------+------+-----+---------+-------+ | itemid | bigint(20) unsigned | NO | PRI | NULL | | | clock | int(11) | NO | PRI | 0 | | | num | int(11) | NO | | 0 | | | value_min | double | NO | | 0 | | | value_avg | double | NO | | 0 | | | value_max | double | NO | | 0 | | +-----------+---------------------+------+-----+---------+-------+ 6 rows in set (0.00 sec) MariaDB [zabbix]>
history テーブルに記録されたデータのトレンド用テーブル。
最大値、最小値、平均値にまとめる。
以下、Zabbix の公式より。
ヒストリが各収集値を保存するのに対して、トレンドでは1時間に1回、平均化された情報を保つため、リソースを節約することができます。
収集したデータを1時間分の最大値、最小値、平均値としてトレンド用のテーブルに記録し、ヒストリのテーブルからはデータを削除する、と理解。
trends_uint
- カラムに設定されている value のデータ型: bigint(20) unsigned (符号なし整数 → 整数だけで 8 バイト(=64ビット)使用可能)
- このテーブルの保存される Zabbix のアイテムのデータ型:数値(整数)
MariaDB [zabbix]> show columns from trends_uint; +-----------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+---------------------+------+-----+---------+-------+ | itemid | bigint(20) unsigned | NO | PRI | NULL | | | clock | int(11) | NO | PRI | 0 | | | num | int(11) | NO | | 0 | | | value_min | bigint(20) unsigned | NO | | 0 | | | value_avg | bigint(20) unsigned | NO | | 0 | | | value_max | bigint(20) unsigned | NO | | 0 | | +-----------+---------------------+------+-----+---------+-------+ 6 rows in set (0.00 sec) MariaDB [zabbix]>
history_int テーブルに記録されたデータのトレンド用テーブル。
最大値、最小値、平均値にまとめる。
Zabbix のデータのまとめ方は trends テーブルに記載した内容と同じと理解。