Glide Note

glidenote's blog

監視ソフトをNagiosからSensuに切り替えて2ヶ月経ったのでまとめた



Nagiossensu2 調issue2

Sensu @ma0e

@ma0e We started using it. @glidenote will report the detail soon, I think.
 kentaro (@kentaro) 2013, 1030

@kentaro @glidenote that would be nice
 Mitsutoshi Aoe/maoe (@ma0e) 2013, 1030

CentOS 6.4sensu0.12.1-1Nagios Puppet使sensu-puppet使

sensu

Sensu



Nagios

Ruby

()



Chef/Puppet

Nagios Check(Nagios)

EC2

Chef/Puppet

librato-metrics

WEB UI




 http://slides.sensuapp.org 

sensu

調



sensu repoyum

sensu

erlangRabbitMQredisgemsensu-pluginredis

sensusensu-serversensu-apisensu-dashboardsensu-client4

Nagios

RabbitMQ使

sunsu-client(/etc/sensu)

RabbitMQ

RabbitMQ

api()

jsonchefpuppet

sensuchef/puppet

Nagios(Chef/Puppet)

api(sensu-adminapi)

nrpe-plugin使nagios使/usr/lib/nagios/plugins/check_load -w 20,500,500 -c 35,500,500

nagiossensu-plugin https://github.com/sensu/sensu-plugin




2



sensu-puppet(Chef)

sensu-puppetmanifest

sensu-puppet

sensu-puppet(sensu-chef)sensu()

RabbitMQpuppetlabs-rabbitmq

sensu-dashboard()

(sensu-dashboard)sensu-admin

sensu-adminRailsnginx+unicorn+upstart

sensunrpe-plugin使

jsonjq

sensu-serversensu-apisensu-api

sensu-serversensu-server,sensu-api

IRCPRmerge colorize irc notification. by glidenote · Pull Request #329 · sensu/sensu-community-plugins

Ruby(Ruby)

Sensu108102

Nagios調

RabbitMQ調


sensu-server/etc/sensu.json.rbsensu-puppet
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/etc/sensu
├── conf.d
│   ├── api.json
│   ├── checks
│   │   ├── check_crond_process.json
│   │   ├── check_disk.json
│   │   ├── check_lb_health.json
│   │   ├── check_load.json
│   │   ├── check_mem.json
│   │   ├── check_ntp_time.json
│   │   ├── check_ReadOnly_FileSystem.json
│   │   ├── check_sensu_api.json
│   │   ├── check_serf_process.json
│   │   ├── check_ssh_port_22.json
│   │   └── check_ssl_expire.json
│   ├── client.json
│   ├── dashboard.json
│   ├── handlers
│   │   ├── default.json
│   │   ├── irc.json
│   │   ├── irc-server-op.json
│   │   └── mailer.json
│   ├── rabbitmq.json
│   └── redis.json
├── extensions
├── handlers
│   ├── irc.rb
│   ├── irc-server-op.rb
│   └── mailer.rb
├── mutators
├── plugins
│   ├── check-fs-writable.rb
│   ├── check-http.rb
│   ├── check-load.rb
│   ├── check_mem
│   ├── check-memcached-stats.rb
│   ├── check-procs.rb
│   └── check-redis-memory.rb
└── ssl
    ├── client_cert.pem
    └── client_key.pem

8 directories, 32 files

実際に使っている管理画面。sensu-dashboardからsensu-adminに切り替えてサービスに投入してます。

アラートが出ると下記のような感じ。アラートが出たものだけ表示される。

IRCには下記のような感じ(私のPRがmergeされて色が付くようになってます!)

メールでは

1
2
3
4
5
6
7
8
9
10
11
ALERT - web001.glidenote.jp/check_php-fpm:

PROCS CRITICAL: 0 processes with command name 'php-fpm'

            Host: web001.glidenote.jp
            Timestamp: Wed Nov 20 11:35:51 +0900 2013
            Address:  192.168.xxx.xxx
            Check Name:  check_php-fpm
            Command:  /usr/lib/nagios/plugins/check_procs -c 1: -C "php-fpm"
            Status:  2
            Occurrences:  2



Version 0.9Version 0.12

Puppet


Sensu Serf-munin使
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
cat << 'EOF' >/etc/yum.repos.d/epel.repo
[epel]
name=epel repo
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
EOF

yum -y install puppet

cat << 'EOF' > /etc/puppet/puppet.conf
[main]
ssldir = $vardir/ssl
rundir = /var/run/puppet
logdir = /var/log/puppet

[master]
environment = development
certname    = manage001.pb.glidenote.lan
manifestdir = $vardir/data/manifests
templatedir = $vardir/data/templates
modulepath  = $vardir/data/modules

[agent]
pluginsync = true
EOF

echo "172.18.xxx.xxx    manage001.pb.glidenote.lan" >> /etc/hosts

yum -y install rubygems
rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/x86_64/rubygem-json-1.4.6-1.el6.x86_64.rpm

puppet agent --test --server manage001.pb.glidenote.lan --noop
puppet agent --test --server manage001.pb.glidenote.lan

SensuSerf-munin Puppet

SensuNagios

参考

Comments