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

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を応募しようと思っています.


『 Go 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。