読者です 読者をやめる 読者になる 読者になる

雑記

インフラのことだったりプログラムのことだったりどうでもいいこと書いたり。要は雑記。

巷で話題のsensuをインストール

乗り遅れ気味ですが、実際に使ってみましたよ。

感想としてはいい感じ。何がいい感じというと柔軟性の高さがいい感じ。 APIは充実してるし、pluginも作りやすいし。 公式でmonitoring frameworkと名乗っちゃってるあたり素敵ですね。

以下より試したときの記録を残していきたいと思います。 多分しばらくsensuネタが続くかと。

sensuのインストール記録

ほんとはchefやpappetを使ってのインストールを(強く)推奨しているとのこと。 ただ、勉強もかねて手動でインストールしてみる。

環境

OSはCentOS6系 sensuは0.13

必要となるパッケージ

  • RabbitMQ
  • Redis
  • Sensu
  • Uchiwa (Dashbord)

インストールは以下を参考に進める

RabbitMQ

インストール

# yum install erlang --enablerepo=epel
# rpm -Uvh http://www.rabbitmq.com/releases/rabbitmq-server/v3.2.1/rabbitmq-server-3.2.1-1.noarch.rpm

SSLの設定

# cd /var/tmp
# wget http://sensuapp.org/docs/0.13/tools/ssl_certs.tar
# tar xf ssl_certs.tar
# cd ssl_certs
# ./ssl_certs.sh generate

生成された以下のファイルを/etc/rabbitmq/ssl以下に移動

sensu_ca/cacert.pem
server/cert.pem
server/key.pem

設定ファイル作成

  • /etc/rabbitmq/rabbitmq.config
[
    {rabbit, [
    {ssl_listeners, [5671]},
    {ssl_options, [{cacertfile,"/etc/rabbitmq/ssl/cacert.pem"},
                   {certfile,"/etc/rabbitmq/ssl/cert.pem"},
                   {keyfile,"/etc/rabbitmq/ssl/key.pem"},
                   {verify,verify_peer},
                   {fail_if_no_peer_cert,true}]}
  ]}
].

最後のピリオドは必須

起動

# /etc/init.d/rabbitmq-server start
# chkconfig rabbitmq-server on

credentialsを作成。以下のコマンドを実行。

# rabbitmqctl add_vhost /sensu
# rabbitmqctl add_user sensu sensu
# rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"

Redis

インストール

# yum install redis --enablerepo=epel -y

起動

# /etc/init.d/redis start

Sensu

レポジトリの追加

  • /etc/yum.repos.d/sensu.repo
[sensu]
name=sensu-main
baseurl=http://repos.sensuapp.org/yum/el/$releasever/$basearch/
gpgcheck=0
enabled=0

インストール

# yum install sensu --enablrepo=sensu

クライアント証明書の設置

# mkdir /etc/sensu/ssl
# cd /etc/sensu/ssl
# cp -a /var/tmp/ssl_certs/client/key.pem .
# cp -a /var/tmp/ssl_certs/client/cert.pem .

設定 config.jsonとしてある程度まとめることにした。

  • /etc/sensu/conf.d/config.json
{
  "rabbitmq": {
    "ssl": {
      "cert_chain_file": "/etc/sensu/ssl/cert.pem",
      "private_key_file": "/etc/sensu/ssl/key.pem"
    },
    "host": "monitor",
    "port": 5671,
    "user": "sensu",
    "password": "sensu",
    "vhost": "/sensu"
  },
  "redis": {
    "host": "localhost",
    "port": 6379
  },
  "api": {
    "host": "localhost",
    "port": 4567,
    "user": "admin",
    "password": "admin"
  },
  "client": {
    "name": "monitor",
    "address": "127.0.0.1",
    "subscriptions": [ 
      "all" 
    ]
  }
}

「monitor」 で名前解決できるようにしておくこと

ハンドラーの設定

/etc/sensu/conf.d/ 以下に置く

# pwd
/etc/sensu/conf.d/handlers

設定

  • /etc/sensu/conf.d/handlers/default.json
{
  "handlers": {
    "default": {
      "type": "set",
      "handlers": [
        "stdout"
      ]
    },
    "stdout": {
      "type": "pipe",
      "command": "cat"
    }
  }
}

起動

# /etc/init.d/sensu-server start
# /etc/init.d/sensu-client start
# /etc/init.d/sensu-api start
# chkconfig sensu-server on
# chkconfig sensu-client on
# chkconfig sensu-api on

Uchiwa

0.13からデフォルトのダッシュボードでなく、「uchiwa」を使うことが推奨となったらしい。 インストール

# yum install uchiwa --enablerepo=sensu

設定

  • /etc/sensu/uchiwa.json
{
  "sensu": [
    {
      "name": "Sensu",
      "host": "127.0.0.1",
      "ssl": false,
      "port": 4567,
      "user": "admin",
      "pass": "admin",
      "path": "",
      "timeout": 5000
    }
  ],
  "uchiwa": {
    "user": "sensu",
    "pass": "sensu",
    "port": 3000,
    "stats": 10,
    "refresh": 10000
  }
}

監視の設定

試しにApacheのプロセス監視を設定する 事前準備としてpluginを設置 pluginはsensu-community-pluginsより取得。 だいたいのsensuのpluginはここにあるので、監視に必要となるpluginはまずはここから探すとよいです。

以下のコマンドで取得。

# cd /etc/sensu/plugins
# wget https://raw.githubusercontent.com/sensu/sensu-community-plugins/master/plugins/processes/check-procs.rb
# chmod 755 check-procs.rb

wgetで直接とってるけど、githubからcloneして設置するでもよい。

jsonファイルを設置。 これが監視するための設定になる。

{
  "checks": {
    "httpd_check": {
      "command": "/etc/sensu/plugins/check-procs.rb -p httpd -C 1 ",
      "subscribers": [
        "all"
      ],
      "handlers": [
        "default"
      ],
      "interval": 10
    }
  }
}

起動

# /etc/init.d/uchiwa start
# chkconfig uchiwa on

アクセスするには以下のURLにアクセス

書くの疲れたので今日はここまで