Slide 1

Slide 1 text

Shinken Monitoringについて真剣に 調べてみた結果 2014/01/29 montoring cacual vol7 Tsuyoshi Torii (@toritori0318) Bascule Inc.

Slide 2

Slide 2 text

自己紹介 • 鳥居 剛司 @toritori0318 • 株式会社バスキュール • TV連動プラットフォームサーバ開発/運用 • Lua / Python / Golang / Node.js / Perl / Ruby • 二児の父

Slide 3

Slide 3 text

こんなインフラ環境です

Slide 4

Slide 4 text

現在 • Nagios+Munin(+Proteus monitor) – 古き良きモニタリングツール

Slide 5

Slide 5 text

欲しい監視ツール • ディスポーザブルなインフラ環境にマッチ – 自動で監視下に入る – ゴミ出ない – リアルタイム性 – …

Slide 6

Slide 6 text

_人人人人人人人人人人人人人人人人人_ > Nagios + Munin、どう考えてもつらい <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Shinken Monitoring について • 名前がかっこいい • アイコンがかっこいい 使う理由を十分に満たしている

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

http://www.rohit.io/blog/rip-nagios-hello-docker-shinken.html

Slide 11

Slide 11 text

Blog要約 • アクティブな開発 • マルチDCデプロイメント – 無限にスケール! – しかも簡単! • パフォーマンス – Nagios速い。けどShinkenもbooster-nrpeといったツールで工夫してる • モダン – 動的構成/AWS/shinkenモジュールインストーラなど豊富なサポート機 能を持っているよ • UI – Nagiosは古いけど多機能。それに比べてShinkenは現代的で洗練されたUI を持っている。ThrukやGraphiteとも連携可 • 簡単に切り替え – 設定はNagiosとほぼ100%互換!

Slide 12

Slide 12 text

なんか良さそう!ピコーン

Slide 13

Slide 13 text

まずはアーキテクチャを見てみよう

Slide 14

Slide 14 text

Architecture diagram with all daemons illustrated

Slide 15

Slide 15 text

うっ… なんか多くね?

Slide 16

Slide 16 text

Shinken daemon roles • Arbiter – 設定ファイル読み込む+可用性のためのデーモン。マスターが死んだ らスペアに再ルーティングなどするらしい。 • Scheduler – PollerやReactionnerをチェックしてプールしたり。 • Poller – Schedulerによってリクエスト要求され、チェックプラグイン(nrpeなど)を 実行し、結果をSchedulerに返す。 • Reactionner – チェックプラグインの結果から、RSS/メール/イベントハンドラ通知な どする • Broker – Schedulerからのデータを管理。監視結果やログをデータとして出力し DBに保存する。

Slide 17

Slide 17 text

つかってみよう

Slide 18

Slide 18 text

Shinken インストール # shinkenユーザ必須 adduser shinken # pip pip install shinken # デーモン設定 service shinken start chkconfig shinken on

Slide 19

Slide 19 text

ディレクトリ構造 • /etc/shinken/shinken.cfg # ルートコンフィグ • /etc/shinken # コンフィグファイル群 • /var/lib/shinken # shinkenモジュール • /var/log/shinken # ログ • /var/run/shinken # pidファイル • Shinken install モジュール – /var/lib/shinken/modules # ライブラリ実体 – /etc/shinken/modules/* # config

Slide 20

Slide 20 text

shinken コマンド # セットアップ shinken --init # モジュールインストール shinken install # モジュール検索 shinken search

Slide 21

Slide 21 text

WebUIインストール

Slide 22

Slide 22 text

WebUIインストール # shinken install sudo shinken install webui sudo shinken install auth-cfg-password sudo shinken install sqlitedb # コンフィグ設定: broker vi /etc/shinken/brokers/broker-master.cfg modules webui # コンフィグ設定: webui vi /etc/shinken/modules/webui.cfg modules auth-cfg-password, sqlitedb # デーモン再起動 sudo service shinken restart # 以下のURLにアクセス http://:7767/

Slide 23

Slide 23 text

ちょっと面倒になってきた

Slide 24

Slide 24 text

http://www.rohit.io/blog/rip-nagios-hello-docker-shinken.html

Slide 25

Slide 25 text

Dockerつかえばええんや!ピコーン

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

Dockerイメージで楽ちん〜 1. WebUI – Shinken WebUI基本形 – http://localhost/ 2. Thruk UI – Thruk入りWebUI – http://localhost/thruk/ 3. Graphs – Graphite入りWebUI – http://localhost/service/docker_shinken/http_port_7770 #graphs https://github.com/rohit01/docker_shinken.git

Slide 28

Slide 28 text

Dockerイメージで楽ちん〜 # git clone git clone https://github.com/rohit01/docker_shinken.git # 1. webui cd docker_shinken/shinken_basic sudo docker run -d -v "$(pwd)/custom_configs:/etc/shinken/custom_configs" \ -p 80:80 rohit01/shinken # 2. webui + thruk cd docker_shinken/shinken_thruk sudo docker run -d -v "$(pwd)/custom_configs:/etc/shinken/custom_configs" \ -p 80:80 rohit01/shinken_thruk # 3. webui + thruk + graphite cd docker_shinken/shinken_thruk_graphite sudo docker run -d -v "$(pwd)/custom_configs:/etc/shinken/custom_configs" \ -p 80:80 rohit01/shinken_thruk_graphite

Slide 29

Slide 29 text

実際の動きを見てみましょう(demo)

Slide 30

Slide 30 text

使えそう?なプラグインたち • ホスト管理系 – import-aws • 監視系 – booster-nrpe – linux-snmp – linux-ssh

Slide 31

Slide 31 text

import-aws

Slide 32

Slide 32 text

import-awsを使ってみる • インストール # pip sudo pip install apache-libcloud # import-aws sudo shinken install import-aws

Slide 33

Slide 33 text

import-awsを使ってみる # import-awsコンフィグ $ cat /etc/shinken/module/import-aws.cfg define module { module_name AWS module_type aws_import # Configure your REAL api_key and secret from AWS api_key xxxxxxxxxxxxxxxxxxx secret xxxxxxxxxxxxxxxxxxx regions ec2_ap_northeast ; default_template generic-host ; }

Slide 34

Slide 34 text

import-awsを使ってみる # arbiterコンフィグ $ cat /etc/shinken/arbiters/arbiter-master.cfg … modules AWS …

Slide 35

Slide 35 text

import-awsを使ってみる

Slide 36

Slide 36 text

import-awsを使ってみる default_template名 “use” タグの値 “EC2” 固定

Slide 37

Slide 37 text

import-awsを使ってみる

Slide 38

Slide 38 text

import-awsを使ってみる # 自動生成されるhostコンフィグ define host { host_name i-xxxxxxx address x.x.x.x use hogehoge, generic-host,EC2 _EC2_AVAILABILITY ap-northeast-1 … }

Slide 39

Slide 39 text

その他気になったところ • Configエラーでもデーモン起動はOK出す • shinkenサイトがhttp

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

結論 • いまいち優位性が感じられなかったが… – スケーラビリティ – モジュール便利…? – “ビジネスインパクトにフォーカスする” の部分が使いこなせてない感じ する • http://shinken-monitoring.org/#Slide4 – import-awsは便利 • Nagiosほぼ100%互換は良い – 現在Nagiosを利用していてつらいなら考えても良いかも – NagiosっぽいビューもThruk使えば無問題 • めっちゃオススメ出来る感じでもない – Shinken enterprise版があるようなので、そちらはまた違うかも

Slide 42

Slide 42 text

ありがとうございました