国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
使用 Nagios 監(jiān)視企業(yè)集群

安裝 Nagios 有效地監(jiān)視數(shù)據(jù)中心,讓 Ganglia 和 Nagios 能夠結(jié)合工作


這是使用開源工具 Ganglia 和 Nagios 手動(dòng)監(jiān)視數(shù)據(jù)中心 系列 的第二篇文章。在第 2 部分中,將學(xué)習(xí)如何安裝和配置 Nagios、常見的開源計(jì)算機(jī)系統(tǒng)、觀察托管和服務(wù)的網(wǎng)絡(luò)監(jiān)視應(yīng)用程序軟件,并學(xué)習(xí)如何在出現(xiàn)問題時(shí)警告用戶。本文還演示如何結(jié)合 Nagios 和 Ganglia(接 Ganglia 和 Nagios,第 1 部分:用 Ganglia 監(jiān)視企業(yè)集群),如何為 Nagios 標(biāo)準(zhǔn)集群、網(wǎng)格、云添加兩個(gè)額外特性,以幫助監(jiān)視網(wǎng)絡(luò)交換機(jī)和資源管理器。

第 1 部分回顧

數(shù)據(jù)中心正在不斷增長(zhǎng),而管理職員卻在縮減,因此公司迫切需要監(jiān)視計(jì)算資源的工具。本系列的第 1 部分討論了結(jié)合使用 Ganglia 和 Nagios 的好處,然后向您展示了如何使用自定義的監(jiān)視腳本安裝和擴(kuò)展 Ganglia。

回顧 Ganglia 和 Nagios,第 1 部分:用 Ganglia 監(jiān)視企業(yè)集群 中的多個(gè)監(jiān)視 定義(取決于運(yùn)行的環(huán)境):

  • 如果在集群上運(yùn)行應(yīng)用程序,您會(huì)想:“我的作業(yè)何時(shí)運(yùn)行?何時(shí)完成?相比上一次它的執(zhí)行如何?”

  • 如果是網(wǎng)絡(luò)操作中心的操作員,您會(huì)想:“什么時(shí)候會(huì)看到紅燈,表示需要修復(fù)某些內(nèi)容或者需要安排某個(gè)服務(wù)?”

  • 如果在系統(tǒng)工程組,您會(huì)想:“我們的機(jī)器如何執(zhí)行?所有的服務(wù)功能都正常嗎?趨勢(shì)是什么?我們?nèi)绾胃玫乩糜?jì)算資源?”

您可以找到代碼來監(jiān)視希望監(jiān)視的內(nèi)容,也可以 從開源代碼中找到類似功能。使用開源監(jiān)視工具最困難的地方在于,實(shí)現(xiàn)安裝后如何找出最適合所在環(huán)境的配置。開源(和商業(yè))監(jiān)視軟件有兩個(gè)主要問題如下:

  1. 沒有任何工具可以監(jiān)視您所需的一切內(nèi)容。

  2. 要讓工具完全適應(yīng)您的需求需要做許多自定義工作。

Ganglia 是一個(gè)監(jiān)視數(shù)據(jù)中心的工具,頻繁用于高性能計(jì)算環(huán)境中(但是對(duì)于其他環(huán)境,比如云、渲染場(chǎng)、寄存中心,它的吸引力也是很大的)。它更重視收集標(biāo)準(zhǔn)然后隨時(shí)跟蹤,而 Nagios 主要關(guān)注警告機(jī)制。Ganglia 用來請(qǐng)求代理在每個(gè)主機(jī)上運(yùn)行,以收集主機(jī)信息,但是通過 Ganglia 的欺騙機(jī)制,現(xiàn)在可以輕松獲取所有標(biāo)準(zhǔn)。Ganglia 沒有內(nèi)置的通知機(jī)制,但是它可以在目標(biāo)主機(jī)上支持可擴(kuò)展的內(nèi)置代理。

學(xué)習(xí)了第 1 部分之后,您可能已經(jīng)安裝了 Ganglia,也能回答不同用戶組可能咨詢的監(jiān)視問題。您也可能已經(jīng)配置了基本的 Ganglia 設(shè)置,使用 Python 模塊擴(kuò)展 IPMI(Intelligent Platform Management Interface,智能平臺(tái)管理界面)的功能,并使用 Ganglia 主機(jī)欺騙機(jī)制監(jiān)視 IPMI。

現(xiàn)在,讓我們了解一下 Nagios。

Nagios 簡(jiǎn)介

該部分演示如何安裝 Nagios 并綁定 Ganglia。我們將向 Nagios 添加兩個(gè)特性,幫助您監(jiān)視標(biāo)準(zhǔn)集群、網(wǎng)格、云(以及任何擴(kuò)展計(jì)算的功能)。這兩個(gè)特性的作用是:

  • 監(jiān)視網(wǎng)絡(luò)交換機(jī)

  • 監(jiān)視資源管理器

在本例中,我們將監(jiān)視 TORQUE。完成之后,您將擁有一個(gè)控制監(jiān)視整個(gè)數(shù)據(jù)中心系統(tǒng)的框架。

Nagios 與 Ganglia 一樣,常用于 HPC 和其他環(huán)境,但是 Nagios 更加關(guān)注警告機(jī)制,Ganglia 則更加關(guān)注收集和跟蹤指標(biāo)。Nagios 以前只是從目標(biāo)主機(jī)收集信息,但最近開發(fā)了可以在主機(jī)上運(yùn)行代理的插件。Nagios 內(nèi)置了一個(gè)通知系統(tǒng)。

現(xiàn)在我們安裝 Nagios 并安裝基本的 HPC Linux? 監(jiān)視系統(tǒng)集群以滿足不同的監(jiān)視需求:

  • 應(yīng)用程序開發(fā)人員現(xiàn)在可以看到隊(duì)列的飽和程度和運(yùn)行作業(yè)的可用節(jié)點(diǎn)。

  • 系統(tǒng)失敗時(shí)會(huì)警告 NOC,并在 Nagios Web 界面看到閃爍的紅點(diǎn)。如果節(jié)點(diǎn)異?;蛘邷囟忍?,NOC 還將收到電子郵件通知。

  • 系統(tǒng)工程師可以繪制數(shù)據(jù),報(bào)告集群利用率,制定未來采購(gòu)硬件的決策。

安裝 Nagios

在機(jī)器上安裝 Nagios 的方法可以從 Internet 查詢。因?yàn)槲医?jīng)常需要在不同的環(huán)境中安裝,所以為此編寫了一個(gè)腳本。

首先需要 下載兩個(gè)包

  • Nagios(測(cè)試了 3.0.6 版本)

  • Nagios-plugins(測(cè)試了 1.4.13 版本)

插件包括:

  • Nagios Event Log,可以監(jiān)視 Windows 事件日志

  • NRPE,提供了許多 Ganglia 功能

獲取源代碼并放在目錄中。為了演示,我在 /tmp 中放置了三個(gè)文件:

  • nagios-3.0.6.tar.gz

  • nagios-plugins-1.4.13.tar.gz

  • naginstall.sh

清單 1 展示了 naginstall.sh 安裝腳本:

            #!/bin/ksh            NAGIOSSRC=nagios-3.0.6            NAGIOSPLUGINSRC=nagios-plugins-1.4.13            NAGIOSCONTACTSCFG=/usr/local/nagios/etc/objects/contacts.cfg            NAGIOSPASSWD=/usr/local/nagios/etc/htpasswd.users            PASSWD=cluster            OS=foo            function buildNagiosPlug {            if [ -e $NAGIOSPLUGINSRC.tar.gz ]            then            echo "found $NAGIOSPLUGINSRC.tar.gz  building and installing Nagios"            else            echo "could not find $NAGIOSPLUGINSRC.tar.gz in current directory."            echo "Please run $0 in the same directory as the source files."            exit 1            fi            echo "Extracting Nagios Plugins..."            tar zxf $NAGIOSPLUGINSRC.tar.gz            cd $NAGIOSPLUGINSRC            echo "Configuring Nagios Plugins..."            if ./configure --with-nagios-user=nagios --with-nagios-group=nagios            -prefix=/usr/local/nagios > config.LOG.$$ 2>&1            then            echo "Making Nagios Plugins..."            if make -j8 > make.LOG.$$ 2>&1            then            make install > make.LOG.$$ 2>&1            else            echo "Make failed of Nagios plugins.  See $NAGIOSPLUGINSRC/make.LOG.$$"            exit 1            fi            else            echo "configure of Nagios plugins failed.  See config.LOG.$$"            exit 1            fi            echo "Successfully built and installed Nagios Plugins!"            cd ..            }            function buildNagios {            if [ -e $NAGIOSSRC.tar.gz ]            then            echo "found $NAGIOSSRC.tar.gz  building and installing Nagios"            else            echo "could not find $NAGIOSSRC.tar.gz in current directory."            echo "Please run $0 in the same directory as the source files."            exit 1            fi            echo "Extracting Nagios..."            tar zxf $NAGIOSSRC.tar.gz            cd $NAGIOSSRC            echo "Configuring Nagios..."            if ./configure --with-command-group=nagcmd > config.LOG.$$ 2>&1            then            echo "Making Nagios..."            if make all -j8 > make.LOG.$$ 2>&1            then            make install > make.LOG.$$ 2>&1            make install-init > make.LOG.$$ 2>&1            make install-config > make.LOG.$$ 2>&1            make install-commandmode > make.LOG.$$ 2>&1            make install-webconf > make.LOG.$$ 2>&1            else            echo "make all failed.  See log:"            echo "$NAGIOSSRC/make.LOG.$$"            exit 1            fi            else            echo "configure of Nagios failed.  Please read $NAGIOSSRC/config.LOG.$$ for details."            exit 1            fi            echo "Done Making Nagios!"            cd ..            }            function configNagios {            echo "We'll now configure Nagios."            LOOP=1            while [[ $LOOP -eq 1 ]]            do            echo "You'll need to put in a user name.  This should be the person"            echo "who will be receiving alerts.  This person should have an account"            echo "on this server.  "            print "Type in the userid of the person who will receive alerts (e.g. bob)> \c"            read NAME            print "What is ${NAME}'s email?> \c"            read EMAIL            echo            echo            echo "Nagios alerts will be sent to $NAME at $EMAIL"            print "Is this correct? [y/N] \c"            read YN            if [[ "$YN" = "y" ]]            then            LOOP=0            fi            done            if [ -r $NAGIOSCONTACTSCFG ]            then            perl -pi -e "s/nagiosadmin/$NAME/g" $NAGIOSCONTACTSCFG            EMAIL=$(echo $EMAIL | sed s/\@/\\\\@/g)            perl -pi -e "s/nagios\@localhost/$EMAIL/g" $NAGIOSCONTACTSCFG            else            echo "$NAGIOSCONTACTSCFG does not exist"            exit 1            fi            echo "setting ${NAME}'s password to be 'cluster' in Nagios"            echo "    you can change this later by running: "            echo "    htpasswd -c $NAGIOSPASSWD $Name)'"            htpasswd -bc $NAGIOSPASSWD $NAME cluster            if [ "$OS" = "rh" ]            then            service httpd restart            fi            }            function preNagios {            if [ "$OS" = "rh" ]            then            echo "making sure prereqs are installed"            yum -y install httpd gcc glibc glibc-common gd gd-devel perl-TimeDate            /usr/sbin/useradd -m nagios            echo $PASSWD | passwd --stdin nagios            /usr/sbin/groupadd nagcmd            /usr/sbin/usermod -a -G nagcmd nagios            /usr/sbin/usermod -a -G nagcmd apache            fi            }            function postNagios {            if [ "$OS" = "rh" ]            then            chkconfig --add nagios            chkconfig nagios on            # touch this file so that if it doesn't exist we won't get errors            touch /var/www/html/index.html            service nagios start            fi            echo "You may now be able to access Nagios at the URL below:"            echo "http://localhost/nagios"            }            if [ -e /etc/redhat-release ]            then            echo "installing monitoring on Red Hat system"            OS=rh            fi            # make sure you're root:            ID=$(id -u)            if [ "$ID" != "0" ]            then            echo "Must run this as root!"            exit            fi            preNagios            buildNagios            buildNagiosPlug            configNagios            postNagios            

運(yùn)行腳本 ./naginstall.sh

該代碼在 Red Hat 系統(tǒng)上能正常運(yùn)行,如果您安裝了本系列 Ganglia 和 Nagios,第 1 部分:用 Ganglia 監(jiān)視企業(yè)集群 中提到的所有依賴關(guān)系,那么應(yīng)該也能正常運(yùn)行。運(yùn)行 naginstall.sh 時(shí),提示 Nagios 應(yīng)該發(fā)送警告的用戶。稍后可以添加其他用戶。大部分組織都有一個(gè)郵件別名以組的形式發(fā)送郵件。

如果安裝時(shí)出現(xiàn)問題,可以查看 Nagios 網(wǎng)頁(鏈接見 參考資料)并將其添加到郵件列表。以我的經(jīng)驗(yàn)看來,像 Nagios 和 Ganglia 這樣成功的大部分包都很容易安裝。

配置 Nagios

假設(shè)腳本運(yùn)行正常并且已經(jīng)安裝了所有內(nèi)容。那么在腳本成功退出時(shí),您應(yīng)該能夠打開 Web 瀏覽器并看到 localhost 已經(jīng)被監(jiān)視了(如圖 1 所示):

通過單擊 Service Detail,您可以看到我們監(jiān)視本地機(jī)器上的哪些服務(wù)(比如 Ping、HTTP、加載、用戶等等),這是默認(rèn)配置的。

讓我們看看名為 Root Partition 的服務(wù)。該服務(wù)在根分區(qū)滿時(shí)發(fā)出警告。通過查看安裝時(shí)生成的配置文件,您可以完全理解該檢查的工作方式。

主配置文件

如果使用 naginstall.sh 腳本,則主配置文件是 /usr/local/nagios/etc/nagios.cfg。該腳本展示幾個(gè)帶有其他定義的 cfg_files。其中的行如下:

cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

如果查看該文件,您將看到所有用于 Web 視圖中出現(xiàn)的 localhost 的服務(wù)。這就是配置默認(rèn)服務(wù)的地方。根分區(qū)定義見第 77 行。

根分區(qū)檢查方式的體系結(jié)構(gòu)見圖 2。

首先要注意 Nagios 對(duì)象的繼承模式。根分區(qū) 的定義使用本地服務(wù)定義,本地服務(wù)定義則使用通用服務(wù)定義。這定義了調(diào)用服務(wù)的方式、頻率以及其他可調(diào)試參數(shù)等等。

接下來重要的定義部分是使用的檢查命令。首先它使用名為 check_local_disk 的命令定義。傳遞的參數(shù)是 !20%!10%!/。表示當(dāng) check_local_disk 命令定義報(bào)告 20% 時(shí),它將發(fā)出警告。當(dāng)它到達(dá) 10% 時(shí),您將得到一個(gè)嚴(yán)重錯(cuò)誤。/ 表示它檢查 "/" 分區(qū)。check_local_disk 隱式調(diào)用 check_disk 命令,該命令位于 /usr/local/nagios/libexec 目錄中。

這是設(shè)置這些配置的基本思路。您可以按照該思路創(chuàng)建自己的服務(wù)來監(jiān)視所需的參數(shù)。有關(guān)更深入的內(nèi)容,請(qǐng)閱讀文檔并嘗試自己設(shè)置一些參數(shù)。

注冊(cè)以收到警告

所有配置完成后,注冊(cè)以收到警告。我們開始時(shí)已經(jīng)完成了該操作,但是如果希望更改或添加用戶,則可以修改 /usr/local/nagios/etc/objects/contacts.cfg 文件。將聯(lián)系人名稱改為您的名字,將電子郵件改為您的電子郵件地址。大部分基本的 Linux 服務(wù)器應(yīng)該已經(jīng)設(shè)置好,可以處理郵件了。

現(xiàn)在配置其他節(jié)點(diǎn)。

在 grid/cloud/cluster 中配置其他節(jié)點(diǎn)

我在 Dallas 數(shù)據(jù)中心有一組節(jié)點(diǎn)。我將創(chuàng)建一個(gè)目錄放置所有配置文件:

mkdir -p /usr/local/nagios/etc/dallas

我需要通知 Nagios 我的配置文件將放在哪里。為此我修改 nagios.cfg 文件,添加以下行:

cfg_dir=/usr/local/nagios/etc/dallas

我將在此創(chuàng)建一組文件(很容易讓人糊涂)。圖 3 顯示了這些條目以及它們所屬的文件,并展示了對(duì)象之間的關(guān)系。

根據(jù)該圖繼續(xù)進(jìn)行其他設(shè)置和安裝。

在 /usr/local/nagios/etc/dallas/nodes.cfg 文件中,我定義所有節(jié)點(diǎn)和節(jié)點(diǎn)組。我需要監(jiān)視三種機(jī)器:

  • 網(wǎng)絡(luò)服務(wù)器(本例中是運(yùn)行 Ganglia 的 Linux 服務(wù)器)

  • 網(wǎng)絡(luò)交換機(jī)(我的交換機(jī)包括高速交換機(jī)和 Gigabit Ethernet)

  • 管理設(shè)備(比如刀片式管理模塊、老 IBM RSA 卡、BMC、可能的智能 PDU 等等)。

我創(chuàng)建三個(gè)相應(yīng)的組,如下所示:

define hostgroup {            hostgroup_name dallas-cloud-servers            alias Dallas Cloud Servers            }            define hostgroup            hostgroup_name dallas-cloud-network            alias Dallas Cloud Network Infrastructure            }            define hostgroup            hostgroup_name dallas-cloud-management            alias Dallas Cloud Management Devides            }            

接下來我創(chuàng)建三個(gè)模板文件,三個(gè)節(jié)點(diǎn)組的節(jié)點(diǎn)共享通用特征:

define host {            name dallas-management            use linux-server            hostgroups dallas-cloud-management            # TEMPLATE!            register 0            }            define host {            name dallas-server            use linux-server            hostgroups dallas-cloud-servers            # TEMPLATE!            register 0            }            define host {            name dallas-network            use generic-switch            hostgroups dallas-cloud-network            # TEMPLATE!            register 0            }            

現(xiàn)在我的每個(gè)節(jié)點(diǎn)定義為 dallas-managementdallas-serverdallas-network。各自的示例如下:

define host {            use dallas-server            host_name x336001            address 172.10.11.1            }            define host {            use dallas-network            host_name smc001            address 172.10.0.254            }            define host {            use dallas-management            host_name x346002-rsa            address 172.10.11.12            }            

我生成了一個(gè)遍歷節(jié)點(diǎn)列表的腳本,并使用我的 Dallas 實(shí)驗(yàn)室中的節(jié)點(diǎn)完全填充這個(gè)文件。當(dāng)我重啟 Nagios 時(shí),將檢查這些節(jié)點(diǎn)是否可以到達(dá)。但是我還有其他一些服務(wù)!

您應(yīng)該首先重啟 Nagios 保證設(shè)置完成。如果已經(jīng)完成,則應(yīng)該在 HostGroup Overview 視圖下看到一些組。如果有錯(cuò)誤,則運(yùn)行:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

這將驗(yàn)證文件并幫助您發(fā)現(xiàn)錯(cuò)誤。

現(xiàn)在可以添加一些基本的服務(wù)了。根據(jù) localhost 中的模板,較容易完成的是查看 dallas-cloud-servers 組上的 SSH。讓我們啟動(dòng)另一個(gè)文件:/usr/local/nagios/etc/dallas/host-services.cfg。最簡(jiǎn)單的是將配置從希望監(jiān)視的 localhost 中復(fù)制出來。我就是這樣做的,并添加了一個(gè)依賴關(guān)系:

define service{            use                             generic-service            hostgroup_name                  dallas-cloud-servers            service_description             SSH            check_command                   check_ssh            }            define service{            use                             generic-service            hostgroup_name                  dallas-cloud-servers            service_description             PING            check_command                   check_ping!100.0,20%!500.0,60%            }            define servicedependency{            hostgroup_name                  dallas-cloud-servers            service_description             PING            dependent_hostgroup_name        dallas-cloud-servers            dependent_service_description   SSH            }            

如果 PING 無法正常工作,我不會(huì)考慮測(cè)試 SSH?,F(xiàn)在開始可以添加各種內(nèi)容了,但我們?cè)倏纯雌渌麞|西。重啟 Nagios 并測(cè)試菜單,以確??吹?ping 和 ssh 檢查了節(jié)點(diǎn):

service nagios reload

如果一切正常,我們將開始進(jìn)入有趣的部分 —— 集成 Ganglia。

集成 Nagios 報(bào)告 Ganglia 指標(biāo)

Nagios Exchange 是另一個(gè)獲取 Nagios 插件的好地方。但是對(duì)于我們的 Ganglia 插件,只要從 Ganglia 和 Nagios,第 1 部分:用 Ganglia 監(jiān)視企業(yè)集群 中下載的源代碼中查找。假設(shè)您將源代碼解壓到 /tmp 目錄中,剩下的只需要復(fù)制 contrib 目錄中的 check_ganglia.py 腳本即可:

cp /tmp/ganglia-3.1.1/contrib/check_ganglia.py             /usr/local/nagios/libexec/            

check_ganglia 是一個(gè)很棒的 Python 腳本,可以運(yùn)行于 gmetad 運(yùn)行的服務(wù)器上(在我的示例中是 Nagios 運(yùn)行的管理服務(wù)器)。讓我們?cè)诙丝?8649 上查詢 localhost。使用這種方法,您可以通過遠(yuǎn)程命令擴(kuò)展網(wǎng)絡(luò)通訊:可以使用 Ganglia 的擴(kuò)展技術(shù)實(shí)現(xiàn)!

如果運(yùn)行 telnet localhost 8649,您將看到從節(jié)點(diǎn)收集的數(shù)據(jù)中生成大量輸出(假設(shè)按照第 1 部分安裝了 Ganglia 并能正常運(yùn)行)。讓我們監(jiān)視一些 Ganglia 提供的內(nèi)容。

進(jìn)入 /var/lib/ganglia/rrds 目錄,您可以看到每個(gè)主機(jī)的度量指標(biāo)。生成了易于查看的圖形,您可以一直分析指標(biāo)。我們將度量 load_onedisk_free,由于在第 1 部分中我們啟用了 IPMI 溫度度量,我們將同樣添加該度量。

創(chuàng)建 /usr/local/nagios/etc/dallas/ganglia-services.cfg 文件并添加服務(wù):

define servicegroup {            servicegroup_name ganglia-metrics            alias Ganglia Metrics            }            define command {            command_name check_ganglia            command_line $USER1$/check_ganglia.py -h $HOSTNAME$ -m $ARG1$ -w $ARG2$ -c $ARG3$            }            define service {            use generic-service            name ganglia-service            hostgroup_name dallas-cloud-servers            service_groups ganglia-metrics            notifications_enabled 0            }            define service {            use ganglia-service            service_description load_one            check_command check_ganglia!load_one!4!5            }            define service {            use ganglia-service            service_description ambient_temp            check_command check_ganglia!AmbientTemp!20!30            }            define service {            use ganglia-service            service_description disk_free            check_command check_ganglia!disk_free!10!5            }            

重啟 Nagios 時(shí),現(xiàn)在可以根據(jù) Ganglia 指標(biāo)發(fā)出警告!

提醒:check_ganglia.py 命令僅在閾值過高時(shí)發(fā)出警告。如果希望在閾值過低時(shí)發(fā)出警告(在 disk_free 中是這樣),則需要修改代碼。我更改了文件的最后部分,如下所示:

  if critical > warning:            if value >= critical:            print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric, value)            sys.exit(2)            elif value >= warning:            print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value)            sys.exit(1)            else:            print "CHECKGANGLIA OK: %s is %.2f" % (metric, value)            sys.exit(0)            else:            if critical >= value:            print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric, value)            sys.exit(2)            elif warning >= value:            print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value)            sys.exit(1)            else:            print "CHECKGANGLIA OK: %s is %.2f" % (metric, value)            sys.exit(0)            

現(xiàn)在重新加載 Nagios:

service nagios restart

如果一切正常,您應(yīng)該看到 Ganglia 數(shù)據(jù)現(xiàn)在已經(jīng)在 Nagios 的監(jiān)視之下!

結(jié)合使用 Ganglia 和 Nagios,您可以監(jiān)視任何內(nèi)容。您可以控制整個(gè)云!

擴(kuò)展 Nagios:監(jiān)視網(wǎng)絡(luò)交換機(jī)

隨著云和虛擬化的流程,原來的 “網(wǎng)絡(luò)管理員” 和 “系統(tǒng)管理員” 之間的界線更加模糊起來。忽視配置網(wǎng)絡(luò)交換機(jī)和理解網(wǎng)絡(luò)技術(shù)的系統(tǒng)管理員將面臨過時(shí)的風(fēng)險(xiǎn)。

不用再擔(dān)心完整性,我將展示如何擴(kuò)展 Nagios 來監(jiān)視網(wǎng)絡(luò)交換機(jī)。使用 Nagios(而不是網(wǎng)絡(luò)交換機(jī)供應(yīng)商的解決方案)監(jiān)視網(wǎng)絡(luò)交換機(jī)的優(yōu)點(diǎn)很簡(jiǎn)單 —— 使用 Nagios 您可以監(jiān)視任何 供應(yīng)商的交換機(jī)??吹?ping 成功后,我們將探討交換機(jī)上的 SNMP。

有些交換機(jī)默認(rèn)啟用 SNMP。您可以根據(jù)供應(yīng)商的說明設(shè)置。要在 Cisco Switch 上設(shè)置 SNMP,請(qǐng)參考以下示例,我的交換機(jī)的主機(jī)名為 c2960g:

telnet c2960g            c2960g>enable            c2960g#configure terminal            c2960g(config)#snmp-server host 192.168.15.1 traps SNMPv1            c2960g(config)#snmp-server community public            c2960g(config)#exit            c2960g#copy running-config startup-config            

現(xiàn)在看看能夠監(jiān)視的內(nèi)容,運(yùn)行 snmpwalk 并將其導(dǎo)出到文件:

snmpwalk -v 1 -c public c2960g

如果一切正常,您將看到許多內(nèi)容傳遞回來。然后可以捕獲輸出并查看各種要監(jiān)視的位置。

我還有一個(gè)交換機(jī)示例。當(dāng)我運(yùn)行 snmpwalk 命令時(shí),我看到端口以及做標(biāo)記的方式。我對(duì)以下信息很感興趣:

  • MTU(IF-MIB::ifMtu.<portnumber>)。

  • 端口運(yùn)行速度(IF-MIB::ifSpeed.<port number>)。

  • 端口是否正常(IF-MIB::ifOperStatus.<port number>)。

為了監(jiān)視這些內(nèi)容我創(chuàng)建了一個(gè)新文件,/usr/local/nagios/etc/dallas/switch-services.cfg。我將網(wǎng)絡(luò)主機(jī)映射到交換機(jī),因此我對(duì)所有事情了如指掌。建議您也這樣做。如果想體驗(yàn)真正的云計(jì)算,就應(yīng)該了解所有資源的狀態(tài)。

我將使用節(jié)點(diǎn) x336001 作為示例。我知道它位于端口 5。我的文件如下所示:

define servicegroup {            servicegroup_name switch-snmp            alias Switch SNMP Services            }            define service {            use generic-service            name switch-service            host_name smc001            service_groups switch-snmp            }            define service {            use switch-service            service_description Port5-MTU-x336001            check_command check_snmp!-o IF-MIB::ifMtu.5            }            define service {            use switch-service            service_description Port5-Speed-x336001            check_command check_snmp!-o IF-MIB::ifSpeed.5            }            define service {            use switch-service            service_description Port5-Status-x336001            check_command check_snmp!-o IF-MIB::ifOperStatus.5            }            

完成后,重啟 Nagios,您會(huì)發(fā)現(xiàn)現(xiàn)在我可以查看交換機(jī)了:

這只是如何監(jiān)視交換機(jī)的一個(gè)示例。注意,我沒有設(shè)置警告,也沒有指出關(guān)鍵動(dòng)作。您可能還注意到了,在 libexec 目錄中還有一些選項(xiàng)可以完成類似的功能。check_ifoperstatus 以及其他內(nèi)容也需要技巧。使用 Nagios 時(shí),可以使用多種方式完成一個(gè)任務(wù)。

擴(kuò)展 Nagios:報(bào)告監(jiān)視 TORQUE 的作業(yè)

可以根據(jù) TORQUE 編寫許多腳本來確定該隊(duì)列系統(tǒng)的運(yùn)行方式。在該擴(kuò)展中,假設(shè)您已經(jīng)安裝了 TORQUE。TORQUE 是一個(gè)可以與 Moab 和 Maui 結(jié)合使用的資源管理器??梢詤⒖?Colin Morey 編寫的 開源 Nagios 插件。

下載并將其放在 /usr/local/nagios/libexec 目錄,確定它可以執(zhí)行。我必須稍微修改代碼,將安裝 Nagios 的目錄從 use lib "/usr/nagios/libexec"; 更改為 use lib "/usr/local/nagios/libexec";。我還必須將 my $qstat = '/usr/bin/qstat' ; 更改為 qstat 命令。我的命令如下所示:my $qstat = '/opt/torque/x86_64/bin/qstat' ;

驗(yàn)證它能運(yùn)行(我使用的隊(duì)列名為 dque):

[root@redhouse libexec]# ./check_pbs.pl -Q dque -tw 20 -tm 50            check_pbs.pl Critical: dque on localhost checked, Total number of jobs            higher than 50.  Total jobs:518, Jobs Queued:518, Jobs Waiting:0, Jobs            Halted:0 |exectime=9340us            

您可以使用 -h 選項(xiàng)顯示更多要監(jiān)視的內(nèi)容?,F(xiàn)在將它放置到配置文件 /usr/local/nagios/etc/dallas/torque.cfg

define service {            use                             generic-service            host_name                       localhost            service_description             TORQUE Queues            check_command                   check_pbs!20!50            }            define command {            command_name                    check_pbs            command_line                    $USER1$/check_pbs.pl -Q dque            -tw $ARG1$ -tm $ARG2$            }            

重啟 Nagios 之后,將在 localhost 下顯示該服務(wù)。


圖 6. TORQUE 服務(wù)在 Nagios 重啟后出現(xiàn)

在我的例子中,我收到了一個(gè)嚴(yán)重警告,因?yàn)槲业年?duì)列中有 518 個(gè)作業(yè)!

顯然,跟蹤 TORQUE 和腳本有很多方式。您可以使用 pbsnodes 通知節(jié)點(diǎn)狀態(tài)。人們應(yīng)該更關(guān)心節(jié)點(diǎn)的運(yùn)行位置以及運(yùn)行的作業(yè)。這個(gè)小示例將展示各種可能性,以及如何在很短的時(shí)間內(nèi)完成監(jiān)視解決方案。

結(jié)束語

閱讀了該系列之后,系統(tǒng)管理員應(yīng)該能夠輕松運(yùn)行 Ganglia 和 Nagios,以前所未有的方式監(jiān)視其數(shù)據(jù)中心。這兩個(gè)包的范圍非常廣泛。我們?cè)谶@里接觸的只是與集群、網(wǎng)格和云基礎(chǔ)結(jié)構(gòu)相關(guān)的內(nèi)容。

設(shè)置該監(jiān)視解決方案的大部分時(shí)間都用于配置要監(jiān)視的服務(wù)。許多現(xiàn)有的替代解決方案都是平臺(tái)而不是成品。換句話說,它們提供框架來支持插件,但很少有預(yù)先建好的插件。大部分插件的工作由管理員和用戶完成,這些工作往往非常繁瑣。實(shí)際上,這就是大部分?jǐn)?shù)據(jù)中心監(jiān)視的內(nèi)容。

Ganglia 和 Nagios 不僅僅是一個(gè)插件平臺(tái)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Ganglia and Nagios, Part 2: Monitor enterpris...
誠(chéng)之和:如何 一鍵搭建nagios監(jiān)控系統(tǒng)
/lib/tls/libc.so.6 出錯(cuò)
云計(jì)算平臺(tái)管理的三大利器Nagios、Ganglia和Splunk
Nagios zabbix ganglia的相關(guān)參數(shù)分析和優(yōu)缺點(diǎn)介紹
Heartbeat+DRBD+NFS+Keepalived+Lnmp雙機(jī)熱備+負(fù)載均衡-線上方案
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服