LoginSignup
24
24

More than 5 years have passed since last update.

Sensuでネットワーク監視やってみた

Last updated at Posted at 2015-07-19

7/15〜17に開催されたJANOG36のライトニングトークに応募して,落選したネタです.
プレゼンテーションもSlideShareにアップロードしています.

Sensuの特徴

Sensuは2011年に開発が開始された,オープンソースの監視フレームワークです.
広く使われているNagiosの置き換えを目的に,下記の特徴があります.
これらは,サーバ構成が頻繁に変わるクラウドに適したものとなっています.

  • sensu-client起動時に,監視サーバに自動登録.
  • 設定ファイルはJSON形式で,構成管理ツールでの生成を推奨.
  • 監視サーバと依存ミドルウェアのスケールアウトが可能.
  • sensu-apiを用いることで,フロントエンドとの連携が容易.

Sensuについては,技評やヤフーの記事が参考になります.

Sensuプラグイン

Sensuプラグインには,下記の2種類があります.

  • Check (クライアントサイド)
    • sensu-client上で動作し,sensu-serverからの指示で実行.
    • 監視の実行やメトリクスの測定を行い,結果をsensu-serverに送信.
  • Handler (サーバサイド)
    • sensu-server上で動作し,sensu-clientからのデータを処理.
    • アラートメールの送信や,メトリクスのNoSQLへの保存を行う.

公式ではCommunity Pluginsが公開されており,大抵のものが揃っています.
ただ,多くがRuby製でオーバーヘッドが大きいため,個人でGo言語によるプラグイン開発を進めています.

Sensuの構成

私が所属する最所研究室では,下記の構成で運用しています.

image1.png

Server,Client,APIが基本的なコンポーネントで,RabbitMQRedisが依存するミドルウェアです.
可視化にはElasticsearchKibanaを利用しています.

他にも,私の趣味で開発したツールが幾つか動いています.

スイッチの監視

スイッチ監視用のsensu-clientを用意し,各スイッチの通信量を取得してみました
metrics-snmpGo言語で実装し,SNMPで下記MIBを測定しています.

  • 1.3.6.1.2.1.2.2.1.10.x: 各ポートの受信バイト数
  • 1.3.6.1.2.1.2.2.1.16.x: 各ポートの送信バイト数

メトリクスの測定結果をhandler-elasticsearchを使って保存し,Kibanaで可視化してみました.
青線が全ポート受信バイトの合計,黄線が全ポート送信バイトの合計です.

image3.png

もっと出来そうなこと

他にもSensuを使ったネットワーク監視として,どんなことが出来るか考えてみました.

  • スイッチにPINGを飛ばして死活監視
  • スイッチの全体/特定ポートの通信量が閾値を超えたら通知
  • 各ポートの通信量を個別に可視化

JANOG37に向けて

JANOG37では「ネットワーク監視どうしてますか?」というタイトルで,ルータやスイッチの監視,トラフィックやパケットの可視化についてのBoFを応募しようと思っています.

24
24
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
24
24