ようへいの日々精進XP

よかろうもん

sensu で docker コンテナの数をチェックするプラグインを作ってみた

はじめに


参考


こんなの

スクリプト

目指したこと

  • Docker Remote API を使う
  • 起動中のコンテナの数をチェック
  • しきい値を超えたり、下回ったりしたら WarningCritical を上げる

動いてるところ

以下のように設定を書いて...

{
  "checks": {
    "docker_running_containes_check": {
      "handlers": ["default"],
      "command": "/etc/sensu/plugins/check-docker-containers.rb -w 3 -c 3",
      "interval": 60,
      "subscribers": [ "test" ]
    }
  }
}

暫くすると...

f:id:inokara:20140417062349p:plain

こんな感じ。

上記の例だとローカルホスト上にコンテナが 4 つ起動していたら CRITICAL となる(なっている)。


さいごに

調子こいて

sensu プラグイン

  • 標準出力に critical / warning / ok をそれぞれ出力すれば良さそう
  • あとは sensu がよしなにやってくれる

rubocop

  • コードをチェックしてくれる
  • 怒られてばかりだが書き方について勉強になる

なんかこんなのも作れそう

top

curl localhost:4243/containers/${container_ID}/top

みたいな感じで投げると以下のようにレスポンスが返ってくる。

{"Processes":[["root","1788","1225","0","06:47","pts/1","00:00:00","/bin/bash"]],"Titles":["UID","PID","PPID","C","STIME","TTY","TIME","CMD"]}

ちょっとドキュメントと出力が異なるのが気にはなるがコンテナ内のリソース見るのに使えそうな気がする。