社内LT大会ネタで作ったやつ(第1弾)
モチベーション
- 社内外で公開してる個人アプリをURL監視したかった
- Mackerelだと社内ツール*3 が監視できない
無いなら作ろう
使い方
雑にyamlを書いて
# zatsu_monitor.yml google: type: slack check_url: "https://www.google.com/" api_token: "AAAAAAAA" channel: "#general" user_name: "zatsu_monitor" github: type: chatwork check_url: "https://github.com/" api_token: "AAAAAAAA" room_id: "111111"
雑に実行
/path/to/zatsu_monitor -config /path/to/zatsu_monitor.yml -data /path/to/data_dir
-config
: 設定ファイルの場所-data
: 直前のhttpステータスを保存するキャッシュディレクトリ
ステータスが変わった時だけ投稿
- ホストが解決できなかった時とかは便宜上ステータス0です
仕様
- golang製なのでバイナリをダウンロードして雑に置けばどこでも動く
- https://github.com/sue445/zatsu_monitor/releases
- 余計なミドル不要
- crontabやJenkinsで定期実行する想定
- urlをHTTP GETしてステータスコードが変わった時だけチャットに通知(例:200 -> 500)
- SlackとChatWorkに対応
yamlなので値を継承できるのが嬉しい
トークンなどを1ヶ所に定義して、監視したいサイトで継承することができます
slack: &common type: slack channel: "#general" api_token: "xoxp-0000000000-0000000000-0000000000-000000" github: # inherit common values <<: *common # override common values check_url: "https://github.com/" chennel: "#github" google: <<: *common check_url: "https://www.google.com/" chennel: "#google"