構成

極シンプルな構成。冗長性なし。
・1リージョン
・1AZ
・1パブリックサブネット
・1プライベートサブネット
・3SG
・prometheus server * 1
・node_exporter * 3

prometheus serverから3つのnode_exporterを監視する。
exporter側では、node_exporterのバイナリを単純に実行しているだけ。(オプションや別途config作成等もなし)

prometheus
※NATインスタンスじゃなくてNATGW使うことが推奨されているのは知っていますが、作ってみたかったから作った。

config

prometheusのWebからconfiguretaionを確認した。
コンフィグに明示的に設定していない値はデフォルトの値で補完されるんですね。
separator, regex, replacement, actionとか。
relabelした値を確認したかったので設定がやたら長いが、ec2_sd_configs自体はregionと2つのkeyだけでいいはず。

targets

sd_configの結果がtargetsがちゃんととれている
2017-10-30_16h28_34

relabel

relabelするまえのmetaラベルとその値のメモ

__meta_ec2_availability_zone

az=”ap-northeaset-1a”

__meta_ec2_instance_id

id=”i-xxxxxxxxxx”

__meta_ec2_instance_state

state=”running”

__meta_ec2_instance_type

type=”t2.micro”

__meta_ec2_subnet_id

subnet=”,subnet-xxxxxxxxx,”

__meta_ec2_tag_role

インスタンス作成時にAWS上で付けた”role”タグの値をrelabelしている
role=”nat” とか

__meta_ec2_vpc_id

vpc=”vpc-xxxxxxxxx”