Zabbix 2.2.1 で使用しているMySQLをチューニングしてみる

Zabbix 2.2.1 で使用しているMySQLのチューニングメモ

 

 

 

Zabbix 2.2.1 で MySQLから直接ITEM値等を取得してみる(TSV,CSV)

Zabbix 2.2.1で各アイテムの値をデータとして取得するときは、
「監視データ」->「最新データ」->「グラフ」or「ヒストリ」から「値」を選択すると
「プレーンテキスト」ボタンでTSV形式で取得できるようですが、なぜか1000個ぐらいまでしか
取得できませんでした。(1分ごとの取得するアイテムだと16.6時間分しか取得できない)

しょうがないので、mysqlのDBにから直接情報w取得出来ないかを調べてみました。

本来は、Zabbix API使うのが正当なんだろうけど、現状うまく使いこなせません。

 

まずはmysqlの使い方を確認

mysqlクライアントで実行(表形式で出力されます)

直接SQL分を指定して実行するには、以下のように指定します。

ファイルにtsv出力するには、単純に標準出力をリダイレクトすればよいようです。

ファイルにcsv出力するには、以下のようにtabを’,’に変換して出力します。

 

 

実際に、Zabbix 2.2.1のDBから情報を取得してみます。

  • ホスト一覧取得
  • ホストごとの監視項目一覧取得
  • 指定ホストのアイテム最新値一覧取得
  • アイテム値全取得

 

ホスト一覧を取得

 

 

ホストごとの監視項目一覧を表示

 

 

指定ホストのアイテム最新値一覧

 

 

アイテム値全取得(特定項目,全項目も表示できるが、非常に時間がかかります)

 

こんな感じにすれば、情報は取得できそうですが、
Zabbix のバージョンが上がった時に対応できなくなる可能性が高いのが残念。

あと、mysqlの設定が標準だと検索に時間がかかります。
実際にはチューニング必須なようです(チューニング方法はまた今度)

 

Linux用wmic の出力結果を Zabbix に取り込む方法を検討してみる

参考になりそうな情報をかき集めてみた。

Linux用wmicの出力結果は以下のようなもので、そのままでは取り込みずらい。

そこで、別の監視ツール用だけど、

「cactiEZでWindowsOSのWMI値を直接取得してグラフを作成する手順」
http://pnpk.net/cms/?p=3861

さんのページのwmi.phpを使うと、以下のフォーマットに変更できるとのこと。

このフォーマットだと、スクリプトで処理しやすい。

このような形式でのサンプルを探してみると、このような例が見つかった。
/proc/meminfoの実行例がこんなフォーマットなので、ほとんど同じですね。

あとは、

/proc/meminfoの情報をzabbixで収集してみるqiita.com/mutz0623/items/2a8186de010c494cbfe0

さんのスクリプトを参考に
「:」文字の前部分をZabbix_senderのキー、後部分を値として取り込めば、
行けるんじゃないかと妄想中。