Skip to content

Instantly share code, notes, and snippets.

@sonots

sonots/alerty.md Secret

Last active September 5, 2015 10:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sonots/e77f9e2e893c0807a9ae to your computer and use it in GitHub Desktop.
Save sonots/e77f9e2e893c0807a9ae to your computer and use it in GitHub Desktop.

ひと月ほど前に、必要にかられて cron が失敗した時に通知を飛ばすために使う alerty というツールを ruby で書いた。

弊社には同様の perl で書かれたツールがすでにあったが、Amazon SNS を使うという新しい要件もあったので、ruby でさくっと書き直した。プラグイン機構に対応していて、プラグインとして実装することで通知先を増やすことができるようになっている。 いまのところデバッグ用の stdout, file、任意のコマンドに結果を渡す exec、そして Amazon SNS、Ikachan 通知プラグインが実装されている。

設定方法

インストールは gem install alerty のようにする。必要なプラグインも gem install する。

設定は /etc/alert/alerty.yml のようなファイルを作って、

log_path: STDOUT
log_level: 'debug'
timeout: 10
lock_path: /tmp/lock
plugins:
  - type: stdout

あとは /etc/cron.d/xxxxx に

0 * * * * alerty -c /etc/alerty/alerty.yml -- /path/to/script --foo FOO --bar

のように cron の設定を書けばよい。/path/to/script の終了コードが 0 (正常終了) じゃない場合に、標準出力、標準エラー出力を alerty に渡して通知が飛ぶ.

おわりに

使いどころがありそうであれば使ってみてください。とりあえず slack プラグインはあったほうがよさそう。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment