日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nagios 整合 ganglia 设置邮件、短信报警

發布時間:2024/7/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nagios 整合 ganglia 设置邮件、短信报警 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要學的東西還有很多呢,慢慢來~!

?

環境:

操作系統:ubuntu 10.10

軟件:ganglia-monitor 3.1.7-1,gmetad 3.7.1-1,nagios 3.2.1-2

?

步驟:

1.下載安裝nagios:
sudo apt-get install nagios3 nagios-plugins
  輸入要發送報告的郵箱
  輸入密碼(用戶名默認為:nagiosadmin)


2.把nagios的http文件鏈接到apache所在目錄,并重啟apache
sudo ln -s /usr/share/nagios3/htdocs /var/www/nagios
sudo service apache2 restart
現在,就可以通過http://localhost/nagios來訪問nagios了,查看service的時候會要求輸入用戶名和密碼,就是之前設置的

3.下載插件腳本

1)check_ganglia.py 試驗發現只適合單播、單個數據源的
去http://ganglia.sourceforge.net/downloads.php?component=ganglia-webfrontend&version=3.1.7下載ganglia的源文件

解壓后在contrib目錄中找到check_ganglia.py并復制到/usr/lib/nagios/plugins/目錄(該目錄在/etc/nagios3/resource.cfg腳本中被定義為USER1)
這個python腳本是通過ganglia收集到的數據發出不同等級的警報,nagios顯示這些警報信息或者根據設置通過郵件、短信發送警報信息給指定用戶

2)check_ganglia_metric.php 這個好像是最原生態的,都適合

下載地址:http://vuksan.com/linux/ganglia/check_ganglia_metric.phps
這是check_ganglia的php腳本,直接調用gmetad取得的信息,因此可以獲得other clusters and Grids的信息。把它復制到$USER1$目錄下。

調用方法:check_ganglia_metric.php hostName?metric_name less|more?value


4.在/etc/nagios3/conf.d添加一個名為ganglia-services.cfg的配置文件,添加如下設置:
#定義servicegroup方便host使用多個service
define servicegroup {
  servicegroup_name ganglia-metrics
  alias Ganglia Metrics
}

#定義host,address似乎可以不用,因為check_ganglia.py腳本只通過host_name就可獲取數據
#host_name可以從ganglia中看到
define host{
  use       generic-host   ; Name of host template to use
  host_name   Just_Test
  alias ?     test-host
}

#定義hostgroup,members中可以指定屬于該組的成員,定義service的時候可以指定只有某組才能使用該service
define hostgroup {
  hostgroup_name    my-host-servers
  alias           test-group
  members        *   ;可以指定多個host屬于當前組,用逗號分隔
}


#定義check_ganglia.py的command,執行檢測腳本
#define command {
#  command_name  check_ganglia
#  command_line   $USER1$/check_ganglia.py -h $HOSTNAME$ -m $ARG1$ -w $ARG2$ -c $ARG3$
#}

?

#定義command,執行check_ganglia_metric.php檢測腳本
define command{
  command_name   check_ganglia
  command_line    $USER1$/check_ganglia_metric.php $HOSTNAME$ $ARG1$ $ARG2$ $ARG3$
}

#定義一個service集合,共享配置(似乎是這個意思)
define service {
  use           generic-service
  name          ganglia-service
  hostgroup_name    my-host-servers  ;定義那個組需要當前服務
  service_groups     ganglia-metrics
  notifications_enabled   1         ?;是否發送通知,1為發送,0為不發送
}

#定義具體service,check_command中的值:首先是command名,然后是用!分隔的參數,分別對應$ARG1$,$ARG2$。。。

#check_ganglia.py的檢測命令
define service {
  use           ganglia-service
  service_description   load_one            ?;服務名稱
  check_command    ?check_ganglia!load_one!4!5  ;調用之前定義的command
}

#check_ganglia_metric.php的檢測命令
define service {
  use           ganglia-service
  service_description   內存空閑
  check_command    check_ganglia!mem_free!less!10240
}
#發送郵件的command
define command {
  command_name   notify-by-email
  command_line    /usr/bin/printf "%b" "***** Nagios 3.2.1*****\nNotification Type: $NOTIFICATIONTYPE$\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nDate/Time: $LONGDATETIME$\nAdditionalInfo: $SERVICEOUTPUT$" | /usr/local/bin/sendEmail -f sender@qq.com -t $CONTACTEMAIL$ -s smtp.qq.com -u "**$NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is ?$SERVICESTATE$ **" -xu sender@qq.com -xp password
}


5.修改contacts_nagios2.cfg
修改被通知的Email以及xx_notification_commands:

service_notification_commands notify-by-email
host_notification_commands notify-by-email
email 138xxxxxxxx@139.com

使用139的郵箱,讓接收短信的人去139郵箱那開通下短信通知(同時設置長短信打開),這樣就可以免費接到報警短信了。之前配飛信的時候遇到太多問題,而且聽說用飛信還要驗證碼,只好轉139郵箱了,似乎163也有郵件到達通知。


6.安裝sendEmail,發郵件通知(可以直接復制已經安裝的程序/usr/local/bin/sendEmail):
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.55.tar.gz
tar -zxvf sendEmail-v1.55.tar.gz
cd sendEmail-v1.55
cp sendEmail /usr/local/bin
chmod 0755 /usr/local/bin/sendEmail
測試sendEmail(我試的時候,只有qqmail能發送成功,163、sina什么的都不行,不知道為什么):

sendEmail -f sender@qq.com -t receiver@qq.com -s smtp.qq.com -u "test" -xu sender@qq.com -xp your-password -m "hello world!"

-f表示發送者的郵箱
-t表示接收者的郵箱
-s表示SMTP服務器的域名或者ip
-u表示郵件的主題
-xu表示SMTP驗證的用戶名
-xp表示SMTP驗證的密碼
-m表示郵件的內容

?

*結束語

至此,已經能通過nagios收到報警信息了,間歇性地花了一周事件才搞定。。慢慢來吧

轉載于:https://www.cnblogs.com/Nstd/archive/2012/11/08/2760180.html

總結

以上是生活随笔為你收集整理的nagios 整合 ganglia 设置邮件、短信报警的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。