Contenu connexe
Similaire à Filter・Mutator・Aggregateの使いドコロ (20)
Plus de Akihiko Horiuchi (14)
Filter・Mutator・Aggregateの使いドコロ
- 3. Sensu Deep Talks #1
15/10/02 3
Sensu with Golang
http://www.slideshare.net/hico_horiuchi/sensu-with-golang
- 4. JANOG LT night #1
15/10/02 4
Sensuでネットワーク監視やってみた
http://www.slideshare.net/hico_horiuchi/sensu-50675554
- 7. Filter とは?
● Filter とは?
○ Handler で処理する Event をフィルタリング
○ 環境の分別・通知の削減などが目的
● Filter の設定方法
○ /etc/sensu/conf.d/filter.json などを用意
○ "attributes" でフィルタリングする項目を定義
(Event 内の Client や Check も指定可能)
○ "negate" で不一致のフィルタリングも可能
○ Handler に複数設定可能 ("filter" , "filters")
15/10/02 7
https://sensuapp.org/docs/latest/filters
- 8. Filter の使用例
● 環境の分別 (本番環境のみハンドリング)
● 通知の削減 (60回毎にハンドリング)
15/10/02 8
"filters": {
"production": {
"attributes": {
"client": {
"environment": "production"
"filters": {
"recurrences": {
"attributes": {
"occurrences": "eval: value == 1 || value % 60 == 0"
eval: で Ruby の式を評価可能
- 10. Mutator とは?
● Mutator とは?
○ Handler で処理する Event を編集
○ ロジックの共有・ハンドリングの簡素化などが目的
● Mutator の設定方法
○ /etc/sensu/conf.d/mutator.json などを用意
○ "command" で実行する Mutator を指定
(コマンドは Sensu Server 上で実行)
○ 標準入出力で JSON をやり取り
○ Handler に1つだけ設定可能 ("mutator")
15/10/02 10
https://sensuapp.org/docs/latest/mutators
- 11. Mutator の使用例
● 情報の付加 (Sensu Server のホスト名)
● 他にも Community Plugins では…
○ Graphite 用に "output" を整形して出力 (graphite.rb)
○ 営業時間中かどうかを付加 (officehours.rb)
15/10/02 11
# datacenter.rb
require 'rubygems' if RUBY_VERSION < '1.9.0'
require 'json'
event = JSON.parse(STDIN.read, symbolize_names: true)
event.merge!(datacenter: `hostname`.strip)
puts JSON.dump(event)
- 13. Aggregate とは?
● Aggregate とは?
○ Check の実行毎に各 Client のステータスを集計
(ok , warning , critical , unknown の台数)
○ Sensu API で提供 (/aggregates)
● Aggregate の設定方法
○ 各 Check の設定に aggregate: true を追加
(standalone: true の場合には無効)
○ 集計結果は Uchiwa で閲覧可能
15/10/02 13
https://sensuapp.org/docs/latest/api-aggregates
- 15. Aggregate の使用例
● Check
○ check-aggregate.rb (Community Plugins)
○ warning や critical が一定割合を超えたら通知
● Metrics
○ aggregate-metrics.rb (Community Plugins)
○ 各ステータスのメトリクスを出力
15/10/02 15
sensu.aggregates.check-cpu.ok 125 1380251999
sensu.aggregates.check-cpu.warning 0 1380251999
sensu.aggregates.check-cpu.critical 0 1380251999
sensu.aggregates.check-cpu.unknown 0 1380251999
sensu.aggregates.check-cpu.total 125 1380251999
- 17. Sensu with Golang
● hico-horiuchi/ohgi
○ 扇: Sensu command-line tool by Golang
○ 高速な動作,シンプルな表示
● hico-horiuchi/sensu-plugins-go
○ Sensu plugins & libraries by Golang
○ Check , Metrics , Handler のGo言語実装
15/10/02 17