歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> 支持全平台的服務器監控報警系統 Shinken

支持全平台的服務器監控報警系統 Shinken

日期:2017/3/3 17:48:35   编辑:學習Linux

支持全平台的服務器監控報警系統 Shinken

支持全平台的服務器監控報警系統 Shinken


導讀Shinken 是一個用 Python 實現的開源的主機和網絡監控框架,並與 Nagios like 兼容,它可以運行在所有支持 Python 程序的操作系統上,比如說 Linux、Unix 和 Windows。Shinken 是 Jean Gabes 為了驗證一個新的 Nagios 架構思路而編寫。

在這篇教程中,我將會描述如何從源代碼編譯安裝 Shinken 和向監視系統中添加一台 Linux 主機。我將會以 Ubuntu 16.04 Xenial Xerus 操作系統來作為 Shinken 服務器和所監控的主機。

第一步 安裝 Shinken 服務器

Shinken 是一個 Python 框架,我們可以通過pip安裝或者從源碼來安裝它,在這一步中,我們將用源代碼編譯安裝 Shinken。

在我們開始安裝 Shinken 之前還需要完成幾個步驟。

安裝一些新的 Python 軟件包並創建一個名為shinken的系統用戶:

sudo apt-get install python-setuptools python-pip python-pycurluseradd -m -s /bin/bash shinken

從 GitHub 倉庫下載 Shinken 源代碼:

git clone https://github.com/naparuba/shinken.gitcd shinken/

然後用以下命令安裝 Shinken:

git checkout 2.4.3python setup.py install

然後,為了得到更好的效果,我們還需要從 Ubuntu 軟件庫中安裝python-cherrypy3軟件包:

sudo apt-get install python-cherrypy3

到這裡,Shinken 已經成功安裝,接下來我們將 Shinken 添加到系統啟動項並且啟動它:

update-rc.d shinken defaultssystemctl start shinken
第二步 安裝 Shinken Webui2

Webui2 是 Shinken 的 Web 界面(在 shinken.io 可以找到)。最簡單的安裝 Shinken webui2 的方法是使用shinken CLI 命令(必須作為shinken用戶執行)。

切換到 shinken 用戶:

su - shinken

初始化 shiken 配置文件,下面的命令將會創建一個新的配置文件.shinken.ini:

shinken --init

接下來用 shinken CLI 命令來安裝webui2:

shinken install webui2

支持全平台的服務器監控報警系統 Shinken支持全平台的服務器監控報警系統 Shinken

至此 webui2 已經安裝好,但是我們還需要安裝 MongoDB 和用pip來安裝另一個 Python 軟件包。在 root 下運行如下命令:

sudo apt-get install mongodbpip install pymongo>=3.0.3 requests arrow bottle==0.12.8

接下來,切換到 shinken 目錄下並且通過編輯broker-master.cfg文件來添加這個新的 webui2 模塊:

cd /etc/shinken/brokers/vim broker-master.cfg

在第 40 行添加一個模塊選項:

modules     webui2

保存文件並且退出編輯器。

現在進入contacts目錄下編輯admin.cfg來進行管理配置。

cd /etc/shinken/contacts/vim admin.cfg

按照如下修改:

contact_name    admin       # Username 'admin'password        yourpass    # Pass 'mypass'

保存和退出。

第三步 安裝 Nagios 插件和 Shinken 軟件包

在這一步中,我們將安裝 Nagios 插件和一些 Perl 模塊。然後從 shinken.io 安裝其他的軟件包來實現監視。

安裝 Nagios 插件和安裝 Perl 模塊所需要的cpanminus:

sudo apt-get install nagios-plugins* cpanminus

用cpanm命令來安裝 Perl 模塊。

cpanm Net::SNMPcpanm Time::HiRescpanm DBI

現在我們創建一個utils.pm文件的鏈接到 shinken 的目錄,並且為Log_File_Health創建了一個新的日志目錄 。

chmod u+s /usr/lib/nagios/plugins/check_icmpln -s /usr/lib/nagios/plugins/utils.pm /var/lib/shinken/libexec/mkdir -p /var/log/rhosts/touch /var/log/rhosts/remote-hosts.log

然後,從 shinken.io 安裝 shinken 軟件包ssh和linux-snmp來監視 SSH 和 SNMP :

su - shinkenshinken install sshshinken install linux-snmp
第四步 添加一個 Linux 主機 host-one

我們將添加一個新的將被監控的 Linux 主機,IP 地址為 192.168.1.121,主機名為 host-one 的 Ubuntu 16.04。

連接到 host-one 主機:

ssh [email protected]

從 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:161agentAddress udp:161,udp6:[::1]:161

注釋掉第 51 和 53 行,然後加一行新的配置,如下:

#rocommunity mypass  default    -V systemonly#rocommunity6 mypass  default   -V systemonlyrocommunity mypass

保存並退出。

現在用systemctl命令來啟動snmpd服務:

systemctl start snmpd

在 shinken 服務器上通過在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    }

保存並退出。

在 shinken 服務器上編輯 SNMP 配置文件。

vim /etc/shinken/resource.d/snmp.cfg

將public改為mypass -必須和你在客戶端snmpd配置文件中使用的密碼相同:

$SNMPCOMMUNITYREAD$=mypass

保存並退出。

現在將服務端和客戶端都重啟:

reboot

現在 Linux 主機已經被成功地添加到 shinken 服務器中了。

第五步 訪問 Shinken Webui2

在端口 7677 訪問 Shinken webui2 (將 URL 中的 IP 替換成你自己的 IP 地址):

http://192.168.1.120:7767

用管理員用戶和密碼登錄(你在 admin.cfg 文件中設置的)

支持全平台的服務器監控報警系統 Shinken支持全平台的服務器監控報警系統 Shinken

Webui2 中的 Shinken 面板:
支持全平台的服務器監控報警系統 Shinken支持全平台的服務器監控報警系統 Shinken

我們的兩個服務器正在被 Shinken 監控:
支持全平台的服務器監控報警系統 Shinken支持全平台的服務器監控報警系統 Shinken

列出所有被 linux-snmp 監控的服務:
支持全平台的服務器監控報警系統 Shinken支持全平台的服務器監控報警系統 Shinken

所有主機和服務的狀態信息:
支持全平台的服務器監控報警系統 Shinken支持全平台的服務器監控報警系統 Shinken

第6步 Shinken 的常見問題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

注釋掉所有 pools 並替換為:

#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 iburstpool 0.id.pool.ntp.orgpool 1.asia.pool.ntp.orgpool 0.asia.pool.ntp.org

然後,在新的一行添加如下限制規則:

# Local users may interrogate the ntp server more closely.restrict 127.0.0.1restrict 192.168.1.120 #shinken server IP addressrestrict ::1NOTE: 192.168.1.120 is the Shinken server IP address.

保存並退出。

啟動 ntp 並且檢查 Shinken 面板。

ntpd
check_netint.pl Not Found 問題

從 github 倉庫下載源代碼到 shinken 的庫目錄下:

cd /var/lib/shinken/libexec/wget https://raw.githubusercontent.com/Sysnove/shinken-plugins/master/check_netint.plchmod +x check_netint.plchown shinken:shinken check_netint.pl
網絡占用的問題

這是錯誤信息:

ERROR : Unknown interface eth/d+

檢查你的網絡接口並且編輯linux-snmp模版。

在我的 Ununtu 服務器,網卡是 “enp0s8”,而不是 eth0,所以我遇到了這個錯誤。
vim編輯linux-snmp模版:

vim /etc/shinken/packs/linux-snmp/templates.cfg

在第 24 行添加網絡接口信息:

NET_IFACES         eth/d+|em/d+|enp0s8

保存並退出。

原文來自:https://linux.cn/article-7821-1.html

本文地址:http://www.linuxprobe.com/server-monitoring-system.html


http://xxxxxx/Linuxjc/1184670.html TechArticle

Copyright © Linux教程網 All Rights Reserved