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 - 投稿数: 319
td-agent 側で tcpdump すると、ちゃんと送信していますか?
それから、途中のファイアウォールで td-agent→zabbix-serverの10051番ポート の通信をフィルターしていませんか?
TNK - 投稿数: 4729
ログに何か出力されていないか確認してください。
恐らく、/var/log/td-agent/td-agent.log になると思います。
あと、転送先のZabbixの設定を再度確認してください。
例えば、以下の項目です。
・zabbix_serverの値が転送先ZabbixサーバーのIPになってるか
・portはZabbixサーバーのトラッパー用ポートになっているか
(デフォルトは10051)
・hostで指定したホストをZabbixサーバー上で登録してあるか
・そのホストに受け取る値用のアイテムを作成してあるか
あと、質問される際には、td-agentやZabbixの詳細なバージョンも
合わせてご質問ください。
TETSUYA Saito - 投稿数: 42
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 - 投稿数: 4729
Zabbixエージェントは必要ありません。
fluent-plugin-zabbix自体が、Zabbixのプロトコルを利用して設定
ファイルに記述したZabbixサーバーに対してデータを送るようにな
っているようです。
ですので、td-agent.conf内に、Zabbixサーバーへ転送する設定と
してどのように設定し、それがご自身の環境と合致しているのかを
再度ご確認ください。
ご自身で確認できないのであれば、どのような設定を行ったのか、
転送先のZabbixサーバーの情報と合わせてご提供ください。
IPアドレスはマスキングして構いませんが、どの値とどの設定が対
応するのかを明確にして頂ければと思います。
あと、ログの内容は確認されたのですか?
設定に誤りがあって接続できないような場合は、ログにエラーメッ
セージが出力されたはずです。
ご確認をお願いします。
TETSUYA Saito - 投稿数: 42
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 - 投稿数: 42
識者の皆様
いつも勉強をさせていただいています
あれから試行錯誤の結果、td-agentからzabbix_serverへの10051の通信がtcpdumpで取れるようになりました
しかし、zabbix_serverでCPU利用率を可視化しようとしたのですが、データなしという状態になってしまいます
現状のzabbix_serverでの設定は添付の通りなのですが、何か間違っているところがありますでしょうか
ご教授よろしくお願いします
wakaba - 投稿数: 228
広瀬です
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 - 投稿数: 42
広瀬さん
ご指導ありがとうございます
前回、記載をさせていただいた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 - 投稿数: 4729
ご自身で投稿されたあとでどのように投稿されたか確認されました
か?
ここでは、特殊記号は利用できないようになっているので、記載頂
いた設定内容が表示されていません。
例えば、特殊記号を全角で記述するとかの工夫が必要です。
※特殊記号は全角で記述しています。
----- ここから -----
【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 - 投稿数: 42
皆様
色々、ご指導を頂きまして誠にありがとうございました
頂いたご指導の内容を咀嚼して、RDSのデータをzabbixで可視化することができました
今回の小生の思い違いがstoreの中で指定するhostとzabbixで作成するhostが同一でないといけないと言う所の誤って認識をしていたところです
色々と親切なご指導を頂きありがとうございました
まずは取り急ぎ、お礼のご連絡まで