shinken - 监控报警系统

jopen 11年前
Shinken系统是一个nagios like 系统,作者使用python重新设计/编写的兼容nagios的,可以直接使用nagios-plugins,
官方网站上提供了大量的插件可供下载  http://www.shinken-monitoring.org/download/
由于是重新设计、编写的系统,其在架构和配置的便利性上要优于nagios,目录结构非常清晰。
系统安装完成后及自带了很多常用的模板,使用和配置非常简单。
其他为nagios设计的周边系统都可以工作在是shinken下面,如:nagvis、pnp4nagios、check_mem等。

1、etc/packs  已经定义好的包,可自定义各种模板,供主机直接应用
command.cfg 定义监控命令
template.cfg   给不同的主机模板定义监控命令参数的值    
    参数名称的特别说明:
    command.cfg 中使用                  $_HOSTMYSQLUSER$
    则template.cfg 中对应的名称为: _MYSQLUSER   少了HOST,奇怪的设置。
    同样  macros.cfg  的名称与template.cfg 中一致
    template.cfg 中也可应用  macros.cfg 中定义的参数
macros.cfg      定义全局监控命令参数
mysql.pack     模板及参数说明文件
discovery.cfg  自动发现策略,用途不明
services           各种服务定义目录
            简单明了,每个服务一个文件,通过host_name 自动关联到主机模板上

实例:
#cat macros.cfg 
### Mysql credentials
$MYSQLUSER$=shinken
$MYSQLPASSWORD$=passworddb

#cat template.cfg
define host{
   name           mysql-slave
   use            generic-host
   register       0
   _MYSQLUSER            $MYSQLUSER$
   _MYSQLPASSWORD    $MYSQLPASSWORD$
   _SLAVELAG_WARN 10
   _SLAVELAG_CRIT 20
}

#cat command.cfg
define command {
       command_name     check_mysql_keycache_hitrate
       command_line     $PLUGINSDIR$/check_mysql_health --hostname $HOSTADDRESS$ --username $_HOSTMYSQLUSER$ --password $_HOSTMYSQLPASSWORD$ --mode keycache-hitrate --warning $_HOSTKEYCACHEHITRATE_WARN$ --critical $_HOSTKEYCACHEHITRATE_CRIT$
}

define command {
       command_name     check_mysql_bufferpool_hitrate
       command_line     $PLUGINSDIR$/check_mysql_health --hostname $HOSTADDRESS$ --username $_HOSTMYSQLUSER$ --password $_HOSTMYSQLPASSWORD$ --mode bufferpool-hitrate --warning $_HOSTBUFFERPOOLHITRATE_WARN$ --critical $_HOSTBUFFERPOOLHITRATE_CRIT$
}


2、引用模板方法
在定义host时,使用use 将模板名称叠加即可
define host{
        use                     linux, mysql, mysql-slave
        contact_groups          admins
        host_name               DB-141
        address                 192.168.0.141
        icon_set                server
        hostgroups              DB-MYSQL
        }
3、监控脚本与 nagios 兼容,

4、安装
shinken 的安装非常简单,具体参考官方安装文档。
http://www.shinken-monitoring.org/wiki/shinken_10min_start
shinken自带WEBUI,不需要其他的WebServer,当然你也可以将其挂在apache或nginx下面。

> Found installation parameters
 --> ETC=/usr/local/shinken/etc
 --> VAR=/usr/local/shinken/var
 --> LIBEXEC=/usr/local/shinken/libexec
 --> TARGET=/usr/local/shinken
 > Do you want to reuse those parameters?y

yum install python-pyro pymongo 

__ http://pypi.python.org/pypi/simplejson/
__ http://pypi.python.org/pypi/ujson/
__ http://code.google.com/p/pysqlite/
__ http://pypi.python.org/pypi/kombu/2.4.5
__ http://pypi.python.org/pypi/python-ldap/

+--------------------------------------------------------------------------------
 > Starting shinken
+------------------------------------------------------------------------------
| Shinken is now installed on your server 
| The install location is: /usr/local/shinken
| The configuration folder is: /usr/local/shinken/etc
| The Web Interface is available at: http://localhost:7767
| The default credentials for the webui are admin/admin
| You can now learn how to configure shinken at: http://www.shinken-monitoring.org/wiki
+------------------------------------------------------------------------------
 > updated configuration of module[3] passwd=/usr/local/shinken/etc/htpasswd.users updated configuration of module[3] passwd=/usr/local/shinken/etc/htpasswd.users

./install -i &&\
./install -p nagios-plugins &&\
./install -p check_mem &&\
./install -p manubulon &&\
./install -a multisite &&\
./install -a pnp4nagios &&\
./install -a nagvis &&\
./install -a mongodb

Error : you didn't defined a WebUI module for saving user preference like the Mongodb one. You won't be able to use this page!
1、vi shinken-specific.cfg
define module {
 modules Apache_passwd, ActiveDir_UI, Cfg_password, PNP_UI, Mongodb
...
module_name WebUI
...
}

2、yum install pymongo