Sensuホストの状態をStatusPage形式で表示するWebアプリをGo言語で作ってみました.
名前の由来
前回のSensu CLIではohgi
(扇)でした.
今回もsensu
(扇子)に関係する単語ということで,chikurin
(竹林)にしました.
Uchiwaとの比較
Sensu標準のダッシュボードであるUchiwaは,管理者向けではないかと思います.
(EventやClientの削除ができる,ClientやCheckの詳細情報を閲覧できる,など.)
そこで,一般ユーザ向けにStatusPage.ioのように表示できないかと考えました.
現在発生中のEventに限り,「いつから」と「監視結果」を見られるようにします.
各自に関係するサーバのページだけ教えておき,何かあったら見て貰うようにします.
Clientなどの一覧表示
Sensu配下にあるClientの一覧表示と,絞り込みも実装しました.
また,複数のSensu API(Datacenter)にも対応しているので,その一覧表示も可能です.
この機能は設定(~/.chikurin.json
)で有効・無効を切り替えられます.
(show_datacenters
とshow_clients
.)
無効にすることで,関係しない・隠したい情報へのアクセスを制限できます.
chikurinの使い方
Releasesから最新版をダウンロードし,READMEを参考に設定を書いてください.
chikurin
を実行すると,デフォルトで8000番ポートで起動します.
/
がDatacenter一覧,/:datacenter
がクライアント一覧,/:datacenter/:client
がStatusPageです.
また,chikurin {start|stop|status}
でデーモンとしても使用可能です.
設定のlog
でログファイルを指定すると,goji
のログを吐き出します.
Sensu status page by golang
https://github.com/hico-horiuchi/chikurin
Usage:
chikurin [flags]
chikurin [command]
Available Commands:
start Start chikurin daemon
stop Stop chikurin daemon
status Show status of chikurin daemon
version Print and check version of chikurin
help Help about any command
Flags:
-h, --help=false: help for chikurin
Use "chikurin help [command]" for more information about a command.
使ったライブラリ
- Rubyのbundlerライクにライブラリを
_vender
にインストールする. - ライブラリを
Gomfile
に列挙,グルーピングも可能.
- シンプルなWebアプリケーションフレームワーク.
-
net/http
と両立可能,Middleware
を簡単に実装できる(らしい).
- SlimライクなHTMLテンプレートエンジン,
template
を生成. - 後述のgo-bindata対応なのが嬉しい.
- プログラムを簡単にデーモン化できるが,機能は最小限.
- Assets(CSS, JS)やTemplateをバイナリに同梱する.
- Webアプリでもバイナリだけでデプロイ可能になる.