天天看點

第 三 十 三 天:shell 編 程 之 監 控 腳 本

小Q:如果你浪費了自己的年齡,那是挺可悲的。因為你的青春隻能持續一點兒

      時間——很短的一點兒時間。                          —— 王爾德

======================================================================

在工作中,一些安裝程式的腳本可以實作自動化,大大友善我們;但更重要的是我們得先

保證我們伺服器運轉正常,有些需要的監控服務也許第三方沒有給出來,或者我們需要監

控一些特别的服務,是以自己寫監控腳本是必須掌握的;

對于個人來說:我較喜歡nagios的添加服務方式和zabbix的監控界面和操作;

簡單舉例他倆添加自定義監控腳本的方式,讓我們了解這過程。

附加一篇mysql資料備份腳本。

---------------------------------自定義nagios監控腳本-----------------

條件:兩台伺服器.安裝nagios,和一些前期的配置,具體操作見下:

       http://beibing.blog.51cto.com/10693373/1702654

需求:我們磁盤有很多分區,我們需要時常檢視他的使用量,當他塊被寫滿的時候,需要

      清理一下,但我們不想天天輸指令檢視,實作他快滿的時候,在監控中提示我們;

      擴充:快要滿的時候給我們發郵件提醒;

client端:192.168.0.12

vim /etc/nagios/nrpe.cfg  

allowed_hosts=127.0.0.1 改為 allowed_hosts=127.0.0.1,192.168.0.11

dont_blame_nrpe=0 改為 dont_blame_nrpe=1

vim  /usr/local/nagios/libexec/check_disk.sh     #腳本存放的位置 

修改權限:chmod +x  /usr/lib/nagios/plugins/check_disk.sh 

vim  /etc/nagios/nrpe.cfg                       #服務端調用檔案中的check_disk

command[check_disk]=/usr/lib/nagios/plugins/check_disk.sh

重新開機:/etc/init.d/nrpe restart 

service端:192.168.0.11

檢 測 : check_nrpe -H 192.168.0.12 -c check_disk       

         正常的話,會輸出一行磁盤檢測的資料;否則需要去排錯了

添加服務:vim  /etc/nagios/conf.d/192.168.0.12.cfg 

vim /etc/nagios/objects/commands.cfg

檢測:nagios -v /etc/nagios/nagios.cfg

重新開機:/etc/init.d/nagios restart(客戶service nrpe restart 服務service nagios restart)

當然了,http或者nginx也都要重新開機一個,否則根本連接配接不上啊;然後就可以登陸nagios

網站進行監控了,192.168.0.11/nagios檢視;

自定義監控腳本方式大同小異,寫好腳本,順着這種方式套,應該沒問題;而關于擴充的

問題,去參考上面給的銜接,了解之後就知道怎麼調用了;

-----------------------自定義zabbix監控腳本------------------

條件:仍舊是前期的一些準備安裝啦.連接配接了....去看看下面的文章吧

       http://beibing.blog.51cto.com/10693373/1702665 

需求:帶三方軟體沒有提供監控網卡平均流量,我們需要去做一個網卡的實時監控,輸出

      進網卡和出網卡的平均位元組數;

      擴充:實作多個網卡的進出資料包的選擇

Client:

安裝完成---各種服務開啟----配置通信----檢測成功----浏覽器正常使用後----繼續

vim   /etc/zabbix/zabbix_agentd.conf

改動:UnsafeUserParameters=1

      UserParameter=my.net.if[*](英文方括号)/usr/local/sbin/zabbix/net.sh $1 $2

      UserParameter用來自定義鍵值,即我們要在監控軟體添加用的key;因為我們寫的

      腳本有參數表達,是以加了[*]和$1 $2,否則是不需要的

vim  /usr/local/sbin/zabbix/net.sh           #編寫的腳本

在腳本執行前,需要先做一個操作,搭建臨時檔案,給個數值:

touch /tmp/net[io].log

date +%s >>/tmp/neti.log

grep eth0 /proc/net/dev |awk '{print $2}' >>/tmp/neti.log

date +%s >>/tmp/neto.log

grep eth0 /proc/net/dev |awk '{print $10}' >>/tmp/neto.log

chown zabbix  /tmp/net[io].log

service端:

檢測:zabbix_get -s 192.168.0.12 -p10050 -k "my.net.if[eth0,out]"

      傳回一個數值的話就說明沒問題;

沒問題就可以進監控界面添加服務了,浏覽器:192.168.0.11/zabbix

組态 --> 主機 --> 項目  --> 建立監控項

名稱 “網卡流量出”                #自定義

類型預設“zabbix代理”

鍵值  "my.net.if[eth0,out]"  /  my.net.if[eth0,in]

資料更新間隔  60

存檔                               #此時就可以進行監控了,可以看到折線圖出現

-------------------------------------mysql資料備份--------------------

1. 最簡單的

2. 稍微複雜的

3. innodb引擎,超大資料庫備份

執行腳本:

繼續閱讀