Upgrade to Pro — share decks privately, control downloads, hide ads and more …

監視ツール Prometheus 概観 / Prometheus Overview

tSU_RooT
February 10, 2017

監視ツール Prometheus 概観 / Prometheus Overview

監視ツールPrometeus (https://prometheus.io/ ) について調べた概観です。

tSU_RooT

February 10, 2017
Tweet

More Decks by tSU_RooT

Other Decks in Technology

Transcript

  1. 2 Prometheus とは • SoundCloud で開発された PULL 型監視システム • 元

    Googler が社内で使われていた Borgmon にイン スパイアされて作った • Go 製ツール、シングルバイナリで動作 • 現在 Cloud Native Computing Foundation 傘 下のプロジェクト
  2. 4 監視の仕組み Prometheus Server Exporter(MySQL) Exporter(memcached) Exporter(Node) Exporter(Other) PULL By

    HTTP Alert manager PUSH ALERTS Admin ! PUSH Notification PUSH Notification SEE GRAPHS
  3. 5 監視対象の設定 • PULL 型監視なので監視対象は逐一設定ファイルに書く 必要がある – targets: ['AAA.BBB.C.D :

    9100'] 監視対象によっては、ここを省略可能 Service Discovery • EC2 や GCE,Azure などの監視対象の自動検知機能 – ec2_sd_configs: - region: <region> access_key: <access-key> secret_key: <secret-key> port: 9100
  4. 6 Node Exporter Node Exporter Virtual File /proc/loadavg 0.26 0.60

    0.68 1/457 31315 Linux Kernel Machine Prometheus Server PULL ACCESS & PARSE PROVIDE
  5. 7 アラートルール • アラートに名前、条件、ラベルなどを設定 • IF [PARAMETER] == [CONDITION] –

    IF up == 0 – IF node_memory_Active >= 8E+9 • FOR [TIME] – FOR 30s • LABELS = {[NAME]=[VALUE]} – LABELS { severity = "serious" }
  6. 8 Alert manager の仕様 • アラート群をまとめてくれる – group_wait, group_interval, repeat_interval

    といった パラメーターを設定、複数のアラートをまとめたり送信間隔が 調整されたりする。 • ルーティング – ラベルによって、通常のアラートは A グループ、緊急のアラート は B グループで配信というケース分けができる。 • Slack, HipChat への通知可
  7. 11 Alert Rule( 死活管理 ) ALERT InstanceDown IF up ==

    0 FOR 1m LABELS { severity = "page" } ANNOTATIONS { summary = "Instance {{ $labels.instance }} down", description = "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than a minute.", } [test_instance_down.rule]
  8. 13 Alert Rule(Memory Alert Example) ALERT MemortAlert IF node_memory_Active /

    node_memory_MemTotal > 0.55 FOR 30s LABELS { severity = "normal" } ANNOTATIONS { summary = "Instance {{ $labels.instance }}'s active memory is Too Big", description = "Instance {{ $labels.instance }} uses active memory over 55% of total memory", } [test_mem_alert.rule]