LoginSignup
6
6

More than 5 years have passed since last update.

Go言語でSensuのStatusPage「chikurin」を作った

Last updated at Posted at 2015-05-24

Sensuホストの状態をStatusPage形式で表示するWebアプリをGo言語で作ってみました.

名前の由来

前回のSensu CLIではohgi(扇)でした.
今回もsensu(扇子)に関係する単語ということで,chikurin(竹林)にしました.

Uchiwaとの比較

Sensu標準のダッシュボードであるUchiwaは,管理者向けではないかと思います.
(EventやClientの削除ができる,ClientやCheckの詳細情報を閲覧できる,など.)

そこで,一般ユーザ向けにStatusPage.ioのように表示できないかと考えました.
現在発生中のEventに限り,「いつから」と「監視結果」を見られるようにします.
各自に関係するサーバのページだけ教えておき,何かあったら見て貰うようにします.

status.png

Clientなどの一覧表示

Sensu配下にあるClientの一覧表示と,絞り込みも実装しました.
また,複数のSensu API(Datacenter)にも対応しているので,その一覧表示も可能です.

この機能は設定(~/.chikurin.json)で有効・無効を切り替えられます.
(show_datacentersshow_clients.)
無効にすることで,関係しない・隠したい情報へのアクセスを制限できます.

clients.png

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.

使ったライブラリ

mattn/gom

  • Rubyのbundlerライクにライブラリを_venderにインストールする.
  • ライブラリをGomfileに列挙,グルーピングも可能.

zenazn/goji

  • シンプルなWebアプリケーションフレームワーク.
  • net/httpと両立可能,Middlewareを簡単に実装できる(らしい).

yosssi/ace

  • SlimライクなHTMLテンプレートエンジン, templateを生成.
  • 後述のgo-bindata対応なのが嬉しい.

VividCortex/godaemon

  • プログラムを簡単にデーモン化できるが,機能は最小限.

jteeuwen/go-bindata

  • Assets(CSS, JS)やTemplateをバイナリに同梱する.
  • Webアプリでもバイナリだけでデプロイ可能になる.

参考文献

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6