SensuのCommunity Pluginの一覧(日本語版)
全国1億2000万人の監視マニアのみなさん、こんにちは。 Sensuは、非常にシンプルなアーキテクチャーで、さまざまなカスタムスクリプトを使っていろいろな監視を行ったり、メトリクスデータを取得することができます。メトリクスデータはさらにGraphiteなんかに送信してあげれば、どんどんグラフ化できます。このあたりの話が前提になっていますので、Sensuってなにそれ?な方は先に「Sensuを使って自由度の高い監視システムの構築を行う方法」をご覧ください。
チェックスクリプトを書くのは非常に簡単ですが、SensuではCommunity Pluginという形で非常にたくさんのプラグインが既に公開されていますので、今日はそれを紹介します。
Community Pluginの入手
なにも考えず、git clone https://github.com/sensu/sensu-community-plugins
すればOKです。これで大量のスクリプトが手に入りますので、(・∀・)ニヤニヤしながら眺めるとよいでしょう。 でもあまりにたくさんあるので、何がなんだか分からない、という方のために、今日の本題で、各プラグインはどんなものなのか、一気に紹介したいと思います。 一応スクリプトの中身は全部見ましたが、間違ってればご指摘ください。
現在公開されているCommunity Pluginの一覧
あたりまえですが、玉石混交ちっくではありますので、利用の前に自分でよく中身を確認するようにしてください。 なお、ライセンスは基本的にSensuと同様にMITライセンスとなります。apache
- Apacheのmod_statusの出力結果をGraphiteで表示するためのデータを作成する
aws
- Auto Scalingで起動されているインスタンス数をカウントする
- ELBにインストールしているサーバ証明書の有効期限を監視する
- ELBのヘルスチェックをする
- ELB配下に一定台数以上のインスタンスがいるかどうか監視する
- SQSのメッセージ数を監視する
- VPCでのVPN接続の死活を監視する
- EC2の起動台数をカウントする
- ElastiCacheのメトリクスを取得する
- CloudWatchからELBのメトリクスをがっつり取得する
- ELBのレイテンシを取得する
beanstalk
- シンプルなワークキューを提供するbeanstalkd(http://kr.github.io/beanstalkd/)のメトリクスを取得する
beanstalkd
- 同上。実装が違うだけ
cassandra
- Cassandraのメトリクスデータを取得する。例えばuptime、ヒープ使用量、例外の発生件数など
ceph
- Linux のペタバイト規模の分散ファイルシステムの監視とメトリクス取得
check-tripwire.rb
- 改ざん検知のTripwireを実行して、改ざんされていないかを監視する
chef
- Chef Serverに登録されているノードを監視する
couchbase
- Couchbaseのメモリ使用量を監視する
dhcp
- DHCPサーバの死活を監視する。デフォルトでは単にDHCPディスカバーへの応答を監視する
dns
- DNSサーバが応答を返すか監視する
elasticsearch
- 検索用エンジンであるElasticSearchを監視する。クラスタのステータス監視、ファイルディスクリプタの監視、ヒープの監視、クラスタメトリクスの取得、ノードのメトリクスの取得などが可能
erlang
- リモートのErlangノードへの接続が可能かどうかを監視する
files
- 指定したファイルのチェックサムを監視する
- ファイルの存在を監視する
- ファイルの更新日時を監視する
- ファイルに指定した文字列がふくまれているか監視する
- 指定したディレクトリ内にあるファイル数をチェックする
ftp
- 指定したFTPサーバに接続できるかを監視する
github
- GitHubの指定したレポジトリのメトリクス(プルリクエスト数、ブランチ数、タグの数、コントリビューターの数、言語)を取得する
graphite
- Graphite内に蓄積されているデータをチェックする
- 複数サーバでGraphiteレプリケーションを組んでいる場合に状態が正常か監視する
- Graphiteから時系列のデータを取得する
haproxy
- HAProxyのサービスが正常に起動しているか監視する
- HAProxyのメトリクスデータを取得する
hbase
- 分散DBであるApache HBaseのリージョン数を監視する
- HBaseのメトリクスを取得する
http
- httpdがステータスコード200を返すかどうかを監視する
- httpdがValidなJSONを返すかどうか監視する
- httpdでリクエストを処理する際の各処理段階(DNS名前解決、接続、リダイレクトなど)にかかる時間のメトリクスを取得する
imap
- IMAPサーバを死活監視する
java
- ヒープメモリの使用状況のメトリクスを取得する
- ヒープメモリの使用割合を監視する
- PermGen領域を監視する
- jststを使ってメトリクスを取得する
jenkins
- 指定したJenkinsのジョブが正常終了しているかそうでないかを監視する
logging
- 正規表現を使ってログを監視する
- システムのジャーナルを正規表現をつかって監視する
lxc
- 軽量LinuxコンテナであるLXCの仮想マシンの起動有無を監視する
- 指定した仮想マシンのメモリ使用率を監視する
memcached
- memcachedの死活を監視する
- memcachedのメトリクスを取得する
- get,set,delなどのメトリクスを取得する
- rubyのライブラリを使わず直接TCPソケットを使って、memcachedの各種メトリクス(読み書きバイト数、ヒット率、接続数などなどなど)を取得する
mongodb
- MongoDBの死活監視を行う
- MongoDBのメトリクスを取得する
monit
- オープンソースの監視ツールであるMonit(http://mmonit.com/monit/)のメール送信を監視する
mysql
- MySQLの死活を監視する
- MySQLの接続数を監視する
- MySQLのディスクを監視する
- MySQLのレプリケーションの状況を監視する
- MySQLのメトリクスを取得する
- Amazon RDS上のMySQLの死活監視をCloudWatch経由で行う
network
- TCPで接続してバナーが正規表現にマッチしているかどうか監視する
- マルチキャストグループの動作を監視する
- IPアドレスがブラックリストに含まれているかどうか監視する
- ネットワークのメトリクスを取得する
- TCPのメトリクスを取得する
- ネットワーク・インターフェイスのスループットのメトリクスを取得する
newrelic
- NewRelicのメトリクスを取得する
nginx
- Nginxのメトリクスを取得する
openldap
- OpenLDAPサーバでsyncreplが動作しているかどうかを監視する
openstack
- OpenStack関連の監視とメトリクス取得(略)
opsgenie
- 監視の通知サービスであるOpsGeniei(http://www.opsgenie.com/)の死活監視をおこなう
percona-cluster
- MySQL Percona Serverのメトリクス取得
php-fpm
- php-fpmの死活監視とメトリクス取得
ping
- 指定した宛先にpingを投げて死活監視する
pingdom
- Webサイトのパフォーマンス測定ツールであるpingdomi(https://www.pingdom.com/)にあるメトリクスデータを取得する
- pingdomの残りクレジット数を監視する
postfix
- Postfixのメールキューの数を監視する
postgres
- PostgreSQLの死活監視する
- PostgreSQLへの接続情報のメトリクスを取得する
- PostgreSQLのDBのサイズのメトリクスを取得する
- PostgreSQLの負荷状況のメトリクスを取得する
- PostgreSQLのリプリケーションの死活を監視する
- statsioおよびstatsdbのメトリクスを取得する
- など
processes
- 指定したコマンドを実行し、正常に終了することを確認する
- 指定したプロセスが存在していることを監視する
qmail
- Qmailのキューの数を監視する
rabbitmq
- RabbitMQの死活監視をおこなう
- AMQPの死活監視を行う
- RabbitMQの全体的なメトリクスを取得する
- RabbitMQのキューに関するメトリクスを取得する
- RabbitMQのメッセージ数を監視する
redis
- Redisのメモリ状況を監視する
- Redisのスレーブを死活監視する
- Redisのリストの長さを監視する
- Redisのメトリクスを取得する
- など
resque
- RubyアプリケーションでRescueに入っているもののメトリクスを取得する
riak
- Riakのメトリクスを取得する
security
- 指定したポートが空いているかどうか監視する
sensu
- Aggregateのメトリクスを取得する
- Aggregateできているかどうかを監視する
- 有効期限をすぎたStashを削除する
sftp
- sftp接続できるかどうかを監視する
sip
- SIPサーバの死活監視をおこなう
smart
- ハードディスクやSSDのSMARTステータスをチェックする
snmp
- SNMPが正常に動作しているか監視する
- SNMPのメトリクスを取得する
- ネットワーク・インターフェイスのメトリクスを取得する
solr
- Apache Solrのメトリクスを取得する
supervisor
- supervisorプロセスの死活監視をおこなう
system
- CPU使用率が一定以内かどうかを監視する
- Diskの状態を監視する
- Diskの使用率を監視する
- ファイルシステムに書き込み可能かどうかを監視する
- ロードアベレージが指定値いないかどうかを監視する
- メモリ使用率を監視する
- メモリ使用量を監視する
- NTPの死活監視を行う
- スワップ領域の使用率を監視する
- スワップ領域の使用量を監視する
- CPUのメトリクスを取得する
- Diskのキャパシティのメトリクスを取得する
- ネットワーク・インターフェイスのメトリクスを取得する
- ロードアベレージのメトリクスを取得する
- vmstatのメトリクスを取得する
- などなど
telapi
- モバイル向け通知や電話のAPIを提供するTelAPI(http://www.telapi.com/)の利用料金を監視する
trafficserver
- Apache Traffic Serverのメトリクスを取得する
twemproxy
- memcachedとredisのProxy機能を提供するTwemproxyのメトリクスを取得する
twilio
- Twillioの1アカウントの中の通知記録数を監視する
varnish
- Varnishのメトリクスを取得する
windows
- Windowsのディスクを監視する
- Windowsのプロセスを監視する
- Windowsのサービスを監視する
- Windowsのメモリ使用量を取得する
- WindowsのCPU負荷を取得する
youtube
- Youtubeのメトリクスデータを取得する
アジャイルコーチングやトレーニングを提供しています
株式会社アトラクタでは、アジャイル開発に取り組むチーム向けのコーチングや、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください。
詳細はこちら