zabbixでAWSのRDS等のmetricを取得したい

識者の皆様

何時も勉強をさせて頂いています
zabbixでAWSのcloudwatch経由でRDS、elasticache等のmetricを取得し監視をしたいと考えています
方法は複数あるかとは、思うのですが今回はtd-agent経由でcloudwatchのデータを取得し、zabbix-serverを送信して可視化をしたいと考えています

参考にしているのは下記のURLの内容になります
【参考URL】
http://qiita.com/toshihirock/items/84954d927bb0e1eae470

URL内にあるtd-agentを用いてRDSのmetricを取得するところまでは確認を出来ているのですが
td-agnetからzabbix-serverへのデータ送信が上手く行っておらず、可視化が出来ていません
※zabbix-serverでtcpdumpを用いてtd-agnetが動作しているhostからくるデータをdumpさせたのですが、データがdumpできませんでした

これは、td-agent自体の設定の問題だとは思うのですが、色々と試行錯誤をしてみたのですが
手詰まりの状況です

識者の皆様、ご教授よろしくお願いします

コメント表示オプション

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

td-agent 側で tcpdump すると、ちゃんと送信していますか?
それから、途中のファイアウォールで td-agent→zabbix-serverの10051番ポート の通信をフィルターしていませんか?

ユーザー TNK の写真

ログに何か出力されていないか確認してください。
恐らく、/var/log/td-agent/td-agent.log になると思います。

あと、転送先のZabbixの設定を再度確認してください。
例えば、以下の項目です。

 ・zabbix_serverの値が転送先ZabbixサーバーのIPになってるか
 ・portはZabbixサーバーのトラッパー用ポートになっているか
  (デフォルトは10051)
 ・hostで指定したホストをZabbixサーバー上で登録してあるか
 ・そのホストに受け取る値用のアイテムを作成してあるか

あと、質問される際には、td-agentやZabbixの詳細なバージョンも
合わせてご質問ください。

ユーザー TETSUYA Saito の写真

heya様、TNK様

ご指導、ありがとう御座います

td-agent側でtcpdumpでhostでzabbix-serverのipでフィルターをしたのですが
通信を確認することが出来ませんでした
そもそも、td-agent側でzabbix-serverにデータを送っていないことが、そもそもの原因だと小生も理解をしているのですが
何故、データが送信されないか現状では原因が把握出来ていない状況です

TNK様
情報不足で申し訳有りませんでした
利用をしている、td-agentはtd-agent-2.3.1でzabbixは2.4.7を利用しています

もしかすると、そもそも大きな勘違いをしているのかもしれないのですが
データを送るtd-agentがinstallされているinstanceには、zabbix-agentをinstallしておく必要があるのでしょうか
現状はzabbix-agentをinstallしていない状況でtestをしています

ご指導、よろしくお願い申し上げます

ユーザー TNK の写真

もしかすると、そもそも大きな勘違いをしているのかもしれないのですが
データを送るtd-agentがinstallされているinstanceには、zabbix-agentをinstallしておく必要があるのでしょうか
現状はzabbix-agentをinstallしていない状況でtestをしています

Zabbixエージェントは必要ありません。

fluent-plugin-zabbix自体が、Zabbixのプロトコルを利用して設定
ファイルに記述したZabbixサーバーに対してデータを送るようにな
っているようです。

ですので、td-agent.conf内に、Zabbixサーバーへ転送する設定と
してどのように設定し、それがご自身の環境と合致しているのかを
再度ご確認ください。
ご自身で確認できないのであれば、どのような設定を行ったのか、
転送先のZabbixサーバーの情報と合わせてご提供ください。
IPアドレスはマスキングして構いませんが、どの値とどの設定が対
応するのかを明確にして頂ければと思います。

あと、ログの内容は確認されたのですか?
設定に誤りがあって接続できないような場合は、ログにエラーメッ
セージが出力されたはずです。

ご確認をお願いします。

ユーザー TETSUYA Saito の写真

tnkさん

ご指導ありがとうございます
また、ご返信が遅くなりまして申し訳ありません

現状、td-agent経由でzabbixにデータを送る際に下記の設定をtd-agentに設定をしております
td-agnet.logにはエラーは出ておらず、またtd-agentを動作させているインスタンスからは
zabbix_serverに対して、10051のポートでの通信は確認されませんでした
※tcpdump port 10051で確認

現時点で小生は下記の設定を施しておりますが、td-agent自体の設定に誤りがあるのでしょうか
ご教授よろしくお願いします

【td-agentの設定】

type cloudwatch
tag cloudwatch
aws_key_id
aws_sec_key
cw_endpoint monitoring.ap-northeast-1.amazonaws.com

namespace AWS/RDS
metric_name CPUUtilization,FreeStorageSpace,DiskQueueDepth,FreeableMemory,SwapUsage,ReadIOPS,ReadLatency,ReadThroughput,WriteIOPS,WriteLatency,WriteThroughput
dimensions_name DBInstanceIdentifier
dimensions_value db-master

type copy

type zabbix
zabbix_server
port 10051
host
name_keys CPUUtilization,FreeStorageSpace,DiskQueueDepth,FreeableMemory,SwapUsage,ReadIOPS,ReadLatency,ReadThroughput,WriteIOPS,WriteLatency,WriteThroughput
add_key_prefix cloudwatch

ユーザー TETSUYA Saito の写真

識者の皆様

いつも勉強をさせていただいています

あれから試行錯誤の結果、td-agentからzabbix_serverへの10051の通信がtcpdumpで取れるようになりました
しかし、zabbix_serverでCPU利用率を可視化しようとしたのですが、データなしという状態になってしまいます

現状のzabbix_serverでの設定は添付の通りなのですが、何か間違っているところがありますでしょうか

ご教授よろしくお願いします

広瀬です

type zabbix
zabbix_server
port 10051
host
name_keys CPUUtilization,FreeStorageSpace,DiskQueueDepth,FreeableMemory,SwapUsage,ReadIOPS,ReadLatency,ReadThroughput,WriteIOPS,WriteLatency,WriteThroughput
add_key_prefix cloudwatch

上記、host部分の名称、コピペ上の欠損でしょうか?添付画像見るかぎり、ホスト名をRDSとされていますので、
host部分にもRDSが入らないと、どこのホストに届けるかという指定がなされていない様に見受けられます。

ご確認ください

ユーザー TETSUYA Saito の写真

広瀬さん

ご指導ありがとうございます

前回、記載をさせていただいたtd-agentのzabbix_serverでmetricを送るconfigですが、最終的に下記のような形にすることで
td-agentからzabbix_serverにパケットを送信することができました

【td-agent.conf】

type cloudwatch
tag cloudwatch
aws_key_id
aws_sec_key
cw_endpoint monitoring.ap-northeast-1.amazonaws.com

namespace AWS/RDS
metric_name CPUUtilization,FreeStorageSpace,DiskQueueDepth,FreeableMemory,SwapUsage,ReadIOPS,ReadLatency,ReadThroughput,WriteIOPS,WriteLatency,WriteThroughput
dimensions_name DBInstanceIdentifier
dimensions_value db-master

type copy

type zabbix
zabbix_server
port 10051
host
name_keys CPUUtilization,FreeStorageSpace,DiskQueueDepth,FreeableMemory,SwapUsage,ReadIOPS,ReadLatency,ReadThroughput,WriteIOPS,WriteLatency,WriteThroughput
add_key_prefix cloudwatch

広瀬さんから頂いている、ご指導の中で
>ホスト名をRDSとされていますので、
host部分にもRDSが入らないと、どこのホストに届けるかという指定がなされていない様に見受けられます

とご指導を頂いいているのですが、上記、configをどのように編集すれば適切なconfigになるかご教授いただけますと
大変助かります

よろしくお願い申し上げます

ユーザー TNK の写真

ご自身で投稿されたあとでどのように投稿されたか確認されました
か?

ここでは、特殊記号は利用できないようになっているので、記載頂
いた設定内容が表示されていません。

例えば、特殊記号を全角で記述するとかの工夫が必要です。

※特殊記号は全角で記述しています。
----- ここから -----
【td-agent.conf】
<source>
type cloudwatch
tag cloudwatch
aws_key_id <AWS_ID>
aws_sec_key <AWS_SEC_ID>
cw_endpoint monitoring.ap-northeast-1.amazonaws.com

namespace AWS/RDS
metric_name CPUUtilization,FreeStorageSpace,DiskQueueDepth,FreeableMemory,SwapUsage,ReadIOPS,ReadLatency,ReadThroughput,WriteIOPS,WriteLatency,WriteThroughput
dimensions_name DBInstanceIdentifier
dimensions_value db-master
</source>

<match cloudwatch>
type copy
<store>
type zabbix
zabbix_server <zabbix_serverのIPアドレス>
port 10051
host <zabbix_serverのIPアドレス>
name_keys CPUUtilization,FreeStorageSpace,DiskQueueDepth,FreeableMemory,SwapUsage,ReadIOPS,ReadLatency,ReadThroughput,WriteIOPS,WriteLatency,WriteThroughput
add_key_prefix cloudwatch
</store>
</match>
----- ここまで -----

広瀬がおっしゃられているのは、storeで設定しているhostがどの
ように設定されていかだと思います。

見ると「RDS」ではなく、「zabbix_serverのIPアドレス」で設定さ
れているようです。
値を集めるために作成したホストの名前が「RDS」とされているの
であれば、このhostの部分も「RDS」にする必要があると思います。

ご確認ください。

ユーザー TETSUYA Saito の写真

皆様

色々、ご指導を頂きまして誠にありがとうございました
頂いたご指導の内容を咀嚼して、RDSのデータをzabbixで可視化することができました

今回の小生の思い違いがstoreの中で指定するhostとzabbixで作成するhostが同一でないといけないと言う所の誤って認識をしていたところです

色々と親切なご指導を頂きありがとうございました
まずは取り急ぎ、お礼のご連絡まで