下文為各位介紹一個linux中nagios pnp4nagios 圖形監控 mysql的教程希望這篇文章可以幫助到各位哦,nagios圖形界面還是比較麻煩的,下面以mysql為例來說一下,監控mysql的插件比較多,在這里了解方法,而不是死搬硬套.
一,安裝pnp4nagios
[root@localhost objects]# yum install pnp4nagios rrdtool
如果找不到包換epel源,博客里面有搜一下,關于nagios的安裝,請參考:nagios 安裝配置,詳解.
二,配置nagios
1,修改nagios.cfg
- [root@localhost objects]# vim /etc/nagios/nagios.cfg //修改以下內容
- process_performance_data=1 //由0改為1
- host_perfdata_command=process-host-perfdata //前面的注釋拿掉
- service_perfdata_command=process-service-perfdata //注釋拿掉
- enable_environment_macros=1 //如果有注釋拿掉
2,修改commands.cfg
注釋掉原有對process-host-perfdata和process-service-perfdata,重新定義
- [root@localhost objects]# vim /etc/nagios/objects/commands.cfg
- define command {
- command_name process-service-perfdata
- command_line /usr/bin/perl /usr/libexec/pnp4nagios/process_perfdata.pl
- }
- define command {
- command_name process-host-perfdata
- command_line /usr/bin/perl /usr/libexec/pnp4nagios/process_perfdata.pl -d HOSTPERFDATA
- }
3、修改配置文件templates.cfg,添加以下內容:
- [root@localhost objects]# vim /etc/nagios/objects/templates.cfg
- define host {
- name hosts-pnp
- register 0
- action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_
- process_perf_data 1
- }
- define service {
- name srv-pnp
- register 0
- action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
- process_perf_data 1
- }
4,修改服務器配置文件localhost.cfg
- [root@localhost objects]# vim /etc/nagios/objects/localhost.cfg
- define host{
- use linux-server,hosts-pnp
- host_name localhost
- alias localhost
- address 127.0.0.1
- } //Vevb.com
- define service{
- use local-service,srv-pnp
- host_name localhost
- service_description PING
- check_command check_ping!100.0,20%!500.0,60%
- }
上面只是例舉了一個,你可以都加一下.
三,pnp4nagios配置
在網上好多關于pnp4nagios的文章,都是要把mv misccommands.cfg-sample misccommands.cfg 生成配置文件,我是yum安裝的,安裝目錄下根本沒有sample這樣的東西.
- [root@localhost objects]# tree /etc/pnp4nagios/
- /etc/pnp4nagios/
- ├── background.pdf
- ├── check_commands
- │ ├── check_all_local_disks.cfg
- │ ├── check_nrpe.cfg
- │ └── check_nwstat.cfg
- ├── config.php
- ├── misccommands.cfg
- ├── nagios.cfg
- ├── npcd.cfg
- ├── pages
- │ └── web_traffic.cfg
- ├── pnp4nagios_release
- ├── process_perfdata.cfg
- └── rra.cfg
所在我根本沒有配置任何東西.
四,重啟nagios,啟動npcd
- [root@localhost pnp4nagios]# /etc/init.d/npcd start
- [root@localhost pnp4nagios]# /etc/init.d/nagios restart
五,nginx配置
配置nginx的時候,配置挺頭痛的,nagios的根目錄是有php的,pnp4nagios是放在nagios的根目錄下面,pnp4nagios也是php的,配置不好容易錯亂的.
- server
- {
- listen 80;
- server_name nagios.xxxx.com;
- index index.php;
- root /usr/share/nagios/html;
- location ~ .*\.(php|php5)?$ { //nagios根目錄的php
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- include fastcgi.conf;
- }
- location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { //nagios的圖片重寫
- rewrite ^/nagios/images/(.*) /images/$1 break;
- rewrite ^/pnp4nagios/index.php/(.*) /pnp4nagios/$1 break;
- expires 30d;
- }
- location ~ .*\.(js|css)?$ { //nagios的js,css重寫
- rewrite ^/nagios/stylesheets/(.*) /stylesheets/$1 break;
- rewrite ^/nagios/js/(.*) /js/$1 break;
- rewrite ^/pnp4nagios/index.php/(.*) /pnp4nagios/$1 break;
- expires 1h;
- }
- location ~ .*\.cgi$ { //nagios的主程序是perl的,perl的cgi重寫
- root /usr/lib64/nagios/cgi-bin;
- rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;
- fastcgi_pass 127.0.0.1:9001;
- fastcgi_index index.cgi;
- include fastcgi.conf;
- }
- location ~ ^(/pnp4nagios.*\.php)(.*)$ { //pnp4nagios的php重寫
- rewrite ^/pnp4nagios/index.php/index.php/(.*)$ /pnp4nagios/index.php/$1; break;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- include fastcgi.conf;
- }
- }
在這里有一個問題就是http://nagios.xxxx.com/pnp4nagios/index.php/index.php/graph?host=localhost&srv=PING在這里有二個index.php,這個是php的程序加上去的,我并沒有改,同一個頁面有二種鏈接.
由nagios的監控頁面,跳轉到pnp4nagios監控頁面的連接是
http://nagios.xxxx.com/pnp4nagios/index.php/graph?host=localhost&srv=PING
點php4nagios監控頁面中的連接然后就會多加一個index.php,http://nagios.xxxx.com/pnp4nagios/index.php/index.php/graph?host=localhost&srv=PING
這也是上面我為什么要加這一句rewrite ^/pnp4nagios/index.php/index.php/(.*)$ /pnp4nagios/index.php/$1;break;的原因.
二,安裝perl mysql擴展
# yum install perl-Class-DBI-mysql
三,check_mysqld.php和check_mysqld.pl
1,下載
- http://exchange.nagios.org/components/com_mtree/attachment.php?link_id=174&cf_id=30
- http://exchange.nagios.org/components/com_mtree/attachment.php?link_id=174&cf_id=36
2,修改check_mysqld.php和check_mysqld.pl,本機是64位,根本沒有/usr/lib/nagios,所以要把文件中的lib改成lib64.
3,copy和修改文件權限
- # cp check_mysqld.pl /usr/lib64/nagios/plugins
- # chmod 755 /usr/lib64/nagios/plugins/check_mysqld.pl
- # chgrp nagios /usr/lib64/nagios/plugins/check_mysqld.pl
- # cp check_mysqld.php /usr/share/nagios/html/pnp4nagios/templates.dist
四,nagios配置
1,修改command.cfg
- # vim /etc/nagios/objects/commands.cfg
- define command{
- command_name check_mysqld
- command_line $USER1$/check_mysqld.pl -H $HOSTADDRESS$ -u nagios -p $USER7$ -a uptime,threads_connected,questions,slow_queries,open_tables -w ',,,,' -c ',,,,' -A $USER21$
- }
2,修改resource.cfg
- # vim /etc/nagios/objects/resource.cfg
- $USER7$=nagios
- $USER21$='com_select,com_update,com_insert,com_insert_select,
- com_commit,com_delete,com_rollback,aborted_clients,
- aborted_connects,binlog_cache_disk_use,binlog_cache_use,
- bytes_received,bytes_sent,connections,created_tmp_disk_tables,
- created_tmp_files,created_tmp_tables,delayed_errors,
- delayed_insert_threads,delayed_writes,handler_update,handler_write,
- handler_delete,handler_read_first,handler_read_key,
- handler_read_next,handler_read_prev,handler_read_rnd,
- handler_read_rnd_next,key_blocks_not_flushed,
- key_blocks_unused,key_blocks_used,key_read_requests,key_reads,
- key_write_requests,key_writes,max_used_connections,
- not_flushed_delayed_rows,open_files,open_streams,open_tables,
- opened_tables,prepared_stmt_count,qcache_free_blocks,
- qcache_free_memory,qcache_hits,qcache_inserts,
- qcache_lowmem_prunes,qcache_not_cached,
- qcache_queries_in_cache,qcache_total_blocks,questions,
- select_full_join,select_rangle_check,slow_launch_threads,
- slow_queries,table_locks_immediate,table_locks_waited,
- threads_cached,threads_connected,threads_created,
- threads_running'
在這里要注意,$USER21$后面的內容要在一行.
3,修改localhost.cfg
- # vim /etc/nagios/objects/localhost.cfg
- define service {
- use local-service,srv-pnp //srv-pnp換成你自定義的
- host_name localhost
- service_description MYSQLD
- check_command check_mysqld!localhost!nagios!nagios
- }
- 4,pnp4nagios中增加check_mysqld.cfg
- # vim /etc/pnp4nagios/check_commands/check_mysqld.cfg
- DATATYPE = COUNTER
五,重啟nagios
- # /etc/init.d/npcd restart
- # /etc/init.d/nrpe restart
- # /etc/init.d/nagios restart
新聞熱點
疑難解答