多数のヒストリの一括出力について

いつもお世話になっております。
ヒストリのデータを最大3か月取得してきたいと考えております。
監視間隔は1分設定なので値の個数としては1日1440個保持しており、
単純計算で1日1440個*3か月(90日)で129600個となります。
この量となるとWebフロントからの抜き出しは厳しいため、
取得手段を探しておりますが良い方法はございますでしょうか。

過去にSQLを利用して取得しているような記事を見たと思ったのですが、
掘り当てることが出来ませんでした。。。

ZabbixVer:3.010
OS :CentOS7.1

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー fripper の写真

3.0.x 系とのことで、DB直接、もしくは、API経由のいずれかが良いかと思います

■DBから直接
ヒストリ系データは、データの型によって数種類のテーブルのいずれかに格納されています

浮動小数→history
整数  →history_uint
文字列 →history_str
ログ  →history_log
テキスト→history_text

単純なSQLでのオペレーションなら、WebUI からアイテムIDを特定したうえで、
時刻情報 (unixtime) にて範囲を AAAAAA-BBBBBB へ特定して、
sql> select * from history as h where h.itemid=xxxxx and h.clock between AAAAAA and BBBBBB order by clock asc
といった具合でしょうか

mysql / mariadb 系ならば、以下のように into outfile 構文で、カンマ区切り csv 等に吐かせることもできるかと。
sql> select * from history as h where h.itemid=xxxxx and h.clock between AAAAAA and BBBBBB order by clock asc
INTO OUTFILE "/tmp/history_out.csv" FIELDS TERMINATED BY ',';

■API
APIの場合は、ログイン後に history.get APIを用いて
特定のアイテムID・特定の時刻範囲等を指定すれば、JSONデータとして
リストが得られるかと思います
 https://www.zabbix.com/documentation/3.0/manual/api/reference/history/get
APIの場合は、shell上でjq等のコマンドを利用するか、php/ruby等の言語を用いるか‥で
アプローチが様々なので、詳細までは例示しきれませんが‥汗

ユーザー kaeru の写真

>>fripper様
ご回答ありがとうございました。
頂いた内容で実施出来ました!

また本筋とは逸れてしまいますがWebUIからのアイテムID特定は可能でしょうか。
WebUI上を確認しましたが、それらしい項目が見つけらなかったため、
hostsテーブルから対象hostsidを特定し、hostsIDを使用して
itemsテーブルよりitemuidを引いております。

ユーザー fripper の写真

数が少ないのであれば、WebUIで「監視データ」→「概要」ページにて
対象ホストの収集結果データ一覧が表示された状態から
アイテム値の部分をクリックし、ポップアップから「最新の値」を選択すれば
  http://xxxx/zabbix/history.php?itemids%5B%5D=23298&action=showvalues&period=3600&sid=5fedb240e1905931
といったURLのページへ遷移するので、
「...(略)...itemids%5B%5D=  23298  &action=...(略)...」
の部分が itemid として特定できるかと思います

ユーザー kaeru の写真

>>fripper様
URLの方でしたか…失念しておりました。
確認が出来ました。
ご回答、誠ありがとうございました。