Yagura を作ってる

いろいろな思惑があって、最近はYaguraというPythonパッケージ(厳密にはまだDjangoプロジェクト)を作ってる。 この時点でのバージョンは、 0.4.1

何をするものか

概要的に書くと、「登録されているモニタリング対象に対してHTTPリクエストを行い、状態を監視する」アプリ。

要するに、Mackerelの外形監視サービスやZabbixのWebモニタリング何かを、シンプルにしたもの。

動機

まず、単体サーバーを使ったほうがいいときには、主にIDCFクラウドを使っている。 このサーバーのリソースモニタリングが必要なときにはIDCFプランがあるMackerelを利用している。

ただ、Mackerelの無料系プランだとURL外形監視が存在しないため、「サーバーが生きているがサービスが死んでいるケース」を拾えないのがちょっと不便だった。 そこで、ないなら他の動機込みで作ってみたのが今回のYagura。

中身とか

中身的には、 Django で監視対象をマネジメントしながら、 urllib.request を用いて定期的にステータスを確認するようなイメージ。 ステータスに変化があった場合は、指定された通知先に対して通知を行うのみ。(現在はメールだけ)

Mackerelの外形監視だと、HTTPSのサーバ証明書の有効期限を通知したりもしてくれるけれど、 現時点でのYaguraはあくまでHTTPリクエストに対するチェックのみをシンプルに行うように意識してる。

Pythonパッケージとして

自分の中での参照モデルはMezzanieで、これのような「Djangoアプリケーション群+インストールコマンド」となるようにパッケージングしてる。 今のはまだコマンド部分は未実装。

GitLabでコードを管理しつつ、GitLab-CI/CDを活用して、 master へプッシュされるたびにTestPyPIにアップロードして、タグプッシュされるたびにPyPIにアップロードするようになってる。 今のところはうまく回ってる気がする。

まとめ

  • エンジニア力トレーニング

  • ポートフォリオ

  • 自分サービスの監視運用

あたりを実現する方法として、Yaguraという名前でのんびり作ってる。 コードを書くことが割と趣味じみてるので、ストレス解消に非常に役立ってくれてる。(たまにストレス源になっちゃうけども

参照先など