サーバー監視ツールSensuを、Dockerコンテナにインストールした時のメモです。
SensuはChefやPuppetを使ってのインストールが推奨されていますが、今回はコマンドを一つ一つ打って構築してみました。
1
| $ docker run -it -p 3000 -p 4567 -p 5671 -p 15672 --name sensu centos:centos6 /bin/bash
|
1
2
| $ yum update -y
$ yum install -y wget tar logrotate
|
SSL証明書、認証局の作成
1
2
3
4
5
| $ cd /tmp
$ wget http://sensuapp.org/docs/0.16/tools/ssl_certs.tar
$ tar xvf ssl_certs.tar
$ cd ssl_certs
$ ./ssl_certs.sh generate
|
RabbitMQのインストール
1
2
3
| $ rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
$ rpm -Uvh http://www.rabbitmq.com/releases/rabbitmq-server/v3.2.1/rabbitmq-server-3.2.1-1.noarch.rpm
$ service rabbitmq-server start
|
SSLの設定
1
2
3
4
5
| $ mkdir -p /etc/rabbitmq/ssl
$ cp -a sensu_ca/cacert.pem /etc/rabbitmq/ssl/
$ cp -a server/cert.pem /etc/rabbitmq/ssl/
$ cp -a server/key.pem /etc/rabbitmq/ssl/
$ vi /etc/rabbitmq/rabbitmq.config
|
/etc/rabbitmq/rabbitmq.config1
2
3
4
5
6
7
8
9
10
| [
{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}]}
]}
].
|
1
2
| $ service rabbitmq-server restart
$ rabbitmqctl add_vhost /sensu
|
RabbitMQのSensuユーザー作成
PASSWORD
は各自設定してください。
1
2
| $ rabbitmqctl add_user sensu PASSWORD
$ rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"
|
1
2
| $ rabbitmq-plugins enable rabbitmq_management
$ service rabbitmq-server restart
|
管理用アカウントの作成
1
2
| $ rabbitmqctl add_user admin PASSWORD
$ rabbitmqctl set_user_tags admin administrator
|
Redisのインストール
1
2
| $ yum install -y redis
$ service redis start
|
Sensuのインストール
1
| $ vi /etc/yum.repos.d/sensu.repo
|
/etc/yum.repos.d/sensu.repo1
2
3
4
5
| [sensu]
name=sensu-main
baseurl=http://repos.sensuapp.org/yum/el/$releasever/$basearch/
gpgcheck=0
enabled=1
|
1
2
3
4
| $ mkdir -p /etc/sensu/ssl
$ cp -a client/cert.pem /etc/sensu/ssl/
$ cp -a client/key.pem /etc/sensu/ssl/
$ vi /etc/sensu/conf.d/rabbitmq.json
|
/etc/sensu/conf.d/rabbitmq.json1
2
3
4
5
6
7
8
9
10
11
12
13
| {
"rabbitmq": {
"ssl": {
"cert_chain_file": "/etc/sensu/ssl/cert.pem",
"private_key_file": "/etc/sensu/ssl/key.pem"
},
"host": "localhost",
"port": 5671,
"vhost": "/sensu",
"user": "sensu",
"password": "PASSWORD"
}
}
|
1
| $ vi /etc/sensu/conf.d/redis.json
|
/etc/sensu/conf.d/redis.json1
2
3
4
5
6
| {
"redis": {
"host": "localhost",
"port": 6379
}
}
|
1
| $ vi /etc/sensu/conf.d/api.json
|
/etc/sensu/conf.d/api.json1
2
3
4
5
6
7
8
| {
"api": {
"host": "localhost",
"port": 4567,
"user": "admin",
"password": "PASSWORD"
}
}
|
1
| $ vi /etc/sensu/conf.d/client.json
|
/etc/sensu/conf.d/client.json1
2
3
4
5
6
7
| {
"client": {
"name": "Sensu-Server",
"address": "localhost",
"subscriptions": [ "all" ]
}
}
|
Sensuの起動
1
2
3
| $ service sensu-server start
$ service sensu-client start
$ service sensu-api start
|
続いて、Sensuのダッシュボード Uchiwa をインストールする。
1
2
| $ yum install -y uchiwa
$ vi /etc/sensu/uchiwa.json
|
/etc/sensu/uchiwa.json1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| {
"sensu": [
{
"name": "Sensu",
"host": "localhost",
"ssl": false,
"port": 4567,
"user": "admin",
"pass": "PASSWORD",
"path": "",
"timeout": 5000
}
],
"uchiwa": {
"user": "",
"pass": "",
"port": 3000,
"stats": 10,
"refresh": 10000
}
}
|
http://<コンテナIP>:3000/
にアクセスしてダッシュボードが表示されればOK!
参考:Sensuのchef/puppetを使わないセットアップ – Qiita