- 浏览: 2538329 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (676)
- linux运维 (157)
- php (65)
- mysql (78)
- nginx (27)
- apche (18)
- framework (6)
- windows (9)
- IDE工具 (23)
- struts2 (7)
- java (13)
- 移动互联网 (14)
- memcache redis (23)
- shell基础/命令/语法 (37)
- shell (50)
- puppet (4)
- C (11)
- python (9)
- 产品经理 (27)
- Sphinx (4)
- svn (12)
- 设计构建 (12)
- 项目管理 (44)
- SEO (1)
- 网站架构 (26)
- 审时度势 (42)
- 网络 (14)
- 激发事业[书&视频] (81)
- 其它 (12)
- 摄影 (8)
- android (21)
最新评论
-
zhongmin2012:
原文的书在哪里
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
renzhengzhi:
你好,请问个问题,从master同步数据到slave的时候,s ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
ibc789:
你好,看了你的文章,我想请教个问题, 我在用 redis的时候 ...
redis 的两种持久化方式及原理 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
自定义ip_conn.sh :http://zhumeng8337797.blog.163.com/blog/static/100768914201171664928247/
用php自定义 nagios监控插件
http://blog.csdn.net/sudoers/article/details/6913368
Writing a Nagios plugin with PHP
http://benedmunds.com/2012/04/25/writing-a-nagios-plugin-with-php/
/etc/init.d/nagios stop
/etc/init.d/nagios start
============== 1
增加nginx和php的监控
-----------1.1 主
基本配置 /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/commands.cfg 图3定义commands
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg 联系人 图4
cfg_file=/usr/local/nagios/etc/objects/templates.cfg 模板 图5
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg localhost.cfg中有类似的主机组设置
cfg_file=/usr/local/nagios/etc/objects/services.cfg
#vim /usr/local/nagios/etc/objects/commands.cfg
#check_php_test
define command{
command_name check_php_test
command_line
$USER1$/check_php_test.sh -H $HOSTADDRESS$ -c $ARG1$ -t 30
#
-t 30 # 加上一个 -t 30 指定限定时间为 30 秒
}
#vim /usr/local/nagios/etc/objects/services.cfg
define service{
use generic-service
host_name R620_web67,R620_web68
service_description check_php_test
contact_groups admins-ts
check_command
check_nrpe!check_php_test
notifications_enabled 1
normal_check_interval 3
retry_check_interval 2
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
}
編輯完主Nagios後可以用這一行检查配置
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
检查配置:
#/etc/init.d/nagios checkconfig
reload服务:
#/etc/init.d/nagios reload
-----------1.2 从:
客户机基本配置/usr/local/nrpe/etc/nrpe.cfg
或者 /usr/local/nagios/etc/nrpe.cfg
#vim /var/www/t.php
1
#vim /usr/local/nagios/libexec/check_php_test.sh
#!/bin/bash
#!/bin/bash
r=`/usr/bin/curl -s http://localhost/t.php`
if [ $r ] ;then
if [ $r == "1" ] ;then
echo "ok"
exit 0
else
echo "Please confirm the content of the file(t.php)!"
exit 1
fi
fi
echo "Service exception,May be the file(t.php) does not exist!"
exit 2
----------------------------------------- nagios检测并重启服务完整脚本 check_php_test.sh
#!/bin/bash
#nagios默认state
nagstate=0
#nagios默认描述
nagrs="ok"
#检测服务
function checkService () {
r=`/usr/bin/curl -s http://localhost/t.php`
echo "curl content:$r"
if [ $r ] ;then
if [ $r -eq 1 ] ;then
nagstate=0
nagrs="OK"
return 1
else
nagstate=1
nagrs="Please confirm the content of the file(t.php)!"
return 1
fi
fi
nagstate=2
nagrs="Service exception,attempts to restart services,please pay attention to the following message!"
return 1
}
#重新拉起ngin, php服务
function restartService () {
#pid /dev/shm/pid/nginx.pid;
nginxPath="/usr/local/nginx/conf/nginx.conf"
#pid = /dev/shm/pid/php-fpm.pid
phpPath="/usr/local/php/etc/php-fpm.conf"
`sudo chmod +x $nginxPath`
`sudo chmod +x $phpPath`
nginxPid=`cat $nginxPath | grep "pid" | tr -d ";" |awk 'BEGIN {FS=" "}{print $2}' | awk '{gsub(/ /,"")}1'`
phpPid=`cat $phpPath | grep "pid" | awk 'BEGIN {FS="="}{print $2}' | awk '{gsub(/ /,"")}1'`
if [ -f $nginxPid ] ;then
echo "restart nginx"
sudo /bin/kill -HUP `sudo cat $nginxPid`
else
echo "start nginx"
`sudo chmod +x /usr/local/nginx/sbin/nginx`
`sudo /usr/local/nginx/sbin/nginx`
fi
if [ -f $phpPid ] ;then
echo "retart php"
sudo /bin/kill -USR2 `sudo cat $phpPid`
else
echo "starg php-fpm"
`sudo chmod +x /usr/local/php/sbin/php-fpm`
`sudo /usr/local/php/sbin/php-fpm`
fi
return 1
}
#创建t.php文件
function toucthTphp () {
wwwTphp="/var/www/ssc/www/t.php"
htmlTphp="/var/www/html/t.php"
[ -d "/var/www/ssc/www" ] && `sudo chmod -R 777 /var/www/ssc/www/`;echo 1 > $wwwTphp
[ -d "/var/www/html" ] && `sudo chmod -R 777 /var/www/html/`;echo 1 > $htmlTphp
return 1
}
### 主程序###
function main () {
toucthTphp
checkService
[ $nagstate -ne 0 ] && restartService
checkService
return 1
}
main
echo $nagrs
exit $nagstate
------------------------ nagios的sudo需要手动输入密码问题
su - nagios
sudo /etc/init.d/sshd restart
需要输入密码
修改:
su -
#visudo
(或者sudo vi /etc/sudoers
)
#添加nagios 请求sudo,允许特定指令时(可跟参数),不需要密码
。
nagios ALL=(ALL) NOPASSWD: /etc/init.d/sshd restart
#找到 #Defaults requiretty 并取消注释,另外新增一行。表示nagios用户不需要登陆终端就可以调用命令 。
Defaults requiretty
Defaults:nagios !requiretty
su - nagios
sudo /etc/init.d/sshd restart
就不需要输入密码了
---------------------------------------END 检测并重启服务脚本
nrpe.cfg定义command:
check_php_test (如果缺少此步骤,在服务器端执行会提示NRPE: Command 'check_php_test' not defined)
#vim /usr/local/nagios/etc/nrpe.cfg
command[check_php_test]=/usr/local/nagios/libexec/check_php_test.sh
重启nrpe:
#/etc/init.d/xinetd restart
报错:NRPE: Unable to read output (页面上nagios的文字描述就是通过echo获取到的)
客户端脚本要有输出内容
echo "ok"
exit 0
****修改sh文件不需要重启任何服务
-----------1.3 主:
配置邮件联系人
#vim /usr/local/nagios/etc/objects/contacts.cfg
define contactgroup
{
contactgroup_name admins-ts
alias Nagios Administrators
members it-ts
}
define contact
{
contact_name it-ts
; Short name of user
use generic-contact ; Inherit default values from generic-contact template (defined abov
e)
alias sy.zed ; Full name of user
email idc.it@test.com ;#最终的邮件组
pager 1
}
host_name设置
#vim /usr/local/nagios/etc/objects/localhost.cfg
define host {
host_name R620_web67
alias Linux R620_web67
address 192.168.102.67
contact_groups admins-ts
check_command check-host-alive
notifications_enabled 1
process_perf_data 1
max_check_attempts 5
notification_interval 10
notification_period 24x7
notification_options d,u,r
action_url /nagios/pnp/index.php?host=$HOSTNAME$
parents TW_TS
}
-----------
1.4验证
在监控机上运行check_nrpe -H IP
可以查看到客户端的nrpe信息,说明监控机与被监控机的nrpedaemon通信是正常。
在服务器端:验证
/usr/local/nagios/libexec/check_nrpe -H 192.168.102.67 -c check_php_test
nagios页面查看 :
Hostgroup Overview -> R620_web67 -> check-php-test
----------其他:php方式简述
#check_php_test
define command{
command_name check_php_test
command_line
php
$USER1$/check_php_test.php
-H $HOSTADDRESS$ -c $ARG1$ -t 60
}
#vim /usr/local/nagios/libexec/check_php_test.php
<?php
error_reporting(0);
#fwrite(STDOUT, 'This check passed');
try{
$r = url_get_contents("http://localhost/t.php");
if ( false === $r || '1' != $r) {
exit(2);
}
} catch(Exception $e) {
exit(3);
}
exit(0);
function url_get_contents($strUrl, $boolUseCookie=false)
{
$ch = curl_init($strUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_REFERER, $_SERVER['HTTP_REFERER']);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
if ($boolUseCookie && is_array($_COOKIE) && count($_COOKIE) > 0) {
$cookie_str = '';
foreach($_COOKIE as $key => $value) {
$cookie_str .= "$key=$value; ";
}
curl_setopt($ch, CURLOPT_COOKIE, $cookie_str);
}
$response = curl_exec($ch);
if (curl_errno($ch) != 0) {
return false;
}
curl_close($ch);
return $response;
}
==============2 ip_conn.sh
客户端/usr/local/nrpe/etc/nrpe.cfg
或者 /usr/local/nagios/etc/nrpe.cfg
command[check_ips]=/usr/local/nrpe/libexec/ip_conn.sh 8000 10000
vim /usr/local/nrpe/libexec/ip_conn.sh
#!/bin/sh
#if [ $# -ne 2 ]
# echo "Usage:$0 -w num1 -c num2"
#exit 3
#fi
ip_conns=`nestat -an | grep tcp |grep EST |wc -l`
if [ $ip_conns -lt $1 ]
then
echo "OK -connect counts is $ip_conns"
exit 0
fi
if [ $ip_conns -gt $1 -a $ip_conns -lt $2 ]
then
echo "Warning -connect counts is $ip_conns"
exit 1
fi
if [ $ip_conns -gt $2 ]
then
echo "Critical -connect counts is $ip_conns"
exit 2
fi
#指定2个连接数,当连接数大于指定的第一个数的时候,给予warning警报,当连接数大于指定的第二个数的时候,给予Critical警报。
各客户端测试nrpe服务中各个插件的功能
[root@nagios-server libexec]# /usr/local/nrpe/libexec/ip_conn.sh 8000 10000
/usr/local/nrpe/libexec/ip_conn.sh: line 6: nestat: command not found
OK -connect counts is 0
服务端测试check_nrpe功能
[root@nagios-server libexec]# ./check_nrpe -H nagios-server -c check_ips
OK -connect counts is 0
各机器以独立守护进程启动nrpe服务
/usr/local/nrpe/bin/nrpe -c /usr/local/nrpe/etc/nrpe.cfg -d
服务器端启动nagios监控服务
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
启动apache服务器
/usr/local/apache/bin/apachectl -k start
发表评论
-
设置sudo为不需要密码
2015-04-17 09:04 10510有时候我们只需要执 ... -
haproxy 安装配置和负载实例
2015-03-27 11:49 11530一、环境说明实验环境 OS CentOS5.4 192.1 ... -
/dev/mapper/VolGroup00-LogVol00 100% 如何处理
2015-03-03 10:51 8208服务器磁盘跑满了, 命令查看 如下 [root@lo ... -
Tsar开源:淘宝内部大量使用的系统监控工具
2014-08-07 09:51 970Tsar是淘宝的一个用来收集服务器系统和应用信息的采集报告 ... -
Linux运维常用命令 (转载)
2013-01-31 10:23 25231 删除0字节文件find-type f - ... -
linux恢复 rm -rf 删除的文件:extundelete
2013-01-24 15:47 8910http://blog.csdn.net/pang6013 ... -
网站排障分析常用的命令
2013-01-21 18:17 1396------------------------------- ... -
迁移vmware服务器后Device eth0 does not seem to be present
2013-01-21 10:58 2248用VMware 安装 linux 6.0 ... -
LoadRunner如何监控Linux系统资源 : rpc.rstatd
2012-12-17 14:49 10294一 简述:LoadRunner监控Linux资源时弹出如下错误 ... -
僵尸Z进程和D进程
2012-12-10 16:47 13144-------------- 1 关于ZOMBIE进 ... -
Unix操作系统硬链接与符号链接的区别
2012-12-10 16:08 2020Unix操作系统有很多值得 ... -
nagios配置参数详解
2012-12-04 14:12 9440# Nagios return codes#定 ... -
【汇总】shell show收藏
2012-11-29 14:03 1268================== shell从文本取对应的 ... -
Kickstart+PXE+DHCP+TFTP+NFS自动安装Centos5
2012-11-29 11:34 1601http://5ydycm.blog.51cto.com/11 ... -
haproxy+keepalived高可用负载均衡(七层)
2012-11-29 10:36 4004HAproxy是一款基于TCP( ... -
LVS+Keepalived
2012-11-29 10:10 1732http://www.linuxvirtualserver.o ... -
haproxy & LVS*(keepalived和heartbeat) & ng的比较
2012-11-29 10:04 7588http://network.51cto.com/art/ ... -
运维架构师-并不遥远的彼岸
2012-11-28 17:45 1736在百度里搜索运维架构师,你会发现招聘的职位还不少并且月薪、年 ... -
puppet模块汇总
2012-11-21 17:08 3026在磁盘上,一个模块对应一个特殊的目录结构: MODULE_ ... -
puppet 之file
2012-11-21 16:43 2858===================== 实例1 创建 ...
相关推荐
在实际应用中,Nagios提供了丰富的自定义选项,包括报警阈值、报警方式(邮件、短信等)、监控频率等。你可以根据具体需求调整这些参数,以达到最佳的监控效果。 通过深入理解Nagios的工作机制,并熟练配置进程和...
Nagios是一款强大的开源网络监控系统,用于检测和通知服务、主机以及网络设备的状态变化。在本文中,我们将深入探讨如何安装和配置Nagios,以及它在网络监控中的作用。 一、Nagios概述 Nagios的核心功能是实时监控...
《Nagios监控安装配置详解》 Nagios是一款开源的网络监控系统,它能够对网络服务、主机、网络设备以及各种应用程序进行实时监控,确保IT基础设施的稳定运行。本文档详细介绍了Nagios的安装配置过程,包括监控插件的...
IP Hostname 备注 192.168.88.31 server nagios服务端 ...nagios客户端 ...nagios-plugins版本:2.2.1 ...添加监控脚本,设计一个能监控nginx端口的脚本;并添加到远程监控项目中; 添加监控脚本,设计一个能监控m
标题 "nagios+nginx+php配置监控平台" 涉及到的是一个网络监控解决方案,结合了Nagios(一款开源的网络监控系统),Nginx(一个高性能的HTTP和反向代理服务器),以及PHP(一种服务器端脚本语言)来搭建监控环境。...
Nagios是一款开源的企业级监控系统,用于监测网络服务、主机和应用程序的状态。它能够实时监控系统的运行状态,及时发现并通知系统管理员潜在的问题。Alerta则是一个灵活且可扩展的告警管理系统,旨在处理来自多个...
在这个“nagios服务端ndoutile+nagios+nagios_plugins.rar”压缩包中,包含了三个主要组件:ndoutils、nagios和nagios_plugins,这些都是构建一个功能完备的Nagios服务端所必需的。 首先,让我们来看看`ndoutils`。...
然而,本教程将介绍如何在Linux系统上使用Nginx搭建Nagios监控平台,以提供更加高效和安全的监控解决方案。 ### 系统环境 - 服务器操作系统:CentOS 5.3 x64 - Nginx版本:根据文档未明确给出,通常建议使用稳定...
总的来说,通过使用check_logfiles替代Nagios自带的check_logfile插件,我们可以更高效、更智能地管理日志监控,提高IT系统的稳定性和可靠性。记住,定期审查和调整监控策略是确保监控有效性的重要步骤,因为系统的...
Nagios的核心优势在于其灵活性和扩展性,允许用户通过自定义插件来满足特定的监控需求。 ##### 1.1 功能特点 - **监控资源**:支持对多种网络资源进行监控,包括但不限于SMTP、POP3、HTTP、NNTP、PING等。 - **...
【标题】"check_nginx_status-master.zip"是一个用于Nagios监控Nginx服务器状态的脚本集合。这个压缩包包含了一个完整的解决方案,帮助系统管理员实时监控Nginx服务的运行状况,确保Web服务器的稳定性和高效性。 ...
在IT运维领域,监控系统性能和网络流量至关重要,Nagios作为一款流行的开源网络监控系统,能够实时监控网络服务、主机以及各种系统资源。其中,check_traffic插件是Nagios监控流量的重要工具,它可以帮助我们实时...
### Linux下Nginx+Nagios监控平台搭建详解 随着Linux服务器稳定性和可用性的不断提高,企业对于线上服务的要求也越来越高。为了确保业务连续性及服务质量,很多企业都会部署专门的监控系统来实时监测服务状态,并在...
Nagios是一款开源的网络监控系统,用于监测主机、服务和网络状态,确保系统的稳定运行。它具有良好的稳定性、强大的功能,被广泛应用于各种规模的企业和组织。Nagios提供了主动模式和被动模式两种监控方式。 主动...
《Nagios系统监控实践(第2版)》是一本深度探讨Nagios系统监控的专著,旨在帮助读者理解和掌握如何有效地利用Nagios来监控IT基础设施的运行状态。Nagios是一款开源的网络监控系统,能够实时监控网络服务、服务器、...
Nagios是一款开源的网络监控系统软件,它可以帮助系统管理员跟踪网络中的主机和服务的状态,并在出现异常时通过电子邮件、短信或自定义的方式进行通知。本文档将详细介绍如何在CentOS 6.5 64位系统上安装配置Nagios...
nagios-plugins是一系列用于检查系统状态和服务状态的插件,而nrpe(Nagios Remote Plugin Executor)允许远程执行这些插件,使Nagios主服务器能够从远端收集监控数据。 1. 安装nagios-plugins: - 使用`useradd`...
在本文中,我们将深入探讨如何使用Nagios来监控Redis和MySQL这两种广泛应用的数据库服务。 首先,让我们关注Redis监控。Redis是一个内存中的数据结构存储系统,常用于缓存、消息队列和数据库等场景。为了确保Redis...
本文将详细介绍 Nagios 监控 Windows 主机的配置和应用,包括 NSClient++ 的安装和配置、NSClient++ 与 Nagios 服务器的通信等。 一、NSClient++ 安装 NSClient++ 是一个免费的开源插件,能够帮助 Nagios 监控 ...