参考文章:http://my.oschina.net/julienbin/blog/69186
环境:服务端 Ubuntu 10.04.4 LTS \n \l
客户端 Ubuntu 12.04.5 LTS \n \l
nagios3主程序版本:3.2.0
1.简介
nagios是一个用来监视系统和网络的开源应用软件,它通常运行于Liunx或Unix操作系统服务器上,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。Nagios 利用其众多的插件实现对本机和远端服务的监控,它是一个基于TCP/IP协议的软件包。Nagios适合各类企业的网络应用。
网络服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)
主机资源监控(CPU load、disk usage、system logs),也包括Windows主机(使用NSClient++ plugin)
通过监控各个服务的端口(用check_tcp插件来完成),来判断公司业务是否正常运行
2.基本架构
利用nagios服务器1.1.1.1来监控自己(localhost)和远程的linux主机2.2.2.2的负载,磁盘利用率,http,站点是否能访问,监控端口和各种service等内容。工作原理最经典的图是下面这个:
其中database不用即可,除非你有特殊的要求。
3.基本目录简介
nagios3主程序的配置文件目录/etc/nagios3
其中conf.d目录下的内容有下面这些,这些文件是定义host和service的,用来向插件的配置文件(定义commond的地方)传递具体的参数:
extinfo_nagios2.cfg generic-service_nagios2.cfg hostgroups_nagios2.cfg services_nagios2.cfg contacts_nagios2.cfg generic-host_nagios2.cfg
host-gateway_nagios3.cfg localhost_nagios2.cfg timeperiods_nagios2.cfg
ls /usr/lib/nagios/plugins //插件程序的位置
重要:怎么查看各个插件的使用帮助?
可以这样: /usr/lib/nagios/plugins/check_dns -h
/etc/nagios-plugins/config //插件的配置文件所在目录(里面定义了各种命令commond,它只是写出了带变量的通用命令,需要nagios的conf.d目录下定义host和service的配置文件来向其传递具体的参数)
nagios的监控页面具体存放的目录 在 /usr/share/nagios3目录下的htdocs目录下,
nagios安装完成后,会在apache2的/etc/apache2/conf.d目录下生成一个软链接文件,名字叫做nagios3.conf,它链接的真实文件是/etc/nagios3/apache2.conf,见下图:
看其内容:
你现在知道为什么访问 http://1.1.1.1/ngios3 会访问到监控页面了吧!它做了一个别名 /nagios3,访问的页面其实是/usr/share/nagios3/htdocs下面的网页。
4.安装基本的软件包
nagios服务端(1.1.1.1)需要安装的软件包有:
nagios3(主监控程序)
nagios-plugin(一般的插件,比如ssh等)
nagios-nrpe-plugin(nrpe插件,它和远程linux主机联系,用来收集它们的状态)
apache2和php5 监控页面的访问需要这2个软件哦!
安装命令:
sudo apt-get install nagios3 nagios-plugins nagios-nrpe-plugin apache2 php5
服务的启动:
sudo service nagios3 start
查看一下版本号:
nagios3 --version
Nagios Core 3.2.0
nagios被监控端(linux主机2.2.2.2)需要安装的软件包有:
nagios-plugin(一般的插件,比如ssh,http,disk等)
nagios-nrpe-server(nrpe服务端,它可以利用nagios-plugin中的插件来收集各种服务的状态信息并传递给nagios服务端1.1.1.1)
安装命令:
sudo apt-get install nagios-plugins nagios-nrpe-server
5.为了安全,访问首页的时候需要进行身份验证,下面用htpasswd命令来设置账号密码:
sudo htpasswd -c /etc/nagios3/htpasswd.users nagiosadmin
回车后根据提示输入密码 111111 ,这样访问http://1.1.1.1/nagios3 就能访问进入首页了。
注: -c 代表密码文件输出路径,即存放位置,文件名叫做htpasswd.users;后面的nagiosadmin是要设置的账号!
6.nagios主程序配置
6.1 /etc/nagios3/nagios.cfg //主配置文件,一些通用的配置,可根据需要设置,一般不用改
6.2 vim /etc/nagios3/conf.d/localhost_nagios2.cfg //这里定义要监控的本机资源的内容,像磁盘这些, "!" 号代表传递参数!!!!
切记切记:
在nagios配置文件中用定义的service向插件命令command传递参数的时候,那个check_command一定要与插件里面定义的command_name保持一致,即名字要一样,不然你把参数传给谁了?不一样就会调用错的。。
6.3 /etc/nagios3/conf.d/services_nagios2.cfg //这个文件是监控本机的服务的,比如ssh和http等,根据你的需要自行更改
7. nagios服务器上的插件配置
插件配置文件的目录上面已经说过了,是/etc/nagios-plugins/config
下面随便说一个文件,比如disk.cfg(检测磁盘使用率的),记得常看帮助哦。
/usr/lib/nagios/plugins/check_disk -h
切记切记:
在nagios配置文件中用定义的service向插件命令command传递参数(调用插件中定义的commond)的时候,那个check_command一定要与插件里面定义的command_name保持一致,名字要一样,不然你会调用错的!
就像这样配置,本机就会很容易实现监控的!
8.监控别的linux主机(2.2.2.2)
8.1 先在nagios服务器1.1.1.1上面配置
这就要靠nrpe插件了,即/usr/lib/nagios/plugins目录下的check_nrpe插件。
用 /usr/lib/nagios/plugins/check_nrpe -h 可查看帮助。
根据需要更改配置文件:(要看你设置几个变量),下面的配置我就设置一个变量即可!!
vim /etc/nagios-plugins/config/check_nrpe.cfg
define command {
command_name check_nrpe
command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$' -c '$ARG1$'
}
注:command_name check_nrpe //定义一个check_nrpe命令;
command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$' -c '$ARG1$'
//定义具体的命令,要利用的是/usr/lib/nagios/plugins/check_nrpe这个nrpe插件,-H 定义主机地址变量,-c定义要告诉远程被监控linux主机应该执行的动作,比如check_load这些。
在/etc/nagios3/conf.d 下面为远程主机2.2.2.2建立一个的配置文件,比如bm.cfg
这里用来定义host和service,向插件配置文件传递参数,参数一般为check_load(让远程主机监控其负载并向nagios服务器汇报)等。
vim bm.cfg
define host{ //定义一个新的主机
use generic-host ; Name of host template to use
host_name bm //定义主机名,要直观好记,你要认得
alias bm //别名,在网页上面显示的是这个名字
address 远程linux主机的ip地址
}
define service{ //定义要监控的service,这个是其中一个,监控远程主机的disk
use generic-service ; Name of service template to use
host_name bm
service_description micro_Disk //在网页上面显示的是这个名字
check_command check_nrpe!check_disk //调用插件配置文件/etc/nagios-plugins/config/check_nrpe.cfg中定义的check_nrpe命令,并向其传递参数check_disk, 意思是让nagios上面的nrpe插件来命令和控制远程主机要执行check_disk指令!!!
}
8.2 在远程被监控linux主机上面配置
进入nrpe服务器目录下:
cd /etc/nagios
ls -l //查看
-rw-r--r-- 1 root root 7414 Aug 16 09:49 nrpe.cfg
drwxr-xr-x 2 root root 4096 May 31 2013 nrpe.d
-rw-r--r-- 1 root root 117 May 31 2013 nrpe_local.cfg
编辑主配置文件:
vim nrpe.cfg
allowed_hosts=127.0.0.1,1.1.1.1 //把nagios服务器地址加进白名单!
# Values: 0=do not allow arguments, 1=allow command arguments
dont_blame_nrpe=1 //允许带参数,把参数改为1
调用插件里面定义的命令,并向插件传递具体的参数,找到下面这些根据需要添加或删除,注意其中[]里面的命令要与插件配置文件中定义的commond名字保持一致!!!! 另外你这里传递的参数的个数要与插件里面定义的 $ARG1$ 这些变量的个数保持一致。
就这样配置一下,基本上就可以了,打开监控网页看一下吧!
另外要注意,改完配置文件一定要重启啊!!!!
sudo service nagios3 restart //nagios3主程序重启
sudo service nagios-nrpe-server restart //被监控linux主机的nrpe服务的重启
怎么不用重启nagios3服务端来测试配置的语法是否有问题?
sudo /usr/sbin/nagios3 -v /etc/nagios3/nagios.cfg
/usr/sbin/nagios3 -h //查看主程序的使用帮助
Usage: /usr/sbin/nagios3 [options] <main_config_file>
-v的解释:
-v, --verify-config Verify all configuration data