介绍
Shinken是一个基于Nagios Core的开源监视框架,已经在python中重写,以增强灵活性,可扩展性和易用性。 Shinken与Nagios完全兼容,并支持它的插件和配置,可以在旅途中使用,无需重写或调整。
Shinken对分布没有限制。 它可以扩展到LAN局域网,通过DMZ,甚至跨越几个数据中心。
Shinken超越了Nagios的经典监控功能,允许对资产进行分布式和高可用性监控,对VMware拓扑和不同管理程序(Xen,KVM,...)进行智能和自动管理,并且能够监控Amazon EC2托管的应用程序像mysql和Apache)。
Shinken被认为是Nagios的5倍,并且配备了大量的监视包,可以很容易地安装,提供了一种更快的方式来启动监视服务器,服务和应用程序。
在本指南中,我们将配置两个Droplet。 一个将被配置为服务器,另一个被配置为客户端。 他们都将运行Ubuntu 12.04 LTS。
安装Shinken服务器
我们将使用自动安装脚本从服务器开始。
curl -L http://install.shinken-monitoring.org | /bin/bash
安装脚本将创建用户和组。 安装所有依赖项,然后进行Shinken安装。
一旦安装完成后,进研WebUI中可以通过访问http://XXXX:7767
和凭证admin/admin
。 该配置文件夹将位于/usr/local/shinken/etc
。
预配置Shinken服务器
在Shinken的配置过程中,我们需要保护其WebUI。
让我们编辑模块网络用户界面:
nano /usr/local/shinken/etc/shinken-specific.cfg
我们将通过改变开始auth_secret
,并更换CHANGE_ME
强密码:
define module {
modules Apache_passwd, ActiveDir_UI, Cfg_password, PNP_UI, Mongodb, Glances_UI
manage_acl 1
play_sound 0
host 0.0.0.0
module_type webui
allow_html_output 0
max_output_length 100
module_name WebUI
auth_secret CHANGE_ME
port 7767
}
保存并关闭文件。
然后我们的管理员用户也应该得到一个强密码。 为此,我们将通过在一个秘密的强烈替换他的默认密码contacts.cfg
文件:
nano /usr/local/shinken/etc/contacts.cfg
define contact{
use generic-contact
contact_name admin
email shinken@localhost
pager 0600000000 ; contact phone number
password admin
is_admin 1
}
即使安装程序关心安装所有必要的依赖项和模块,我们需要安装mongodb支持来处理和保存webui上的用户首选项,否则我们将在Web UI上收到一条丑陋的警告消息:
错误:您没有定义用于保存用户首选项的WebUI模块,如Mongodb。 您将无法使用此页面!
要安装Mongodb支持:
cd /usr/local/shinken
./install -a mongodb
配置Shinken服务器
对于我们的场景,我们将首先声明Ubuntu 12.04受监视的主机(Shinken从站),安装和配置SNMP,然后使用自定义团体字符串进行监视。
SNMP模板将处理以下检查:
主机检查每5分钟:检查与ping服务器是UP
检查磁盘空间
检查负载平均值
检查CPU使用率
检查物理内存和交换使用情况
检查网络接口活动
一旦完成,我们将使用FTP和SSH包检查从属服务器上的FTP和SSH状态,作为如何使用包的示例。
软件包是通用或特定服务,应用程序服务器,操作系统和监视功能设备的预定义监控模板。 这些程序包位于以下目录中/usr/local/shinken/etc/packs
按类型分类,并使用它们,我们只需要在主机定义文件中指定他们的名字。
由于Shinken完全兼容并支持Nagios,Nagios插件可以通过Shinken添加和使用。
定义Shinken上的Minion
一个监控服务器,让我们创建对应于我们的Linux设备(Ubuntu的MinionDroplet)上的主机文件/usr/local/shinken/etc/hosts directory
:
nano /usr/local/shinken/etc/hosts/shinken_slave.cfg
复制并粘贴以下内容,并将“host_name”和“address”字段更改为适当的值。
define host{
use linux
host_name Shinken_slave
address X.X.X.X
_SNMPCOMMUNITY DOmonitoring
}
“使用linux”是“模板”行。 这意味着这个主机将使用默认linux模板的属性。
“host_name”是主机的对象名称。 它对应于我们的客户端的主机名,并且必须是唯一的。
“地址”是从站的IP地址或其FQDN。
“_SNMPCOMMUNITY”是自定义SNMP团体字符串或密码。
正如我们之前提到的,我们将使用两个包来监视FTP和SSH服务。 这些包将检查公共可用的服务,应用程序和协议的状态,而没有任何特殊的访问要求。 为此,我们要将它们添加到主机定义文件中,在“use”行上,用逗号分隔。 我们可以尽可能多地使用,但我们需要记住,我们只需要监控什么是重要的。
以前/usr/local/shinken/etc/hosts/shinken_slave.cfg
看起来就像这样:
define host{
use linux,ftp,ssh
host_name Shinken_slave
address X.X.X.X
_SNMPCOMMUNITY DOmonitoring
}
如前所述,我们将为客户端使用自定义的SNMP团体字符串(密码)。 对于本指南,我们选择“DOmonitoring” - 它将在客户端上相同。
现在我们宣布了主机,让我们重新启动Shinken来处理更改:
service shinken restart
配置客户端:
我们将从我们的客户端安装SNMP开始。
apt-get install snmpd
然后我们配置Community字符串和侦听接口。
编辑/etc/snmp/snmpd.conf
和注释行:
agentAddress udp:127.0.0.1:161
然后,取消注释行:
agentAddress udp:161,udp6:[::1]:161
如前所述,我们将通过更改默认值“public”来更改客户端的SNMP社区(密码)。 为了本教程的目的,将选择“DOmonitoring”。
替换:
rocommunity public
使用:
rocommunity DOmonitoring
重新启动snmpd守护程序:
service snmpd restart
访问WebUI
现在,我们的监控服务器和客户端已配置。 我们需要使用我们的服务器的IP地址来访问网络进研UI http://XXXX:7767
。
一旦验证,我们将看到一个空白页,说“你还没有任何小部件?
我们稍后将使用自定义小部件配置它以获取所需的信息,但首先我们需要检查服务器是否配置了客户端并且可以访问它。
单击所有选项卡,您将看到所有受监视计算机的列表,包括服务器(localhost)。
在同一个列表上,你应该找到Shinken_slave like:
让我们回到仪表板,通过添加三个小部件创建一个。 由于我们只有一个监控的Droplet,我们将添加图,问题和关系小部件。
点击add a widget
,然后选择您从面板想要的。 默认情况下,小部件将获得localhost(监视服务器)状态和信息。 我们可以通过单击并指定“元素名称”来编辑它们以反映我们想要的主机,如下所示:
我们的监控服务器会关注我们的VPS并跟踪所有更改。 服务器运行时间越长,图形和统计信息就越有趣。