Shinken是一个开源计算机和网络监控框架,用python编写并与Nagios兼容。 Shinken可以在可以运行诸如Linux,Unix和Windows之类的python应用程序的所有操作系统上使用。 Shinken是由Jean Gabes写的,作为一个新的Nagios架构的概念证明,但是被Nagios作者所拒绝,成为一个独立的网络和系统监控工具,与Nagios保持兼容。
在本教程中,我将向您介绍如何从源安装Shinken,并将Linux主机添加到监视系统。 我将使用Ubuntu 16.04 Xenial Xerus作为Shinken服务器和受监视主机的操作系统。
第1步 - 安装新的服务器
Shinken是一个python框架,我们可以用pip安装它,或者从source安装它。 在这一步中,我们将从源头安装Shinken。
在开始安装Shinken之前,必须完成一些任务。
安装一些新的python软件包,并创建名为“shinken”的Linux用户:
sudo apt-get install python-setuptools python-pip python-pycurl
useradd -m -s /bin/bash shinken
从GitHub存储库下载Shinken源:
git clone https://github.com/naparuba/shinken.git
cd shinken/
然后使用以下命令安装Shinken:
git checkout 2.4.3
python setup.py install
接下来,为了获得更好的结果,我们需要从ubuntu存储库安装“python-cherrypy3”
sudo apt-get install python-cherrypy3
现在安装了Shinken,接下来我们添加Shinken在启动时启动并启动它:
update-rc.d shinken defaults
systemctl start shinken
第2步 - 安装新的Webui2
Webui2是可从shinken.io获得的Shinken Web界面。 安装Sshinken webui2的最简单的方法是使用shinken CLI命令(必须以shinken用户身份执行)。
登录到shinken用户:
su - shinken
初始化shinken配置文件 - 该命令将创建一个新的配置.shinken.ini:
shinken --init
并使用此shinken CLI命令安装webui2:
shinken install webui2
安装了Webui2,但是我们需要安装MongoDB和另一个python包。 以root身份运行命令:
sudo apt-get install mongodb
pip install pymongo>=3.0.3 requests arrow bottle==0.12.8
接下来,转到新的目录,并通过编辑'broker-master.cfg'文件添加新的webui2模块:
cd /etc/shinken/brokers/
vim broker-master.cfg
在第40行的模块中添加一个新选项:
modules webui2
保存文件并退出编辑器。
现在转到联系人目录,并为管理员配置编辑文件“admin.cfg”。
cd /etc/shinken/contacts/
vim admin.cfg
更改如下所示的值:
contact_name admin # Username 'admin'
password yourpass # Pass 'mypass'
保存并退出。
第3步 - 安装Nagios插件和新增软件包
在这一步中,我们将安装Nagios插件和一些Perl模块。 然后从shinken.io安装附加的shinken软件包来执行监控。
安装构建和安装Perl模块所需的Nagios-plugins和cpanminus:
sudo apt-get install nagios-plugins* cpanminus
使用cpanm命令安装这些Perl模块:
cpanm Net::SNMP
cpanm Time::HiRes
cpanm DBI
现在为utils.pm文件创建新链接,以便新建目录并为Log_File_Health创建一个新目录:
chmod u+s /usr/lib/nagios/plugins/check_icmp
ln -s /usr/lib/nagios/plugins/utils.pm /var/lib/shinken/libexec/
mkdir -p /var/log/rhosts/
touch /var/log/rhosts/remote-hosts.log
接下来,安装shinken软件包ssh和linux-snmp ,以便从shinken.io监控SSH和SNMP源:
su - shinken
shinken install ssh
shinken install linux-snmp
第4步 - 添加新的Linux主机/主机
我们将添加一个新的Linux主机,通过使用IP地址为192.168.1.121的Ubuntu 16.04服务器和主机名'host-one'进行监控。
连接到Linux主机之一:
ssh host1@192.168.1.121
从Ubuntu存储库安装snmp和snmpd软件包:
sudo apt-get install snmp snmpd
接下来,使用vim编辑配置文件'snmpd.conf'
vim /etc/snmp/snmpd.conf
评论第15行和取消注释17行:
#agentAddress udp:127.0.0.1:161
agentAddress udp:161,udp6:[::1]:161
注释行51和53,然后在下面添加新的行配置:
#rocommunity mypass default -V systemonly
#rocommunity6 mypass default -V systemonly
rocommunity mypass
保存并退出。
现在使用systemctl命令启动snmpd服务:
systemctl start snmpd
转到新服务器并通过在“hosts”目录中创建一个新文件来定义新的主机。
cd /etc/shinken/hosts/
vim host-one.cfg
粘贴配置如下:
define host{
use generic-host,linux-snmp,ssh
contact_groups admins
host_name host-one
address 192.168.1.121
_SNMPCOMMUNITY mypass # SNMP Pass Config on snmpd.conf
}
保存并退出。
编辑新建服务器上的SNMP配置:
vim /etc/shinken/resource.d/snmp.cfg
将'public'更改为'mypass' - 必须与您在客户端主机上的snmpd配置文件中使用的密码相同。
$SNMPCOMMUNITYREAD$=mypass
保存并退出。
现在重新启动两个服务器 - 新增服务器和受监控的Linux主机:
reboot
新的Linux主机已经成功添加到Shinken服务器。
第5步 - 访问新的Webui2
访问端口7677上的Shinken webui2(将URL中的IP替换为IP):
使用用户管理员和您的密码登录(您在admin.cfg配置文件中设置的密码)。
在Webui2中新建信息中心。
我们的2台服务器采用Shinken进行监控。
列出使用linux-snmp监控的所有服务。
所有主机和服务的状态。
第6步 - 新干线的常见问题
- NTP服务器的问题
当您使用NTP时出现此错误。
TimeSync - CRITICAL ( NTP CRITICAL: No response from the NTP server)
TimeSync - CRITICAL ( NTP CRITICAL: Offset unknown )
要解决此问题,请在所有Linux主机上安装ntp。
sudo apt-get install ntp ntpdate
编辑ntp配置:
vim /etc/ntp.conf
评论所有的池,并替换为:
#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst
pool 0.id.pool.ntp.org
pool 1.asia.pool.ntp.org
pool 0.asia.pool.ntp.org
接下来,在里面添加一个新行:
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict 192.168.1.120 #shinken server IP address
restrict ::1
注意 :192.168.1.120是Shinken服务器的IP地址。
保存并退出。
启动ntp并检查新的指示板:
ntpd
- 问题check_netint.pl找不到
将源从github仓库下载到shinken lib目录:
cd /var/lib/shinken/libexec/
wget https://raw.githubusercontent.com/Sysnove/shinken-plugins/master/check_netint.pl
chmod +x check_netint.pl
chown shinken:shinken check_netint.pl
- NetworkUsage的问题
有错误信息:
ERROR : Unknown interface eth\d+
检查你的网络接口并编辑linux-snmp模板。
在我的Ubuntu服务器上,网络接口是'enp0s8',而不是eth0,所以我得到这个错误。
用vim编辑linux-snmp模板包:
vim /etc/shinken/packs/linux-snmp/templates.cfg
将网络接口添加到第24行:
_NET_IFACES eth\d+|em\d+|enp0s8
保存并退出。