nagios監控web/mysql多角度深度實戰部署過程分享(二)php
#########################################################
#《老男孩linux運維高薪就業培訓中心》
#nagios監控課程課上上機考試:
#date:2011-07-17
#做者:老男孩---《老男孩linux就業培訓中心 》
#QQ:31333741 MAIL:oldboy521@hotmail.com
#linux運維技術交流羣:45039636
#blog: http://oldboy.blog.51cto.com
#psite: http://oldboy.cc(即將開放)
#pblog:http://blog.etiantian.org
##########################################################node
《老男孩linux運維高薪就業培訓中心》-nagios監控課程課上上機考試:mysql
█ █問題2:假如從nagios服務器能夠經過命令 mysql -utest -ptest -S /data/3306/mysql.sock -h 10.0.0.16 鏈接mysql服務
1.請分別使用主動及被動方式監控mysql服務是否正常。
2.請自行開發插件實現對MYSQL主動及被動的監控linux
##########################
██ 被動方式監控服務的配置方法
##########################
被動方式監控mysql服務的配置方法ios
1、客戶端client(被監控的mysql服務器):web
1.調試check_mysql命令sql
█ 1.1 進入被監控的mysql服務器,登錄到mysql中,執行行下面命令創建測試賬號賬戶供監控使用
[root@nagios-client objects]# mysql -uroot -p -S /data/3306/mysql.sock
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.0.56-log Source distribution數據庫
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.服務器
mysql> grant select on test.* to passivemonitor@'localhost' identified by 'oldboy123';
Query OK, 0 rows affected (0.02 sec)運維
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
提示:
1.用被動方式監測在受權時能夠儘可能的小。好比只給localhost.
2.有關mysql的grant命令請你們查閱mysql相關文檔,或參考老男的相關數據庫教案或文檔
█ 1.2進入nagios libexec插件目錄,測試check_mysql插件。
[root@nagios-client etc]# /usr/local/nagios/libexec/check_mysql -upassivemonitor -p oldboy123 -s /data/3306/mysql.sock
Uptime: 5594 Threads: 1 Questions: 422 Slow queries: 0 Opens: 11 Flush tables: 1 Open tables: 6 Queries per second avg: 0.075
█ 1.3 編輯nrpe.cfg,在結尾加入以下內容:
command[check_mysql]=/usr/local/nagios/libexec/check_mysql -upassivemonitor -p oldboy123 -s /data/3306/mysql.sock -H localhost
提示:這裏這裏假設你mysql服務客戶端nrpe的已正確安裝。
█ 1.4 重起nrpe:
pkill nrpe && /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d && ps -ef|grep nrpe
2、服務端nagios server的配置:
█ 2.1 在nagios中加入以下配置:
[root@nagios-server oldboy]# cat mysql_check.cfg
define service {
use generic-service
host_name 151-oldboytest
service_description check_mysql-151
check_command check_nrpe!check_mysql
max_check_attempts 2
normal_check_interval 4
retry_check_interval 4
check_period 24x7
notification_interval 1200
notification_period 24x7
notification_options w,u,c,r
contact_groups admins
process_perf_data 1
}
█ 2.2 檢查語法並重起nagios
/etc/init.d/nagios checkconfig #======》修改過的檢查語法腳本,比敲一行檢查語法命令,舒服多了
/etc/init.d/nagios reload
█ 2.3 進入界面查看變化
check_mysql-151 OK 04-24-2011 16:34:05 0d 0h 0m 39s 1/2 Uptime: 998 Threads: 1 Questions: 14 Slow queries: 0 Opens: 11 Flush tables: 1 Open tables: 6 Queries per second avg: 0.014
※提示:被動監控方式遇到問題判斷及檢查辦法 首先可在[客戶端]執行以下命令檢查
/usr/local/nagios/libexec/check_mysql -upassivemonitor -p oldboy123 -s /data/3306/mysql.sock
若是沒問題,再在nagios服務器端經過nrpe檢查:
/usr/local/nagios/libexec/check_nrpe -H 10.0.0.151 -c check_mysql
====》這裏的check_mysql就是調用客戶端的nrpe中的配置。10.0.0.151爲客戶端的IP
若是沒有,那多是服務端的配置不對等問題了。這樣問題就能被最小化的定位了,排查起來就方便了。
上面幾行是本文的重點。
例:
[root@nagios-server objects]# /usr/local/nagios/libexec/check_nrpe -H 172.16.1.35 -c check_load
OK - load average: 0.00, 0.00, 0.00|load1=0.000;15.000;30.000;0; load5=0.000;10.000;25.000;0; load15=0.000;5.000;20.000;0;
[root@nagios-server objects]# /usr/local/nagios/libexec/check_nrpe -H 10.0.0.163 -c check_disk
DISK OK - free space: / 4481 MB (62% inode=93%);| /=2681MB;6041;6947;0;7552
這是個從服務端以被動方式經過客戶端nrpe的配置取負載及磁盤數據,這個命令很典型。
##########################
██主動方式監控服務的配置方法
##########################
主動方式監控MYSQL服務的配置方法
提示:如下徹底在nagios服務器端操做
█ 1.首先來調試check_mysql命令
[root@nagios-server /]# cd /usr/local/nagios/libexec/
[root@ha1 libexec]# ./check_mysql -utest -ptest -s /data/3306/mysql.socket -H 10.0.0.16
Uptime: 4150 Threads: 1 Questions: 13 Slow queries: 0 Opens: 11 Flush tables: 1 Open tables: 6 Queries per second avg: 0.003
提示:check_mysql具體用法可執行./check_mysql -h 查看
█ 2.在命令行調試正確後,咱們來編輯command.cfg,定義mysql服務檢查命令
# 'check_mysql' command definition
define command{
command_name check_mysql #======》這個名稱會在service.cfg中被調用。
command_line $USER1$/check_mysql -utest -ptest -s /data/3306/mysql.socket -H 10.0.0.16 #======》這裏就是實際的操做命令了。
}
█ 3.編輯host.cfg配置文件,增長以下內容
# Define hosts
#written by oldboy
#qq 31333741
define host{
use linux-server
host_name 151-oldboymysql
alias 151-oldboymysql
address 10.0.0.16
process_perf_data 1
}
# Define an optional hostgroup for Linux machines
define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members ldap-master,151-oldboytest,151-oldboymysql
}
#graphic for hosts create by (oldboy)!
define hostextinfo {
host_name ldap-master,151-oldboytest,151-oldboymysql
action_url /nagios/pnp/index.php?host=$HOSTNAME$ #======》主機增長太陽圖標,即出圖。
}
提示:若是沒配好PNP服務,上面的hostextinfo 段不須要配
█ 4.編輯服務配置service.cfg
define service {
use generic-service
host_name 151-oldboymysql #======》這裏使用host.cfg中定義的配置
service_description check_mysql
check_command check_mysql #======》這裏是調用command.cfg中的check_mysql
max_check_attempts 2
normal_check_interval 4
retry_check_interval 4
check_period 24x7
notification_interval 1440
notification_period 24x7
notification_options w,u,c,r
contact_groups admins
process_perf_data 1
action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
#======》監控mysql服務增長太陽圖標,即出圖。
}
█ 5.檢查語法並重起nagios
/etc/init.d/nagios checkconfig #======》修改過的檢查語法腳本,比敲一行檢查語法命令,舒服多了
/etc/init.d/nagios reload
█ 6.進入界面查看變化
151-oldboymysql check_mysql OK 07-17-2011 11:16:22 0d 0h 9m 3s 1/2 Uptime: 4368 Threads: 1 Questions: 18 Slow queries: 0 Opens: 11 Flush tables: 1 Open tables: 6 Queries per second avg: 0.004
截圖:
提示:若是沒有check_mysql,能夠從老師的安裝包中找到,而後yum install mysql* -y 執行mysql相關包安裝。
若是還不行,那就須要從新安裝nagios-plugin插件包。
提示:主動方式遇到遇到問題判斷及檢查辦法
[root@nagios-server libexec]# ./check_http -I 10.0.0.151 -w 15 -c 30
HTTP OK HTTP/1.1 200 OK - 266 bytes in 0.004 seconds |time=0.003504s;15.000000;30.000000;0.000000 size=266B;;;0
[root@nagios-server libexec]# ./check_http -I www.baidu.com -w 15 -c 30
HTTP OK HTTP/1.1 200 OK - 8073 bytes in 0.112 seconds |time=0.111934s;15.000000;30.000000;0.000000 size=8073B;;;0
####################################################################################
##########################
██手工開發腳本監控mysql服務的配置方法
█ 一、check_mysql通用腳本以下
##########################
#!/bin/sh
############################################
# this script function is : #
# check_mysql #
# Create by oldboy 2011-07-17 #
# mail:oldboy521@gmail.com qq:31333741 #
############################################
PROGNAME=`basename $0`
PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
. $PROGPATH/utils.sh
█ 部署過程就很少費筆墨了,你們能夠參考WEB手工開發插件的部分,
若是有不會的,告訴我,我之後補上。
nagios監控web/mysql多角度深度實戰部署過程分享(二)完。
請關注 nagios監控web/mysql多角度深度實戰部署過程分享(三)