成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Nagios監視企業集群

運維 系統運維
使用Nagios監視企業集群:Nagios 與 Ganglia 一樣,常用于 HPC 和其他環境,但是 Nagios 更加關注警告機制,Ganglia 則更加關注收集和跟蹤指標。Nagios 以前只是從目標主機收集信息,但最近開發了可以在主機上運行代理的插件。Nagios 內置了一個通知系統。

  Nagios 簡介

  該部分演示如何安裝 Nagios 并綁定 Ganglia。我們將向 Nagios 添加兩個特性,幫助您監視標準集群、網格、云(以及任何擴展計算的功能)。這兩個特性的作用是:

  •監視網絡交換機

  •監視資源管理器

  在本例中,我們將監視 TORQUE。完成之后,您將擁有一個控制監視整個數據中心系統的框架。

  Nagios 與 Ganglia 一樣,常用于 HPC 和其他環境,但是 Nagios 更加關注警告機制,Ganglia 則更加關注收集和跟蹤指標。Nagios 以前只是從目標主機收集信息,但最近開發了可以在主機上運行代理的插件。Nagios 內置了一個通知系統。

  現在我們安裝 Nagios 并安裝基本的 HPC Linux® 監視系統集群以滿足不同的監視需求:

  •應用程序開發人員現在可以看到隊列的飽和程度和運行作業的可用節點。

  •系統失敗時會警告 NOC,并在 Nagios Web 界面看到閃爍的紅點。如果節點異常或者溫度太高,NOC 還將收到電子郵件通知。

  •系統工程師可以繪制數據,報告集群利用率,制定未來采購硬件的決策。

  --------------------------------------------------------------------------------

  安裝 Nagios

  在機器上安裝 Nagios 的方法可以從 Internet 查詢。因為我經常需要在不同的環境中安裝,所以為此編寫了一個腳本。

  首先需要 下載兩個包:

  •Nagios(測試了 3.0.6 版本)

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

  插件包括:

  •Nagios Event Log,可以監視 Windows 事件日志

  •NRPE,提供了許多 Ganglia 功能

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

  •nagios-3.0.6.tar.gz

  •nagios-plugins-1.4.13.tar.gz

  •naginstall.sh

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

  清單 1. naginstall.sh 腳本

  1.   #!/bin/ksh  
  2.  
  3.   NAGIOSSRC=nagios-3.0.6  
  4.  
  5.   NAGIOSPLUGINSRC=nagios-plugins-1.4.13  
  6.  
  7.   NAGIOSCONTACTSCFG=/usr/local/nagios/etc/objects/contacts.cfg  
  8.  
  9.   NAGIOSPASSWD=/usr/local/nagios/etc/htpasswd.users  
  10.  
  11.   PASSWD=cluster 
  12.  
  13.   OS=foo 
  14.  
  15.   function buildNagiosPlug {  
  16.  
  17.   if [ -e $NAGIOSPLUGINSRC.tar.gz ]  
  18.  
  19.   then  
  20.  
  21.   echo "found $NAGIOSPLUGINSRC.tar.gz building and installing Nagios"  
  22.  
  23.   else  
  24.  
  25.   echo "could not find $NAGIOSPLUGINSRC.tar.gz in current directory."  
  26.  
  27.   echo "Please run $0 in the same directory as the source files."  
  28.  
  29.   exit 1  
  30.  
  31.   fi  
  32.  
  33.   echo "Extracting Nagios Plugins..."  
  34.  
  35.   tar zxf $NAGIOSPLUGINSRC.tar.gz  
  36.  
  37.   cd $NAGIOSPLUGINSRC  
  38.  
  39.   echo "Configuring Nagios Plugins..."  
  40.  
  41.   if ./configure --with-nagios-user=nagios --with-nagios-group=nagios  
  42.  
  43.   -prefix=/usr/local/nagios > config.LOG.$$ 2>&1  
  44.  
  45.   then  
  46.  
  47.   echo "Making Nagios Plugins..."  
  48.  
  49.   if make -j8 > make.LOG.$$ 2>&1  
  50.  
  51.   then  
  52.  
  53.   make install > make.LOG.$$ 2>&1  
  54.  
  55.   else  
  56.  
  57.   echo "Make failed of Nagios plugins. See $NAGIOSPLUGINSRC/make.LOG.$$"  
  58.  
  59.   exit 1  
  60.  
  61.   fi  
  62.  
  63.   else  
  64.  
  65.   echo "configure of Nagios plugins failed. See config.LOG.$$"  
  66.  
  67.   exit 1  
  68.  
  69.   fi  
  70.  
  71.   echo "Successfully built and installed Nagios Plugins!"  
  72.  
  73.   cd ..  
  74.  
  75.   }  
  76.  
  77.   function buildNagios {  
  78.  
  79.   if [ -e $NAGIOSSRC.tar.gz ]  
  80.  
  81.   then  
  82.  
  83.   echo "found $NAGIOSSRC.tar.gz building and installing Nagios"  
  84.  
  85.   else  
  86.  
  87.   echo "could not find $NAGIOSSRC.tar.gz in current directory."  
  88.  
  89.   echo "Please run $0 in the same directory as the source files."  
  90.  
  91.   exit 1  
  92.  
  93.   fi  
  94.  
  95.   echo "Extracting Nagios..."  
  96.  
  97.   tar zxf $NAGIOSSRC.tar.gz  
  98.  
  99.   cd $NAGIOSSRC  
  100.  
  101.   echo "Configuring Nagios..."  
  102.  
  103.   if ./configure --with-command-group=nagcmd > config.LOG.$$ 2>&1  
  104.  
  105.   then  
  106.  
  107.   echo "Making Nagios..."  
  108.  
  109.   if make all -j8 > make.LOG.$$ 2>&1  
  110.  
  111.   then  
  112.  
  113.   make install > make.LOG.$$ 2>&1  
  114.  
  115.   make install-init > make.LOG.$$ 2>&1  
  116.  
  117.   make install-config > make.LOG.$$ 2>&1  
  118.  
  119.   make install-commandmode > make.LOG.$$ 2>&1  
  120.  
  121.   make install-webconf > make.LOG.$$ 2>&1  
  122.  
  123.   else  
  124.  
  125.   echo "make all failed. See log:"  
  126.  
  127.   echo "$NAGIOSSRC/make.LOG.$$"  
  128.  
  129.   exit 1  
  130.  
  131.   fi  
  132.  
  133.   else  
  134.  
  135.   echo "configure of Nagios failed. Please read $NAGIOSSRC/config.LOG.$$ for details."  
  136.  
  137.   exit 1  
  138.  
  139.   fi  
  140.  
  141.   echo "Done Making Nagios!"  
  142.  
  143.   cd ..  
  144.  
  145.   }  
  146.  
  147.   function configNagios {  
  148.  
  149.   echo "We'll now configure Nagios."  
  150.  
  151.   LOOP=1 
  152.  
  153.   while [[ $LOOP -eq 1 ]]  
  154.  
  155.   do  
  156.  
  157.   echo "You'll need to put in a user name. This should be the person"  
  158.  
  159.   echo "who will be receiving alerts. This person should have an account"  
  160.  
  161.   echo "on this server. "  
  162.  
  163.   print "Type in the userid of the person who will receive alerts (e.g. bob)> \c"  
  164.  
  165.   read NAME  
  166.  
  167.   print "What is ${NAME}'s email?> \c"  
  168.  
  169.   read EMAIL  
  170.  
  171.   echo  
  172.  
  173.   echo  
  174.  
  175.   echo "Nagios alerts will be sent to $NAME at $EMAIL"  
  176.  
  177.   print "Is this correct? [y/N] \c"  
  178.  
  179.   read YN  
  180.  
  181.   if [[ "$YN" = "y" ]]  
  182.  
  183.   then  
  184.  
  185.   LOOP=0 
  186.  
  187.   fi  
  188.  
  189.   done  
  190.  
  191.   if [ -r $NAGIOSCONTACTSCFG ]  
  192.  
  193.   then  
  194.  
  195.   perl -pi -e "s/nagiosadmin/$NAME/g" $NAGIOSCONTACTSCFG  
  196.  
  197.   EMAIL=$(echo $EMAIL | sed s/\@/\\\\@/g)  
  198.  
  199.   perl -pi -e "s/nagios\@localhost/$EMAIL/g" $NAGIOSCONTACTSCFG  
  200.  
  201.   else  
  202.  
  203.   echo "$NAGIOSCONTACTSCFG does not exist"  
  204.  
  205.   exit 1  
  206.  
  207.   fi  
  208.  
  209.   echo "setting ${NAME}'s password to be 'cluster' in Nagios"  
  210.  
  211.   echo " you can change this later by running: "  
  212.  
  213.   echo " htpasswd -c $NAGIOSPASSWD $Name)'"  
  214.  
  215.   htpasswd -bc $NAGIOSPASSWD $NAME cluster  
  216.  
  217.   if [ "$OS" = "rh" ]  
  218.  
  219.   then  
  220.  
  221.   service httpd restart  
  222.  
  223.   fi  
  224.  
  225.   }  
  226.  
  227.   function preNagios {  
  228.  
  229.   if [ "$OS" = "rh" ]  
  230.  
  231.   then  
  232.  
  233.   echo "making sure prereqs are installed"  
  234.  
  235.   yum -y install httpd gcc glibc glibc-common gd gd-devel perl-TimeDate  
  236.  
  237.   /usr/sbin/useradd -m nagios  
  238.  
  239.   echo $PASSWD | passwd --stdin nagios  
  240.  
  241.   /usr/sbin/groupadd nagcmd  
  242.  
  243.   /usr/sbin/usermod -a -G nagcmd nagios  
  244.  
  245.   /usr/sbin/usermod -a -G nagcmd apache  
  246.  
  247.   fi  
  248.  
  249.   }  
  250.  
  251.   function postNagios {  
  252.  
  253.   if [ "$OS" = "rh" ]  
  254.  
  255.   then  
  256.  
  257.   chkconfig --add nagios  
  258.  
  259.   chkconfig nagios on  
  260.  
  261.   # touch this file so that if it doesn't exist we won't get errors  
  262.  
  263.   touch /var/www/html/index.html  
  264.  
  265.   service nagios start  
  266.  
  267.   fi  
  268.  
  269.   echo "You may now be able to access Nagios at the URL below:"  
  270.  
  271.   echo "http://localhost/nagios"  
  272.  
  273.   }  
  274.  
  275.   if [ -e /etc/redhat-release ]  
  276.  
  277.   then  
  278.  
  279.   echo "installing monitoring on Red Hat system"  
  280.  
  281.   OS=rh 
  282.  
  283.   fi  
  284.  
  285.   # make sure you're root:  
  286.  
  287.   ID=$(id -u)  
  288.  
  289.   if [ "$ID" != "0" ]  
  290.  
  291.   then  
  292.  
  293.   echo "Must run this as root!"  
  294.  
  295.   exit  
  296.  

  fi

  preNagios

  buildNagios

  buildNagiosPlug

  configNagios

  postNagios

  運行腳本 ./naginstall.sh

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

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

#p#

  配置 Nagios

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

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

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

  主配置文件

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

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

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

  根分區檢查方式的體系結構

  首先要注意 Nagios 對象的繼承模式。根分區 的定義使用本地服務定義,本地服務定義則使用通用服務定義。這定義了調用服務的方式、頻率以及其他可調試參數等等。

  接下來重要的定義部分是使用的檢查命令。首先它使用名為 check_local_disk 的命令定義。傳遞的參數是 !20%!10%!/。表示當 check_local_disk 命令定義報告 20% 時,它將發出警告。當它到達 10% 時,您將得到一個嚴重錯誤。/ 表示它檢查 "/" 分區。check_local_disk 隱式調用 check_disk 命令,該命令位于 /usr/local/nagios/libexec 目錄中。

  這是設置這些配置的基本思路。您可以按照該思路創建自己的服務來監視所需的參數。有關更深入的內容,請閱讀文檔并嘗試自己設置一些參數。

  注冊以收到警告

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

  現在配置其他節點。

  在 grid/cloud/cluster 中配置其他節點

  我在 Dallas 數據中心有一組節點。我將創建一個目錄放置所有配置文件:

  1.   mkdir -p /usr/local/nagios/etc/dallas  
  2.  

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

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

  我將在此創建一組文件(很容易讓人糊涂)。

  根據該圖繼續進行其他設置和安裝。

  在 /usr/local/nagios/etc/dallas/nodes.cfg 文件中,我定義所有節點和節點組。我需要監視三種機器:

  •網絡服務器(本例中是運行 Ganglia 的 Linux 服務器)

  •網絡交換機(我的交換機包括高速交換機和 Gigabit Ethernet)

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

  我創建三個相應的組,如下所示:

  1.   define hostgroup {  
  2.  
  3.   hostgroup_name dallas-cloud-servers  
  4.  
  5.   alias Dallas Cloud Servers  
  6.  
  7.   }  
  8.  
  9.   define hostgroup  
  10.  
  11.   hostgroup_name dallas-cloud-network  
  12.  
  13.   alias Dallas Cloud Network Infrastructure  
  14.  
  15.   }  
  16.  
  17.   define hostgroup  
  18.  
  19.   hostgroup_name dallas-cloud-management  
  20.  
  21.   alias Dallas Cloud Management Devides  
  22.  
  23.   }  
  24.  

  接下來我創建三個模板文件,三個節點組的節點共享通用特征:

  1.   define host {  
  2.  
  3.   name dallas-management  
  4.  
  5.   use linux-server  
  6.  
  7.   hostgroups dallas-cloud-management  
  8.  
  9.   # TEMPLATE!  
  10.  
  11.   register 0  
  12.  
  13.   }  
  14.  
  15.   define host {  
  16.  
  17.   name dallas-server  
  18.  
  19.   use linux-server  
  20.  
  21.   hostgroups dallas-cloud-servers  
  22.  
  23.   # TEMPLATE!  
  24.  
  25.   register 0  
  26.  
  27.   }  
  28.  
  29.   define host {  
  30.  
  31.   name dallas-network  
  32.  
  33.   use generic-switch  
  34.  
  35.   hostgroups dallas-cloud-network  
  36.  
  37.   # TEMPLATE!  
  38.  
  39.   register 0  
  40.  
  41.   }  
  42.  

  現在我的每個節點定義為 dallas-management、dallas-server 或 dallas-network。各自的示例如下:

  1.   define host {  
  2.  
  3.   use dallas-server  
  4.  
  5.   host_name x336001  
  6.  
  7.   address 172.10.11.1  
  8.  
  9.   }  
  10.  
  11.   define host {  
  12.  
  13.   use dallas-network  
  14.  
  15.   host_name smc001  
  16.  
  17.   address 172.10.0.254  
  18.  
  19.   }  
  20.  
  21.   define host {  
  22.  
  23.   use dallas-management  
  24.  
  25.   host_name x346002-rsa  
  26.  
  27.   address 172.10.11.12  
  28.  
  29.   }  
  30.  

  我生成了一個遍歷節點列表的腳本,并使用我的 Dallas 實驗室中的節點完全填充這個文件。當我重啟 Nagios 時,將檢查這些節點是否可以到達。但是我還有其他一些服務!

  您應該首先重啟 Nagios 保證設置完成。如果已經完成,則應該在 HostGroup Overview 視圖下看到一些組。如果有錯誤,則運行:

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

  這將驗證文件并幫助您發現錯誤。

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

  1.   define service{  
  2.  
  3.   use generic-service  
  4.  
  5.   hostgroup_name dallas-cloud-servers  
  6.  
  7.   service_description SSH  
  8.  
  9.   check_command check_ssh  
  10.  
  11.   }  
  12.  
  13.   define service{  
  14.  
  15.   use generic-service  
  16.  
  17.   hostgroup_name dallas-cloud-servers  
  18.  
  19.   service_description PING  
  20.  
  21.   check_command check_ping!100.0,20%!500.0,60%  
  22.  
  23.   }  
  24.  
  25.   define servicedependency{  
  26.  
  27.   hostgroup_name dallas-cloud-servers  
  28.  
  29.   service_description PING  
  30.  
  31.   dependent_hostgroup_name dallas-cloud-servers  
  32.  
  33.   dependent_service_description SSH  
  34.  
  35.   }  
  36.  

  如果 PING 無法正常工作,我不會考慮測試 SSH。現在開始可以添加各種內容了,但我們再看看其他東西。重啟 Nagios 并測試菜單,以確保看到 ping 和 ssh 檢查了節點:

  1.   service nagios reload  
  2.  

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

#p#

  集成 Nagios 報告 Ganglia 指標

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

  1.   cp /tmp/ganglia-3.1.1/contrib/check_ganglia.py \  
  2.  
  3.   /usr/local/nagios/libexec/  
  4.  

  check_ganglia 是一個很棒的 Python 腳本,可以運行于 gmetad 運行的服務器上(在我的示例中是 Nagios 運行的管理服務器)。讓我們在端口 8649 上查詢 localhost。使用這種方法,您可以通過遠程命令擴展網絡通訊:可以使用 Ganglia 的擴展技術實現!

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

  進入 /var/lib/ganglia/rrds 目錄,您可以看到每個主機的度量指標。生成了易于查看的圖形,您可以一直分析指標。我們將度量 load_one 和 disk_free,由于在第 1 部分中我們啟用了 IPMI 溫度度量,我們將同樣添加該度量。

  創建 /usr/local/nagios/etc/dallas/ganglia-services.cfg 文件并添加服務:

  1.   define servicegroup {  
  2.  
  3.   servicegroup_name ganglia-metrics  
  4.  
  5.   alias Ganglia Metrics  
  6.  
  7.   }  
  8.  
  9.   define command {  
  10.  
  11.   command_name check_ganglia  
  12.  
  13.   command_line $USER1$/check_ganglia.py -h $HOSTNAME$ -m $ARG1$ -w $ARG2$ -c $ARG3$  
  14.  
  15.   }  
  16.  
  17.   define service {  
  18.  
  19.   use generic-service  
  20.  
  21.   name ganglia-service  
  22.  
  23.   hostgroup_name dallas-cloud-servers  
  24.  
  25.   service_groups ganglia-metrics  
  26.  
  27.   notifications_enabled 0  
  28.  
  29.   }  
  30.  
  31.   define service {  
  32.  
  33.   use ganglia-service  
  34.  
  35.   service_description load_one  
  36.  
  37.   check_command check_ganglia!load_one!4!5  
  38.  
  39.   }  
  40.  
  41.   define service {  
  42.  
  43.   use ganglia-service  
  44.  
  45.   service_description ambient_temp  
  46.  
  47.   check_command check_ganglia!AmbientTemp!20!30  
  48.  
  49.   }  
  50.  
  51.   define service {  
  52.  
  53.   use ganglia-service  
  54.  
  55.   service_description disk_free  
  56.  
  57.   check_command check_ganglia!disk_free!10!5  
  58.  
  59.   }  
  60.  

  重啟 Nagios 時,現在可以根據 Ganglia 指標發出警告!

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

  1.   if critical > warning:  
  2.  
  3.   if value >= critical:  
  4.  
  5.   print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric, value)  
  6.  
  7.   sys.exit(2)  
  8.  
  9.   elif value >= warning:  
  10.  
  11.   print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value)  
  12.  
  13.   sys.exit(1)  
  14.  
  15.   else:  
  16.  
  17.   print "CHECKGANGLIA OK: %s is %.2f" % (metric, value)  
  18.  
  19.   sys.exit(0)  
  20.  
  21.   else:  
  22.  
  23.   if critical >= value:  
  24.  
  25.   print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric, value)  
  26.  
  27.   sys.exit(2)  
  28.  
  29.   elif warning >= value:  
  30.  
  31.   print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value)  
  32.  
  33.   sys.exit(1)  
  34.  
  35.   else:  
  36.  
  37.   print "CHECKGANGLIA OK: %s is %.2f" % (metric, value)  
  38.  
  39.   sys.exit(0)  
  40.  

  現在重新加載 Nagios:

  1.   service nagios restart  
  2.  

  如果一切正常,您應該看到 Ganglia 數據現在已經在 Nagios 的監視之下!

  結合使用 Ganglia 和 Nagios,您可以監視任何內容。您可以控制整個云!

#p#

  擴展 Nagios:監視網絡交換機

  隨著云和虛擬化的流程,原來的 “網絡管理員” 和 “系統管理員” 之間的界線更加模糊起來。忽視配置網絡交換機和理解網絡技術的系統管理員將面臨過時的風險。

  不用再擔心完整性,我將展示如何擴展 Nagios 來監視網絡交換機。使用 Nagios(而不是網絡交換機供應商的解決方案)監視網絡交換機的優點很簡單 —— 使用 Nagios 您可以監視任何 供應商的交換機。看到 ping 成功后,我們將探討交換機上的 SNMP。

  有些交換機默認啟用 SNMP。您可以根據供應商的說明設置。要在 Cisco Switch 上設置 SNMP,請參考以下示例,我的交換機的主機名為 c2960g:

  1.   telnet c2960g  
  2.  
  3.   c2960g>enable  
  4.  
  5.   c2960g#configure terminal  
  6.  
  7.   c2960g(config)#snmp-server host 192.168.15.1 traps SNMPv1  
  8.  
  9.   c2960g(config)#snmp-server community public  
  10.  
  11.   c2960g(config)#exit  
  12.  
  13.   c2960g#copy running-config startup-config  
  14.  

  現在看看能夠監視的內容,運行 snmpwalk 并將其導出到文件:

  1.   snmpwalk -v 1 -c public c2960g  
  2.  

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

  我還有一個交換機示例。當我運行 snmpwalk 命令時,我看到端口以及做標記的方式。我對以下信息很感興趣:

  •MTU(IF-MIB::ifMtu.)。

  •端口運行速度(IF-MIB::ifSpeed.)。

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

  為了監視這些內容我創建了一個新文件,/usr/local/nagios/etc/dallas/switch-services.cfg。我將網絡主機映射到交換機,因此我對所有事情了如指掌。建議您也這樣做。如果想體驗真正的云計算,就應該了解所有資源的狀態。

  我將使用節點 x336001 作為示例。我知道它位于端口 5。我的文件如下所示:

  1.   define servicegroup {  
  2.  
  3.   servicegroup_name switch-snmp  
  4.  
  5.   alias Switch SNMP Services  
  6.  
  7.   }  
  8.  
  9.   define service {  
  10.  
  11.   use generic-service  
  12.  
  13.   name switch-service  
  14.  
  15.   host_name smc001  
  16.  
  17.   service_groups switch-snmp  
  18.  
  19.   }  
  20.  
  21.   define service {  
  22.  
  23.   use switch-service  
  24.  
  25.   service_description Port5-MTU-x336001  
  26.  
  27.   check_command check_snmp!-o IF-MIB::ifMtu.5  
  28.  
  29.   }  
  30.  
  31.   define service {  
  32.  
  33.   use switch-service  
  34.  
  35.   service_description Port5-Speed-x336001  
  36.  
  37.   check_command check_snmp!-o IF-MIB::ifSpeed.5  
  38.  
  39.   }  
  40.  
  41.   define service {  
  42.  
  43.   use switch-service  
  44.  
  45.   service_description Port5-Status-x336001  
  46.  
  47.   check_command check_snmp!-o IF-MIB::ifOperStatus.5  
  48.  
  49.   }  
  50.  

  完成后,重啟 Nagios,您會發現現在我可以查看交換機了:

  這只是如何監視交換機的一個示例。注意,我沒有設置警告,也沒有指出關鍵動作。您可能還注意到了,在 libexec 目錄中還有一些選項可以完成類似的功能。check_ifoperstatus 以及其他內容也需要技巧。使用 Nagios 時,可以使用多種方式完成一個任務。

#p#

  擴展 Nagios:報告監視 TORQUE 的作業

  可以根據 TORQUE 編寫許多腳本來確定該隊列系統的運行方式。在該擴展中,假設您已經安裝了 TORQUE。TORQUE 是一個可以與 Moab 和 Maui 結合使用的資源管理器。可以參考 Colin Morey 編寫的 開源 Nagios 插件。

  下載并將其放在 /usr/local/nagios/libexec 目錄,確定它可以執行。我必須稍微修改代碼,將安裝 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' ;。

  驗證它能運行(我使用的隊列名為 dque):

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

  您可以使用 -h 選項顯示更多要監視的內容。現在將它放置到配置文件 /usr/local/nagios/etc/dallas/torque.cfg:

  1.   define service {  
  2.  
  3.   use generic-service  
  4.  
  5.   host_name localhost  
  6.  
  7.   service_description TORQUE Queues  
  8.  
  9.   check_command check_pbs!20!50  
  10.  
  11.   }  
  12.  
  13.   define command {  
  14.  
  15.   command_name check_pbs  
  16.  
  17.   command_line $USER1$/check_pbs.pl -Q dque  
  18.  
  19.   -tw $ARG1$ -tm $ARG2$  
  20.  
  21.   }  
  22.  

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

  在我的例子中,我收到了一個嚴重警告,因為我的隊列中有 518 個作業!

  顯然,跟蹤 TORQUE 和腳本有很多方式。您可以使用 pbsnodes 通知節點狀態。人們應該更關心節點的運行位置以及運行的作業。這個小示例將展示各種可能性,以及如何在很短的時間內完成監視解決方案。

  結束語

  閱讀了該系列之后,系統管理員應該能夠輕松運行 Ganglia 和 Nagios,以前所未有的方式監視其數據中心。這兩個包的范圍非常廣泛。我們在這里接觸的只是與集群、網格和云基礎結構相關的內容。

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

 【編輯推薦】

Nagios使用飛信Robot發送報警短信

配置nagios客戶端

Nagios的安裝配置記錄

責任編輯:zhaolei 來源: CSDN
相關推薦

2011-03-22 09:07:12

nagios監控oracle

2012-03-19 10:46:53

ibmdw

2011-04-14 17:32:21

2011-04-01 10:53:43

2011-03-23 13:32:14

Nagios飛信

2011-03-23 15:13:08

Nagios監控oracle

2011-03-23 10:17:25

Nagios監控

2022-04-30 11:10:40

Nacos集群環境企業

2011-03-23 09:07:38

Nagios安裝

2011-03-23 14:43:10

Nagiosnagios.cfg

2011-03-21 09:17:06

Nagios

2011-03-21 09:17:06

Nagios

2011-03-25 11:39:13

Nagios 功能Nagios 結構

2011-03-23 09:11:40

Nagios監控

2011-03-25 12:50:29

nagios安裝

2010-05-31 19:35:23

Ubuntu mrtg

2011-03-23 09:07:48

2011-04-06 15:51:32

DelphiHOOK

2017-11-15 06:08:44

2010-07-12 09:42:06

FreeBSD 7.0nagios安裝
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文在线视频 | 国产色片在线 | 国产精品视频免费看 | 在线精品亚洲欧美日韩国产 | 欧美一二三区 | 欧美国产精品 | 国产精品夜间视频香蕉 | 亚洲综合无码一区二区 | 国产一级片一区二区三区 | 亚洲成人综合在线 | 亚洲精品九九 | 亚洲成人福利视频 | 天天在线操 | 亚洲免费在线观看 | 亚洲视频精品 | 在线观看特色大片免费网站 | 91精品久久久久久久 | 久久91精品久久久久久9鸭 | 国产日韩一区二区 | 欧美日韩亚洲视频 | 二区三区av | 久久精品黄色 | 精品少妇v888av | 99久久精品国产麻豆演员表 | 一级免费毛片 | 国产在线一区二 | 成人夜晚看av | 国产在线精品一区二区三区 | 国产激情在线 | 成人小视频在线免费观看 | 成人免费视频 | 一级欧美一级日韩片免费观看 | 亚洲欧美国产一区二区三区 | 亚洲一页 | 丝袜久久 | 欧美亚洲一区二区三区 | 欧美精品综合 | 久热伊人 | 日韩欧美中文 | 亚洲精品大片 | 欧美电影大全 |