小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引擎,超大資料庫備份
執行腳本: