7
5

More than 5 years have passed since last update.

Prometheusのすすめ - Service Discovery -

Last updated at Posted at 2018-06-27

Prometheusのすすめ - 初期導入 -の続きです。

本記事では、Prometheusを知らない人が試しながら調べながらエラー対応も含め記載していってます。
ので情報として煩雑な感じになっているのでご了承ください。


さて、PrometheusのService Discoveryを使えば、とりあえず知っているAWSアカウント内のサーバは認識できるらしいので、試していくよ。
増えたら通知とか出来るかな。

と、その前にPrometheusはバイナリで導入しているので、自動起動の設定をしよう。

自動起動設定

# killall prometheus
# mv ./prometheus-2.3.1 /usr/local/
# ln -s /usr/local/prometheus-2.3.1/prometheus /usr/bin/
# vi /lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus service
After=syslog.service prometheus.service

[Service]
Type=simple
ExecStart=/usr/bin/prometheus --config.file=/usr/local/prometheus-2.3.1/prometheus.yml
PrivateTmp=true

[Install]
WantedBy=multi-user.target

# systemctl enable prometheus
# systemctl start prometheus

Service Discovery

参考は前記事でも書いた次世代監視の大本命! Prometheus を実運用してみたから。

# vi /usr/local/prometheus-2.3.1/prometheus.yml
scrape_configs:
  - job_name: 'TEST_PROJECT'

    # EC2 Service Discovery Config
    ec2_sd_configs:

      - region: ap-northeast-1
        access_key: XXXXXXXXXXXXXXXXXXX
        secret_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
        port: 9100  # 監視対象ポート
# systemctl restart prometheus.service

よし、ブラウザで見てみよー。

prometheus03.PNG

ちゃんとリージョンに存在しているインスタンス数分、追加されてる。
UNKNOWNになってるのはまだPrometheusからpullしてない状態で、DOWNがpullしたけどダメだったやつっぽい。
まだexporterを入れてないから当然だね。(再読み込みしたら全部DOWNになってた)

でもこれって内部のIPで登録されてるからexporter入れても、内部で繋がってないPrometheusからは無理?

と思ったら、以下にやり方が書いてあった。
1万台のサーバを監視できると話題のPrometheusをGrafanaと組み合わせて導入した話~vol2~
うーん。。。ここらへんのリファレンス的なのが日本語で欲しいなあ。。。

とりあえず、そのまま真似よう。

      - region: ap-northeast-1
        access_key: XXXXXXXXXXXXXXXXXXX
        secret_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
        port: 9100  # 監視対象ポート
    relabel_configs:
      - source_labels: [__meta_ec2_public_ip]
        regex:  '(.*)'
        target_label: __address__
        replacement: '${1}:9100'
      - source_labels: [__meta_ec2_tag_Name]
        target_label: instance

結果

prometheus04.PNG

Labelsにインスタンス名と、EndPointがパブリックIPになった。
パブリックIPが無しになってるインスタンスは停止しているやつか、本当に無いサーバ。

今の会社だと大体プロジェクト毎にクラウドのアカウントが分かれてるので、それ毎に設定してあげれば、大体全容を掴めそうだ。

あとは監視のアラートと通知とかもやらないとね。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5