Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Filter・Mutator・Aggregateの使いドコロ

858 views

Published on

Sensu Deep Talks #2
http://sensu-talks.connpass.com/event/19515/

Published in: Technology
  • Be the first to comment

Filter・Mutator・Aggregateの使いドコロ

  1. 1. 堀内 晨彦 @hico_horiuchi Filter・Mutator・Aggregate の使いドコロ
  2. 2. 自己紹介 Akihiko Horiuchi 香川大学 修士2年 bit.ly/hiconyan 研究室のインフラと掃除担当 Emacs / Ruby / Rails / Golang Hubot / Sensu / Ansible 15/10/02 2
  3. 3. Sensu Deep Talks #1 15/10/02 3 Sensu with Golang http://www.slideshare.net/hico_horiuchi/sensu-with-golang
  4. 4. JANOG LT night #1 15/10/02 4 Sensuでネットワーク監視やってみた http://www.slideshare.net/hico_horiuchi/sensu-50675554
  5. 5. Sensu構成@研究室 15/10/02 5 sensu-server + kibana Nginx + Dokuwiki GitLab Ruby on Rails Ubuntu + KVM ・ 物理サーバ (15台) ・ 仮想サーバ (19台) ・ スイッチ (4台) ・ 構成管理は AnsibleHubot (hico-horiuchi/huboco)
  6. 6. Filter 編 1 / 3 15/10/02 6
  7. 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. 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 の式を評価可能
  9. 9. Mutator 編 2 / 3 15/10/02 9
  10. 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. 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)
  12. 12. Aggregate 編 3 / 3 15/10/02 12
  13. 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
  14. 14. uchiwa-web@pull#69 15/10/02 14 Add aggregate progress bar
  15. 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
  16. 16. お知らせ ? / 3 15/10/02 16
  17. 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
  18. 18. Sensu Deep Talks #3 2016年3月開催予定! 会場を提供して頂ける方を募集中 15/10/02 18

×