在Ubuntu 16.04上使用Shinken进行服务器监控

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软件包sshlinux-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):

http://192.168.1.120:7767

使用用户管理员和您的密码登录(您在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

保存并退出。

参考文献

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏