mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-25 23:11:02 +08:00
PUB:20160914 Server Monitoring with Shinken on Ubuntu 16.04
@LinuxBars 这篇比较简单,似可更细心些。
This commit is contained in:
parent
10d0a814ff
commit
3152fd1f13
@ -1,18 +1,17 @@
|
|||||||
Ubuntu 16.04上的服务器监控报警系统 Shinken
|
在 Ubuntu 16.04 上安装和使用服务器监控报警系统 Shinken
|
||||||
=====
|
=====
|
||||||
|
|
||||||
|
Shinken 是一个用 Python 实现的开源的主机和网络监控框架,并与 Nagios like 兼容,它可以运行在所有支持 Python 程序的操作系统上,比如说 Linux、Unix 和 Windows,Shinken 是 Jean Gabes 为了验证一个新的 Nagios 架构思路而编写,但是这个想法被 Nagios 的作者拒绝后成为了一个独立的网络系统监视软件,并保持了与 Nagios 的兼容。
|
||||||
|
|
||||||
Shinken 是一个用 python 实现的,开源的主机和网络监视的,Nagios like 的框架,他可以运行在所有支持 python 程序的操作系统上,比如说 Linux,Unix 和Windows,Shinken 由 Jean Gabes 编写作为一个新的 Nagios 架构概念证明,但是这个想法被 Nagios 的作者拒绝而后成为了一个独立的类 Nagios 网络系统监视软件。
|
在这篇教程中,我将会描述如何从源代码编译安装 Shinken 和向监视系统中添加一台 Linux 主机。我将会以 Ubuntu 16.04 Xenial Xerus 操作系统来作为 Shinken 服务器和所监控的主机。
|
||||||
|
|
||||||
在这篇教程中,我将会描述如何源代码编译安装 Shinken 和向监视系统中添加一台 Linux 主机。我将会以 Ubuntu 16.04 Xenial Xerus 操作系统来作为 Shinken 服务器和监控端。
|
### 第一步 安装 Shinken 服务器
|
||||||
|
|
||||||
### 第一步-安装 Shinken 服务器
|
Shinken 是一个 Python 框架,我们可以通过 `pip` 安装或者从源码来安装它,在这一步中,我们将用源代码编译安装 Shinken。
|
||||||
|
|
||||||
Shinken 是一个 python 框架,我们可以通过 pip 或者源码来安装他,在这一步中,我们将用源代码编译安装 Shinken。
|
|
||||||
|
|
||||||
在我们开始安装 Shinken 之前还需要完成几个步骤。
|
在我们开始安装 Shinken 之前还需要完成几个步骤。
|
||||||
|
|
||||||
安装一些新的 python 软件包和创建 “shinken” 系统用户:
|
安装一些新的 Python 软件包并创建一个名为 `shinken` 的系统用户:
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo apt-get install python-setuptools python-pip python-pycurl
|
sudo apt-get install python-setuptools python-pip python-pycurl
|
||||||
@ -33,22 +32,22 @@ git checkout 2.4.3
|
|||||||
python setup.py install
|
python setup.py install
|
||||||
```
|
```
|
||||||
|
|
||||||
然后,为了得到更好的效果,我们还需要在 Ubuntu 的软件库中安装 “python-cherrypy3“ 软件包:
|
然后,为了得到更好的效果,我们还需要从 Ubuntu 软件库中安装 `python-cherrypy3` 软件包:
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo apt-get install python-cherrypy3
|
sudo apt-get install python-cherrypy3
|
||||||
```
|
```
|
||||||
|
|
||||||
到这里,Shinken 已经成功安装,接下来我们将 Shinken 添加到系统启动项并且启动他:
|
到这里,Shinken 已经成功安装,接下来我们将 Shinken 添加到系统启动项并且启动它:
|
||||||
|
|
||||||
```
|
```
|
||||||
update-rc.d shinken defaults
|
update-rc.d shinken defaults
|
||||||
systemctl start shinken
|
systemctl start shinken
|
||||||
```
|
```
|
||||||
|
|
||||||
### 第二部-安装 Shinken Webui2
|
### 第二步 安装 Shinken Webui2
|
||||||
|
|
||||||
Webui2 是 Shinken 的 web 界面(在 shinken.io 可以找到)。最简单的安装 Sshinken webui2 的方法是使用shinken CLI 命令(必须作为 shinken 用户执行)。
|
Webui2 是 Shinken 的 Web 界面(在 shinken.io 可以找到)。最简单的安装 Shinken webui2 的方法是使用shinken CLI 命令(必须作为 `shinken` 用户执行)。
|
||||||
|
|
||||||
切换到 shinken 用户:
|
切换到 shinken 用户:
|
||||||
|
|
||||||
@ -56,13 +55,13 @@ Webui2 是 Shinken 的 web 界面(在 shinken.io 可以找到)。最简单
|
|||||||
su - shinken
|
su - shinken
|
||||||
```
|
```
|
||||||
|
|
||||||
初始化 shiken 配置文件-下面的命令将会创建一个新的配置文件 .shinken.ini:
|
初始化 shiken 配置文件,下面的命令将会创建一个新的配置文件 `.shinken.ini` :
|
||||||
|
|
||||||
```
|
```
|
||||||
shinken --init
|
shinken --init
|
||||||
```
|
```
|
||||||
|
|
||||||
接下来用 shinken CLI 命令来安装 webui2:
|
接下来用 shinken CLI 命令来安装 `webui2`:
|
||||||
|
|
||||||
```
|
```
|
||||||
shinken install webui2
|
shinken install webui2
|
||||||
@ -70,14 +69,14 @@ shinken install webui2
|
|||||||
|
|
||||||
![](https://www.howtoforge.com/images/server-monitoring-with-shinken-on-ubuntu-16-04/6.png)
|
![](https://www.howtoforge.com/images/server-monitoring-with-shinken-on-ubuntu-16-04/6.png)
|
||||||
|
|
||||||
到现在 webui2 已经被安装,但是我们还需要用 pip 来安装安装 MongoDB 和另一个 python 软件包。在 root 下运行如下命令:
|
至此 webui2 已经安装好,但是我们还需要安装 MongoDB 和用 `pip` 来安装另一个 Python 软件包。在 root 下运行如下命令:
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo apt-get install mongodb
|
sudo apt-get install mongodb
|
||||||
pip install pymongo>=3.0.3 requests arrow bottle==0.12.8
|
pip install pymongo>=3.0.3 requests arrow bottle==0.12.8
|
||||||
```
|
```
|
||||||
|
|
||||||
接下来,切换到 shinken 目录下并且通过编辑 broker-master.cfg 文件来添加这个新的 webui2 模块:
|
接下来,切换到 shinken 目录下并且通过编辑 `broker-master.cfg` 文件来添加这个新的 webui2 模块:
|
||||||
|
|
||||||
```
|
```
|
||||||
cd /etc/shinken/brokers/
|
cd /etc/shinken/brokers/
|
||||||
@ -90,9 +89,9 @@ vim broker-master.cfg
|
|||||||
modules webui2
|
modules webui2
|
||||||
```
|
```
|
||||||
|
|
||||||
保存文件并且退出编辑器
|
保存文件并且退出编辑器。
|
||||||
|
|
||||||
现在进入 contacts 目录下编辑 admin.cfg 来进行管理配置。
|
现在进入 `contacts` 目录下编辑 `admin.cfg` 来进行管理配置。
|
||||||
|
|
||||||
```
|
```
|
||||||
cd /etc/shinken/contacts/
|
cd /etc/shinken/contacts/
|
||||||
@ -108,17 +107,17 @@ password yourpass # Pass 'mypass'
|
|||||||
|
|
||||||
保存和退出。
|
保存和退出。
|
||||||
|
|
||||||
### 第三步-安装 Nagios 插件和 Shinken 软件包
|
### 第三步 安装 Nagios 插件和 Shinken 软件包
|
||||||
|
|
||||||
在这一步中,我们将安装 Nagios 插件和一些 perl 模块。然后从 shinken.io 安装其他的软件包来实现监视。
|
在这一步中,我们将安装 Nagios 插件和一些 Perl 模块。然后从 shinken.io 安装其他的软件包来实现监视。
|
||||||
|
|
||||||
安装 Nagios 插件和安装 perl 模块所需要的 cpanminus:
|
安装 Nagios 插件和安装 Perl 模块所需要的 `cpanminus`:
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo apt-get install nagios-plugins* cpanminus
|
sudo apt-get install nagios-plugins* cpanminus
|
||||||
```
|
```
|
||||||
|
|
||||||
用 cpanm 命令来安装 perl 模块。
|
用 `cpanm` 命令来安装 Perl 模块。
|
||||||
|
|
||||||
```
|
```
|
||||||
cpanm Net::SNMP
|
cpanm Net::SNMP
|
||||||
@ -126,7 +125,7 @@ cpanm Time::HiRes
|
|||||||
cpanm DBI
|
cpanm DBI
|
||||||
```
|
```
|
||||||
|
|
||||||
现在我们创建了一个到 shinken 的目录的链接并且为日志文件创建了一个新的目录。
|
现在我们创建一个 `utils.pm` 文件的链接到 shinken 的目录,并且为 `Log_File_Health` 创建了一个新的日志目录 。
|
||||||
|
|
||||||
```
|
```
|
||||||
chmod u+s /usr/lib/nagios/plugins/check_icmp
|
chmod u+s /usr/lib/nagios/plugins/check_icmp
|
||||||
@ -135,7 +134,7 @@ mkdir -p /var/log/rhosts/
|
|||||||
touch /var/log/rhosts/remote-hosts.log
|
touch /var/log/rhosts/remote-hosts.log
|
||||||
```
|
```
|
||||||
|
|
||||||
然后,安装 shinken 软件包 ssh 和 linux-snmp 用来监视,从 shinken.io 来安装 SSH 和 SNMP :
|
然后,从 shinken.io 安装 shinken 软件包 `ssh` 和 `linux-snmp` 来监视 SSH 和 SNMP :
|
||||||
|
|
||||||
```
|
```
|
||||||
su - shinken
|
su - shinken
|
||||||
@ -143,9 +142,10 @@ shinken install ssh
|
|||||||
shinken install linux-snmp
|
shinken install linux-snmp
|
||||||
```
|
```
|
||||||
|
|
||||||
### 第四步-添加一个 Linux 主机
|
### 第四步 添加一个 Linux 主机 host-one
|
||||||
|
|
||||||
|
我们将添加一个新的将被监控的 Linux 主机,IP 地址为 192.168.1.121,主机名为 host-one 的 Ubuntu 16.04。
|
||||||
|
|
||||||
我们将添加一个新的 Linux 主机,它将被一台 IP 地址为 192.168.1.121,主机名为 host-one 的 Ubuntu 16.04 服务器监控。
|
|
||||||
连接到 host-one 主机:
|
连接到 host-one 主机:
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -158,20 +158,20 @@ ssh host1@192.168.1.121
|
|||||||
sudo apt-get install snmp snmpd
|
sudo apt-get install snmp snmpd
|
||||||
```
|
```
|
||||||
|
|
||||||
然后,用 vim 编辑 snmpd.conf 配置文件:
|
然后,用 `vim` 编辑 `snmpd.conf` 配置文件:
|
||||||
|
|
||||||
```
|
```
|
||||||
vim /etc/snmp/snmpd.conf
|
vim /etc/snmp/snmpd.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
注释掉第 15 行和取消注释第 17 行:
|
注释掉第 15 行并取消注释第 17 行:
|
||||||
|
|
||||||
```
|
```
|
||||||
#agentAddress udp:127.0.0.1:161
|
#agentAddress udp:127.0.0.1:161
|
||||||
agentAddress udp:161,udp6:[::1]:161
|
agentAddress udp:161,udp6:[::1]:161
|
||||||
```
|
```
|
||||||
|
|
||||||
注释掉第 51 和 53 行,然后添加如下配置:
|
注释掉第 51 和 53 行,然后加一行新的配置,如下:
|
||||||
|
|
||||||
```
|
```
|
||||||
#rocommunity mypass default -V systemonly
|
#rocommunity mypass default -V systemonly
|
||||||
@ -180,14 +180,15 @@ agentAddress udp:161,udp6:[::1]:161
|
|||||||
rocommunity mypass
|
rocommunity mypass
|
||||||
```
|
```
|
||||||
|
|
||||||
保存和退出。
|
保存并退出。
|
||||||
|
|
||||||
|
现在用 `systemctl` 命令来启动 `snmpd` 服务:
|
||||||
|
|
||||||
现在启动用 systemctl 命令来启动 snmpd 服务:
|
|
||||||
```
|
```
|
||||||
systemctl start snmpd
|
systemctl start snmpd
|
||||||
```
|
```
|
||||||
|
|
||||||
通过在 hosts 文件夹下创建新的文件来定义一个新的主机:
|
在 shinken 服务器上通过在 `hosts` 文件夹下创建新的文件来定义一个新的主机:
|
||||||
|
|
||||||
```
|
```
|
||||||
cd /etc/shinken/hosts/
|
cd /etc/shinken/hosts/
|
||||||
@ -206,7 +207,7 @@ define host{
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
保存和退出。
|
保存并退出。
|
||||||
|
|
||||||
在 shinken 服务器上编辑 SNMP 配置文件。
|
在 shinken 服务器上编辑 SNMP 配置文件。
|
||||||
|
|
||||||
@ -214,13 +215,13 @@ define host{
|
|||||||
vim /etc/shinken/resource.d/snmp.cfg
|
vim /etc/shinken/resource.d/snmp.cfg
|
||||||
```
|
```
|
||||||
|
|
||||||
将 public 改为 mypass -必须和你在客户端 snmpd 配置文件中使用的密码相同:
|
将 `public` 改为 `mypass` -必须和你在客户端 `snmpd` 配置文件中使用的密码相同:
|
||||||
|
|
||||||
```
|
```
|
||||||
$SNMPCOMMUNITYREAD$=mypass
|
$SNMPCOMMUNITYREAD$=mypass
|
||||||
```
|
```
|
||||||
|
|
||||||
保存和退出。
|
保存并退出。
|
||||||
|
|
||||||
现在将服务端和客户端都重启:
|
现在将服务端和客户端都重启:
|
||||||
|
|
||||||
@ -230,37 +231,37 @@ reboot
|
|||||||
|
|
||||||
现在 Linux 主机已经被成功地添加到 shinken 服务器中了。
|
现在 Linux 主机已经被成功地添加到 shinken 服务器中了。
|
||||||
|
|
||||||
### 第五步-访问 Shinken Webui2
|
### 第五步 访问 Shinken Webui2
|
||||||
|
|
||||||
访问 Shinken webui2 在端口 7677(将 URL 中的 IP 替换成你自己的 IP 地址):
|
在端口 7677 访问 Shinken webui2 (将 URL 中的 IP 替换成你自己的 IP 地址):
|
||||||
|
|
||||||
```
|
```
|
||||||
http://192.168.1.120:7767
|
http://192.168.1.120:7767
|
||||||
```
|
```
|
||||||
|
|
||||||
用管理员用户和密码登陆(你在 admin.cfg 文件中设置的)
|
用管理员用户和密码登录(你在 admin.cfg 文件中设置的)
|
||||||
|
|
||||||
![](https://www.howtoforge.com/images/server-monitoring-with-shinken-on-ubuntu-16-04/1.png)
|
![](https://www.howtoforge.com/images/server-monitoring-with-shinken-on-ubuntu-16-04/1.png)
|
||||||
|
|
||||||
Webui2 中的 Shinken 面板。
|
Webui2 中的 Shinken 面板:
|
||||||
|
|
||||||
![](https://www.howtoforge.com/images/server-monitoring-with-shinken-on-ubuntu-16-04/2.png)
|
![](https://www.howtoforge.com/images/server-monitoring-with-shinken-on-ubuntu-16-04/2.png)
|
||||||
|
|
||||||
我们的两个服务器正在被 Shinken 监控。
|
我们的两个服务器正在被 Shinken 监控:
|
||||||
|
|
||||||
![](https://www.howtoforge.com/images/server-monitoring-with-shinken-on-ubuntu-16-04/3.png)
|
![](https://www.howtoforge.com/images/server-monitoring-with-shinken-on-ubuntu-16-04/3.png)
|
||||||
|
|
||||||
列出所有被 linux-snmp 监控的服务。
|
列出所有被 linux-snmp 监控的服务:
|
||||||
|
|
||||||
![](https://www.howtoforge.com/images/server-monitoring-with-shinken-on-ubuntu-16-04/4.png)
|
![](https://www.howtoforge.com/images/server-monitoring-with-shinken-on-ubuntu-16-04/4.png)
|
||||||
|
|
||||||
所有主机和服务的状态信息。
|
所有主机和服务的状态信息:
|
||||||
|
|
||||||
|
|
||||||
![](https://www.howtoforge.com/images/server-monitoring-with-shinken-on-ubuntu-16-04/5.png)
|
![](https://www.howtoforge.com/images/server-monitoring-with-shinken-on-ubuntu-16-04/5.png)
|
||||||
|
|
||||||
### 第6步- Shinken 常见的问题
|
### 第6步 Shinken 的常见问题
|
||||||
|
|
||||||
- NTP 服务器相关的问题
|
#### NTP 服务器相关的问题
|
||||||
|
|
||||||
当你得到如下的 NTP 错误提示
|
当你得到如下的 NTP 错误提示
|
||||||
|
|
||||||
@ -269,7 +270,7 @@ TimeSync - CRITICAL ( NTP CRITICAL: No response from the NTP server)
|
|||||||
TimeSync - CRITICAL ( NTP CRITICAL: Offset unknown )
|
TimeSync - CRITICAL ( NTP CRITICAL: Offset unknown )
|
||||||
```
|
```
|
||||||
|
|
||||||
为了解决这个问题,在所有 Linux 主机上安装 ntp
|
为了解决这个问题,在所有 Linux 主机上安装 ntp。
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo apt-get install ntp ntpdate
|
sudo apt-get install ntp ntpdate
|
||||||
@ -304,7 +305,7 @@ restrict ::1
|
|||||||
NOTE: 192.168.1.120 is the Shinken server IP address.
|
NOTE: 192.168.1.120 is the Shinken server IP address.
|
||||||
```
|
```
|
||||||
|
|
||||||
保存和退出。
|
保存并退出。
|
||||||
|
|
||||||
启动 ntp 并且检查 Shinken 面板。
|
启动 ntp 并且检查 Shinken 面板。
|
||||||
|
|
||||||
@ -312,7 +313,7 @@ NOTE: 192.168.1.120 is the Shinken server IP address.
|
|||||||
ntpd
|
ntpd
|
||||||
```
|
```
|
||||||
|
|
||||||
- check_netint.pl Not Found问题
|
#### check_netint.pl Not Found 问题
|
||||||
|
|
||||||
从 github 仓库下载源代码到 shinken 的库目录下:
|
从 github 仓库下载源代码到 shinken 的库目录下:
|
||||||
|
|
||||||
@ -323,7 +324,7 @@ chmod +x check_netint.pl
|
|||||||
chown shinken:shinken check_netint.pl
|
chown shinken:shinken check_netint.pl
|
||||||
```
|
```
|
||||||
|
|
||||||
- 网路占用率的问题
|
#### 网络占用的问题
|
||||||
|
|
||||||
这是错误信息:
|
这是错误信息:
|
||||||
|
|
||||||
@ -331,11 +332,11 @@ chown shinken:shinken check_netint.pl
|
|||||||
ERROR : Unknown interface eth\d+
|
ERROR : Unknown interface eth\d+
|
||||||
```
|
```
|
||||||
|
|
||||||
检查你的网络接口并且编辑 linux-snmp模版。
|
检查你的网络接口并且编辑 `linux-snmp` 模版。
|
||||||
|
|
||||||
在我的 Ununtu 服务器,网卡是 “enp0s8”,而不是 eth0,所以我遇到了这个错误。
|
在我的 Ununtu 服务器,网卡是 “enp0s8”,而不是 eth0,所以我遇到了这个错误。
|
||||||
|
|
||||||
vim 编辑 linux-snmp 模版:
|
`vim` 编辑 `linux-snmp` 模版:
|
||||||
|
|
||||||
```
|
```
|
||||||
vim /etc/shinken/packs/linux-snmp/templates.cfg
|
vim /etc/shinken/packs/linux-snmp/templates.cfg
|
||||||
@ -347,13 +348,15 @@ vim /etc/shinken/packs/linux-snmp/templates.cfg
|
|||||||
_NET_IFACES eth\d+|em\d+|enp0s8
|
_NET_IFACES eth\d+|em\d+|enp0s8
|
||||||
```
|
```
|
||||||
|
|
||||||
|
保存并退出。
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
via: https://www.howtoforge.com/tutorial/server-monitoring-with-shinken-on-ubuntu-16-04/
|
via: https://www.howtoforge.com/tutorial/server-monitoring-with-shinken-on-ubuntu-16-04/
|
||||||
|
|
||||||
作者:[Muhammad Arul][a]
|
作者:[Muhammad Arul][a]
|
||||||
译者:[LinuxBars](https://github.com/LinuxBars)
|
译者:[LinuxBars](https://github.com/LinuxBars)
|
||||||
校对:[校对者ID](https://github.com/校对者ID)
|
校对:[wxy](https://github.com/wxy)
|
||||||
|
|
||||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||||
|
|
Loading…
Reference in New Issue
Block a user