支援全平台的伺服器監控警示系統 Shinken

來源:互聯網
上載者:User

支援全平台的伺服器監控警示系統 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

至此 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 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: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 檔案中設定的)

Webui2 中的 Shinken 面板:

我們的兩個伺服器正在被 Shinken 監控:

列出所有被 linux-snmp 監控的服務:

所有主機和服務的狀態資訊:

第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


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.