KEMBAR78
Sensu with golang | PDF
堀内 晨彦 (HORIUCHI Akihiko)
@hico_horiuchi
Sensu with Golang
2015.03.26(木) @Sensu Deep Talks #1
@hico_horiuchi
○  うどん大学 情報系 修士1年
○  Emacs / Rails / Hubot / Ansible
○  http://bit.ly/hiconyan
普段はロードバランス・オートスケールの研究
研究室のインフラと掃除を担当
Sensu歴は半年 (ヤフーインターン∼)
15/03/26 2
Sensu構成図 @ 研究室
15/03/26 3
sensu-server + kibana
Nginx + Dokuwiki
GitLab
Ruby on Rails
Ubuntu + KVM
・ 物理サーバ (14台)
・ 仮想サーバ (9台)
・ スイッチ (3台)
・ 構成管理は AnsibleHubot
(hico-horiuchi/huboco)
もくじ
15/03/26 4
ohgi
(扇: Sensu command-line tool by golang)
1.
sensu-plugins-go
(Sensu Plugins by Golang)
2.
agent462/sensu-cli
●  Ruby製 Sensuコマンドラインツール
15/03/26 5
情報量が多く見辛い
動作が重い
hico-horiuchi/ohgi
●  Go言語製 Sensuコマンドラインツール
○  Go言語の勉強も兼ねて
○  開発は正月∼,現在 v0.1.4
15/03/26 6
ロゴが
欲しい
できること
●  Sensu API を一通り叩ける
○  ただし aggregates 以外
○  コマンドは API の命名規則に準拠
●  リスペクト
○  色付け,シンプルな表形式の表示
15/03/26 7
$ ohgi events [client] [check]
Why Golang?
●  なぜGo言語で作ったか
○  コンパイルと実行が高速
○  ライブラリが豊富 (spf13/cobra最強)
○  バイナリ1つで (ノ ̄ー ̄)ノポイッ
15/03/26 8
\ナウでヤングな言語だから/
デモンストレーション
http://bit.ly/sensu-ohgi
15/03/26 9
もくじ
15/03/26 10
ohgi
(扇: Sensu command-line tool by golang)
1.
sensu-plugins-go
(Sensu Plugins by Golang)
2.
Sensuが重い
●  監視スクリプトのオーバーヘッド
○  community-plugins は 88% が Ruby
●  sensu-server (VM) はもっと重い
○  metrics の handler (クライアント数×項目数)
○  Elasticsearch + Kibana が同時稼動
15/03/26 11
hico-horiuchi/sensu-plugins-go
●  SensuのPluginをGoで書く
○  check:os.Exit() で終了ステータス変更
○  metrics:Scheme + Value + Unix
●  sensu/handler ライブラリ
○  渡された event を構造体に格納
○  simple-json で設定読込
15/03/26 12
実装状況
●  check
○  CPU,メモリ,ディスク,HTTP
●  metrics
○  CPU,メモリ,ディスク,通信量
●  handler
○  Hubot,Elasticsearch
15/03/26 13
くらべてみた
●  10回実行,time の user + system
圧倒的な速さ!
15/03/26 14
Ruby Golang
CPU 0.79 s 0.06 s
メモリ 0.15 s 0.07 s
ディスク 0.77 s 0.06 s
HTTP 1.51 s 0.41 s
15/03/26 15
これが
CPU,メモリ,ディスク
15/03/26 16
こうなる
CPU,メモリ,ディスク
15/03/26 17
まとめ
● ohgi:Go言語製 Sensu CLI
高速でシンプル,分かりやすい
● sensu-plugins-go
community-plugins より高速!
● Sensu + Golang
もっと速く!便利に!
15/03/26 18
これから
● ohgi:Go言語製 Sensu CLI
複数 Sensu 対応,v1.0.0へ!
● sensu-plugins-go
community-plugins からの移植
● Sensu を他の研究室にも広める
15/03/26 19
プルリクお待ちしてます!
hico-horiuchi/ohgi
hico-horiuchi/sensu-plugins-go

Sensu with golang