CactiNagiosNtop整合安装于CentOS上
http://freeze.blog.51cto.com/1846439/386828

Cacti的实例应用
1)网络设置
3)cacti常见的监测对象2)主机系统 (1)网络接口流量(进与出的带宽) (2)监控CPU的负载、内存等等 (3)监控磁盘的空间、进程数等等 .........................................等等 (1)服务器资源:CPU、内存、磁盘、进程、连接数等 (2)服务器类型:WEB、Mail、FTP、数据库、中间件 (3)网络接口:流量、转发速度、丢包率 (4)网络设备性能、配置文件(对比与备份)、路由数 (5)安全设备性能、连接数、攻击数 (6)设备运行状态:风扇、电源、温度 (7)机房运行环境:电流、电压、温湿度 |
1)监控网络服务(SMTP、POP3、HTTP、NNTP、PING等)
2)监控主机资源(处理器负荷、磁盘利用率等) 3)简单地插件设计使得用户可以方便地扩展自己服务的检测方法 4)并行服务检查机制 5)具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态 6)当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式) 可以通过飞信,等方式实现时,既可传递给管理员,可高效的保证服务器的维护。
7)具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位 8)自动的日志回滚 9)可以支持并实现对主机的冗余监控 10)可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等 |
(1)NRPE:用来在监控的远程Linux/Unix主机上执行脚本插件以实现对这些主机资源的监控
(2)NSCA:用来让 被监控的远程Linux/Unix主机主动将监控信息发送给Nagios服务器(这在冗余监控模式中特别要用到)
(3)NSClient++:用来监控 Windows主机时安装在Windows主机上的组件
(4)NDOUtils:则用来将Nagios的配置信息和各event产生的数据存入数据库,以实现 这些数据的快速检索和处理
这四个ADDON(附件)中,NRPE和NSClient++工作于客户端,NDOUtils工作于服务器端,而NSCA则需要同时安装在服务器端和客户端
NTOP提供以下一些功能:
① 自动从网络中识别有用的信息;
② 将截获的数据包转换成易于识别的格式;
③ 对网络环境中的通信失败进行分析;
④ 探测网络环境下的通信瓶颈;
⑤ 记录网络通信时间和过程;
⑥ 自动识别客户端正在使用的操作系统;
⑦ 可以在命令行和Web两种方式下运行。
|
yum install httpd php php-mysql mysql mysql-server php-snmp net-snmp-utils -y
安装完成后让服务都启动并调整之间的连接关系.
service mysqld start # 启动mysql服务
chkconfig mysqld on #使其开机自动启动
启动完mysql后,如果出现以下画面,并能通过mysql进入,说明成功安装。
之后编辑httpd服务的配置文件,使其支持mod_status.so模块.,
只要在/etc/httpd/conf/httpd.conf的配置文件中找到
LoadModule status_module modules/mod_status.so
有这一项表示已经支持状态检测模块,所以无需额外添加,直接启动web服务即可.
service httpd start #启动http服务
chkconfig httpd on #开机自动启动httpd 服务
启动OK后,编辑
vim /var/www/html/index.php 在其中添加以下内容#
<?php
phpinfo(); ?> # 保存退出
用web浏览器访问,如果出现以下画面,则表示http支持动态php.并能与php成功连接.
接着测试与mysql的连接,先给mysql设置个管理员密码
mysqladmin -uroot password '123456' #密码设置为123456
编辑刚才的web页面
vim /var/www/html/index.php
把里面的内容改为
<?php $link=mysql_connect("localhost","root","123456"); if(!$link) echo "FAILD!"; else echo "OK!"; ?> 刷新刚才的web浏览器页面,如果出现OK!字样,则表示成功连接.
|
其中主要用到的是rrdtool-1.2.27-3.el5.i386.rpm 和rrdtool-devel-1.2.27-3.el5.i386.rpm和rrdtool-php-1.2.27-3.el5.i386.rpm这三个包,其余的包是其他扩展功能和其他脚本语言结合的.笔者就不过多演示了.
安装以上三个包
cd /root/rrdtool/ #笔者rpm包所在的地方,可以做修改
yum -y localinstall --nogpgcheck rrdtool-1.2.27-3.el5.i386.rpm
yum -y localinstall --nogpgcheck rrdtool-devel-1.2.27-3.el5.i386.rpm
yum -y localinstall --nogpgcheck rrdtool-php-1.2.27-3.el5.i386.rpm
|
登录数据库
mysql -uroot -p
##会提示你输入密码,笔者在前面设置的密码为 123456
mysql> create database cactidb;
mysql> GRANT all privileges ON cactidb.* TO cactier@localhost IDENTIFIED BY '123456';
mysql> GRANT all privileges ON cactidb.* TO cactier@127.0.0.1 IDENTIFIED BY '123456';
mysql> GRANT all privileges ON cactidb.* TO cactier@192.168.0.0 IDENTIFIED BY '123456';
##说明 笔者指定了一个网段的授权,是将来做监控时数据库和监控工具不在同一台主机上,网段可根据自己需要进行授权。
mysql> flush privileges;
|
(4)配置SNMP
在net-snmp的主配置文件/etc/snmp/snmpd.conf中,默认的community为public,建议将public修改为您需的密码项,笔者在此就不做修改了,使用默认密码public
接着,启动snmp进程
service snmpd restart #如果修改过snmpd.conf 则需要重启服务
|
首先要去cacti官网下载cacti的gz源码包,目前最新的版本是0.8.7.g 从官方网站的说明and a webserver that supports PHP such as Apache or IIS.就知道以上的准备工作是必须要做的.
重要说明:如果用0.8.7g版本的cacti,在后面整合nagios时可能出现bug,笔者推荐用0,8.7e版本的,笔者演示用的是0.8.7g原理一样.
下载完成后就可以解压缩了,笔者放在了/root/目录下
cd /root
tar zxvf cacti-0.8.7g.tar.gz
mv cacti-0.8.7g /var/www/html/cacti
##因为cacti的配置是在web页面下进行的,所以笔者直接把cacti-0.8.7g 移至/var/www/html/cacti
cd /var/www/html/cacti
mysql -uroot -p cactidb < cacti.sql
##将cacti.sql数据库文件导入,会提示输入密码输入前面设置的root 的密码即可
编辑cacti的主配置文件,为其指定对应的数据库参数:
vim /var/www/html/cacti/include/config.php
将下列各参数的值修改为您前面所设定的:
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactier";
$database_password = "123456";
$database_port = "3306";
修改完成后保存退出。
添加cactier用户 并给其设置密码
useradd cactier
passwd cactier cd /var/www/html/cacti/
chown -R cactier rra/ log/ #指定rra/ log/的属组属主为cactier用户
vim /etc/crontab
##编辑crontab文件 在空白行添加以下内容
*/5 * * * * cactier php /var/www/html/cacti/poller.php > /dev/null &
#每5分钟以cactier去抓取数据绘图,这个时间5分钟应该是最小间隔了,笔者不建议修改为更小值。
记的要把selinux 关闭,不然不能从web页面访问的,关闭方法如下
setenforce 0 #只是临时关闭
好了,下面就可以用web浏览器访问cacti进行配置管理了。
笔者所用虚拟机ip为192.168.0.39 ## IP根据自己实际情况可做相应修改
从浏览器直接访问以下地址 即可看到cacti配置画面
如果看到以下画面,则可以进行之后的配置
点击下一步。
如果上面全是[FOUND],则可以点击Finish 完成,中间的路径可能与图片不同。
Finish后就会出现登陆画面
用户名admin 密码admin 即可登陆 (第一次登陆后会强行让修改密码)
进入后点击graphs 会显示流量图
如果不出现图片执行以下命令让其手动绘图即可.
su - cactier
php /var/www/html/cacti/poller.php > /dev/null 2>&1
exit
数据部分启动较慢,请耐心等待,如显示如上图片数据,则成功安装配置。
##cacti的具体使用笔者不做过多介绍,有意者可去官方网站阅读官方文档。
|
先下载源码包,目前官方的最新版本如下图
插件版本
下载之.笔者放在了 /root/nagios目录下
nagios 需要一些基础支持套件才能运行,如apache,gcc,glibc,gd库等。
useradd -m nagios #添加一个名为nagios的用户来运行nagios groupadd nagios #添加nagios用户组,用以通过web页面提交外部控制命令 usermod -a -G nagios daemon #将运行apache用户daemon加入nagios组 cd /root/nagios #该目录是你下载的nagios源码包所在位置
tar zxvf nagios-3.2.2.tar.gz #解压
cd nagios-3.2.2
注意下面--with-httpd-conf 的路径,取决与你apache的,如果是yum安装的apache,则路径为:
/configure --with-command-group=nagios --with-httpd-conf=/etc/httpd/conf/extra/
##如果没有报错,就进行一下步骤
make all
make install make install-init make install-config make install-commandmode #安装完成没有报错开始以下配置 vim /usr/local/nagios/etc/objects/contacts.cfg
##修改nagiosadmin这行其中的邮件地址为你的email地址,以将报警邮件发到你的邮箱
make install-webconf
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
##设置登陆web界面时HTTP验证的账号密码如果apache是用源码编译安装的话,该指令改为如下所示:
#/usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
下面修改httpd.conf ,笔者是yum装的apache ,配置文件的路径为如下所示: vim /etc/httpd/conf/httpd.conf
在空白地方添加一下两行
# nagios default settings Include conf/extra/nagios.conf 以上过程配置结束以后需要重新启动httpd:
# service httpd restart
如果可以正常启动,下面就可以开始编译、安装nagios-plugins
nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件。
tar zxvf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
##下面是一些配置
(1)把nagios添加为系统服务并将之加入到自动启动服务队列:
chkconfig --add nagios
chkconfig nagios on
(2)检查其主配置文件的语法是否正确:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
(3)如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了:
service nagios start
(4)配置selinux
如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。您可以通过下面的命令来检查您的系统是否开启了selinux:
getenforce
如果上面命令的结果显示开启了selinux服务,您可以通过下面的命令暂时性的将其关闭:
setenforce 0
如果您想在以后完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值“force”修改为“disable”即可。
##当然,您也可以通过以下方式将nagios的CGI程序运行于SELinux/targeted模式而不用关闭selinux:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
chcon -R -t httpd_sys_content_t /usr/local/nagios/share
(5)通过web界面查看nagios:
http://your_nagios_IP/nagios
登录时需要指定前面设定的web认证帐号和密码。
注意:为了nagios系统的安全,建议您使用信息摘要强认证模式(如MD5),强制使用web的TSL/SSL安全通讯模式,并且通过访问控制列表设定能访问nagios的web界面的客户端地址。
登录后看到以下画面则表示成功安装。
##说明##
3.2.2版本的nagios有个bug .安装完在/usr/local/nagios/sbin目录下没有原来的statusmap.cgi执行脚本
点击左边的current status 中的Map会显示找不到页面,解决方法只能从老版本中拷贝一个statusmap.cgi到/usr/local/nagios/sbin目录下了,并赋予执行权限。
如果此时Nagios进程已启动,则需要停止并重新启动nagios:
# killall -SIGHUP nagios
# rm -f /usr/local/nagios/var/nagios.lock
# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
可进入nagios的web管理页面查看log,如果出现以下字样,则表示正常运行。
说明:
i)此处停止Nagios必须通过向Nagios发送SIGHUP信号的方式进行;
ii)建议此时查看nagios日志文件中是否表明ndomod的模块加载是否正常,以及其是否能正常连接到data sink;查看日志,可以使用如下命令实现:# tail -30 /usr/local/nagios/var/nagios.log
排错信息:
i) 如果ndomod模块没能正常加载的话,建议重新检查nagios的配置文件中是否添加了所需的broker module条目;
ii) 同时,如果ndomod没有正常连接到data sin,建议查看ndo2db.cfg文件中关于mysql连接项目的指定是否正确;
iii)确认一下在编译NDOUtils时是否指定了关于mysql库文件位置的选项;
|
在官网找了副图片,简单的介绍了ntop的工作流程。 图片右边显示的是目前官方最新的ntop版本 为4.0.1下载之
1、下载安装所需要的环境:
需要事先下载并安装GeoIP和GetIP-devel两个rpm包; yum -y --nogpgcheck localinstall GeoIP-*.el5.i386.rpm 接着是ettercap相关的rpm包(ettercap,ettercap-common,需要下载,这里没指定具体的版本号,你可以根据自己的实际情况进行安装): yum -y --nogpgcheck localinstall ettercap-*.rpm 而后安装开发环境,尤其是以下几个rpm包: yum install libpcap libpcap-devel gdbm gdbm-devel zlib zlib-devel 2、安装ntop useradd -M -s /sbin/nologin -r ntop tar zxvf ntop-4.0.1.tar.gz cd ntop-4.0.1 ./autogen.sh make
make install chown -R ntop:ntop /usr/local/share/ntop chown -R ntop:root /usr/local/var/ntop 3、配置并启动ntop
首先为ntop的admin用户设置密码: ntop -A 接下来启动ntop: ntop -i eth0 -d -L -u ntop 使之开机自动启动: echo 'ntop -i eth0 -d -L -u ntop &> /dev/null' >> /etc/rc.d/rc.local 用web页面访问http://yourIP:3000 如果出现以下换面 则表示运行正常
|
笔者在上文所安装的cacti版本为0.8.7g,支持插件的补丁就选用cacti-plugin-0.8.7g-PA-v2.8.tar.gz
下载后进行解压缩
tar zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
cd cacti-plugin-arch
cp -R * /var/www/html/cacti/
mysql -uroot -p cactidb <pa.sql
patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
打完补丁后图片有时不会显示,这是需要修改下/var/www/html/cacti/include目录下的config.php文件
修改$url_path后面的值:
$url_path = "/cacti/";
修改完成直接web页面登陆,http://yourIP/cacti
选择左下的User Managenment 之后点击admin
在其中最后一项打钩,并保存
好了,现在cacti就支持其他插件功能了,下面把ntop和nagios加进去就可以了
|
- 首先去下载cacti的ntop插件,而后解压至cacti的插件目录:
- # tar zxvf ntop-0.1.tar.gz -C /var/www/html/cacti/plugins/
- 接着配置cacti的主配置文件,启用此插件:
- # vim /var/www/html/cacti/include/config.php
- 添加如下内容:
- $plugins[] = 'ntop';
- 接下来到cacti的控制台中"settings"中配置此插件,将其指向实际的ntop服务器所在的URL;然后再到cacti控制台的"user Management"中的admin用户中启用此插件即可。
安装Nagios Plugin for Cacti(NPC)插件(http://trac2.assembla.com/npc)
作用:将nagios的数据通过ndo2db导入到mysql数据库,然后cacti读取数据库信息将nagios的结果通过NPC展示出来。 一、nagios需要的包 1.下载并安装ndoutils
2.准备配置文件
3.修改nagios.cfg配置文件以适应当前环境
4.修改ndo2db.cfg以适应当前环境
5.修改ndomod.cfg以适应当前环境
6.为ndo2db添加启动进程
7.启动守护进程与nagios
service ndo2db start
tail -20 /var/log/messages ## 查看其中是否有错误出现。如无报错请继续
service nagios start
二:安装ncp,以在Cacti中展现Nagios
## 为cacti配置文件打补丁的时候注意在为include/config.php打补丁的时候有可能它将 include/config.php.dist给打补丁了,我们只需要手动加入下面的内容即可。
2.安装npc
3.安装 npc支持:json
php -i | grep php.ini ## 查看是否有导入信息
4.打开php.ini文件添加对json的支持
vim /etc/php.ini
# 添加
extension=json.so
5.为apache添加php支持。
6.修改配置文件以让npc读取到新的数据。
6.1
从Web进入Cacti,确保正确使用npc选项。
6.2 修改mysql中的表结构:
7.重启ndo2db进程,重新加载配置文件重启nagios服务。
service ndo2db restart
service nagios restart
8.在Web上配置NPC以使之正常读取工作。
在Settings->npc中 ,勾上Remote Commands
Nagios Command File Path= /var/www/html/nagios/var/rw/nagios.cmd
Nagios URL=你的地址(http://ocalhost/nagios/)
接下来刷新npc就可以看到数据啦:
#测试:
之后用web测试 ,index.php(前文有测试方法)如果有图片所示的这一项,则表示正常json正常安装
## 如果phpize 没有此指令,请yum安装php-devel包
说明:如果您是使用RPM方式安装php,那么一些动态的扩展是自动被加入的,这些动态扩展 在:/etc/php.d/*.ini这些文件,这里确认一下json.ini文件有这一行内容:extension=json.so;同时还要确认一下 /usr/lib/php/modules目录下有没有json.so文件,如果没有的话,要手动复制一份到这个目录,这样才能确保json.ini起作用。
全部装完在cacti中设置如图所示
#排错:
如果不出npc
可尝试npc先将相应插件文件放到plugin,然后需要:
vi /var/www/html/cacti/include/config.php ## 在该文件中的"$plugins = array()"后增加如下一行内容 #如果连接不上,注意配置文件中链接mysql的帐号密码是否一致。 |
本文出自 “夜的博客” 博客,请务必保留此出处http://freeze.blog.51cto.com/1846439/386828
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
############################################################################
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
********************************************************************************************
http://10956.blog.51cto.com/956/159249
Centos 5.2安装Cacti并集成Nagios安装文档
一、本文档所用软件说明:
.
二、系统环境部署及调整
1. 检查系统是否正常
# more /var/log/messages (检查有无系统级错误信息)
# dmesg (检查硬件设备是否有错误信息)
# ifconfig(检查网卡设置是否正确)
# ping www.163.com (检查网络是否正常)
2. 关闭不需要的服务
# ntsysv
以下仅列出需要启动的服务,未列出的服务一律推荐关闭:
atd
crond
irqbalance
microcode_ctl
network
sendmail
sshd
syslog
httpd
mysqld
3. 重新启动系统
# init 6
4. 配置 vim
# vi /root/.bashrc
在 alias mv='mv -i' 下面添加一行:alias vi='vim' 保存退出。
# echo 'syntax on' > /root/.vimrc
# source /root/.bashrc
5. 使用 yum 对系统进行更新并且安装必要软件包
#wget http://dag.wieers.com/packages/r ... 4-1.el4.rf.i386.rpm
#rpm –Uvh rpmforge-release-0.3.4-1.el4.rf.i386.rpm
#rpm -Uvh http://download.fedora.redhat.co ... ease-5-2.noarch.rpm
#yum install php mysql http php-gd php-devel php-mysql mysql-devel
# yum update -y
# yum install ntp -y
6. 定时校正服务器时钟,定时与中国国家授时中心授时服务器同步
# crontab -e
加入一行:
1 */6 * * * ntpdate 210.72.145.44 > /dev/null 2>&1
三.CACTI的安装
1安装 net-snmp
yum install net-snmp*
注意加个*,把所有的包都装上,否则没有cacti需要的命令.
2安装 php-snmp
yum install php-snmp
3.安装rrdtool
#yum –y install rrdtool
4.下载最新的CACTI
#wget http://www.cacti.net/downloads/cacti-0.8.7d.tar.gz
# tar -zxf cacti-0.8.7d.tar.gz
# mv cacti-0.8.7d /var/www/html/cact
# cd /var/www/html/cacti/
# mysqladmin -uroot -p create cacti
# mysql -u root -p
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser';
mysql> flush privileges;
#mysql -ucactiuser -pcactiuser cacti < /var/www/html/cacti/cacti.sql
crontab -e
插入
*/5 * * * * cactiuser php /var/www/html/cacti/poller.php > /dev/null 2>&1
保存退出。
5.安装安装Cacti Plugins Arch
#wget http://mirror.cactiusers.org/dow ... -0.8.7d-PA-v2.4.zip
# tar xzf cacti-plugin-arch.tar.gz
plugin arch的安装有两种方法,第一中是运行patch文件修改现有的内容,第二种是使用已经patch好的文件覆盖源文件,我用第二种,直接把files-0.8.7b下面的文件复制到cacti下面
# cd cacti-plugin-arch
#cp files-0.8.7b/* /var/www/html/cacti/
# mysql -ucactiuser -pcactiuser cacti<pa.sql
**********这个文件不导入的话,将来会看不到plugin management这个页面,对其他的影响不大,但是我们要用npc(nagios plugin),一定要用这个
现在cacti的配置文件global.php
# vi /var/www/html/cacti/include/global.php
找到
$database_username = "cactiuser";
$database_password = "cactiuser"; //设置成自己数据库用户名和密码
如果你的把CACTI放到WEB目录的根目录就不用改下面的设置,我的是放到CACTI目录下所以把下面的参数改成
$config['url_path'] = '/cacti/';
插件安装(这里只介绍一般插件的安装,主要讲NPC的安装)
# cd /soft
#wget http://cactiusers.org/downloads/settings.tar.gz
# wget http://cactiusers.org/downloads/thold.tar.gz
# wget http://www.assembla.com/spaces/n ... c-2.0.0b.166.tar.gz
# mv download\?filename\=npc-2.0.0b.166.tar.gz npc-2.0.0b.166.tar.gz
# tar zxf settings-0.5.tar.gz
# tar zxf thold-0.3.9.tar.gz
# tar zxf npc-2.0.0b.166.tar.gz
# cp -rf settings thold npc /var/www/html/cacti/plugins/
接下来在global.php中加载settings和thold
# vi /var/www/html/cacti/include/global.php
添加下面内容
$plugins[] = 'settings';
$plugins[] = 'thold';
回到网页中,记得要去user managerment里面,给予相应用户的permissions,具体做法是,点页面左边的菜单User Managerment,然后在右边点击某个用户(如admin),然后在Realm Permissions中选中相应的选项即可。
而NPC,直接进入网页,点击左边的Plugin Management,然后在右边的Uninstalled中install NPC,在Installed中enable NPC,就可以了。
安装php-json,在npc中要用到php-json这个组件,如果没有安装在npc中只是一片空白
# wget http://aurore.net/projects/php-json/php-json-ext-1.2.1.tar.bz2
# tar jxf php-json-ext-1.2.1.tar.bz2
# cd php-json-ext-1.2.1
# ./configure &&make &&make install
因为编译安装的不会加载到php中,所以要手动加个配置文件
# vi /etc/php.d/json.ini
extension=json.so
四,nagios的安装
1. # mkdir /usr/local/nagios
# useradd nagios -d /usr/local/nagios
# passwd nagios
# chmod 755 /usr/local/nagios/
# grep ^User /etc/httpd/conf/httpd.conf
User apache
查找运行apache的用户
# groupadd nagcmd
# usermod -G nagcmd apache
# usermod -G nagcmd nagios
2下载并安装nagios
nagios 主页:http://www.nagios.org
nagios 当前版本:nagios-3.0.6
nagios 插件当前版本:nagios-plugins-1.4.6
fruity:图形化配置nagios的工具,需要php5.x版本才能运行
http://heanet.dl.sourceforge.net/sourceforge/fruity/
http://pear.php.net/get/HTML_TreeMenu-1.2.1.tgz
http://puzzle.dl.sourceforge.net/sourceforge/adodb/adodb471-1.tgz
将HTML_TreeMenu-1.2.0.tgz和adodb471-1.tgz直接解压复制到fruity 下 分别改名为HTML 和adodb 其他不做修改 修改 fruity/includes下的config.ifg,需要更改的地方有,路径,mysql信息 mysql 添加fruity 数据库和user,password. 这样,就可以用fruity来进行配置了。 注意: 在cacti服务器上的mysql版本必须是4.1以上,因为npc是以mysql4.1为基础进行开发的。
# tar zxf nagios-cn-3.0.6.tgz
# cd nagios-cn-3.0.6
#./configure --prefix=/usr/local/nagios --with-gd-lib --with-gd-inc --enable-event-broker
# make all
# make all install
# make install-init //安装启动脚本到/etc/init.d/
# make install-commandmode
# make install-config //安装初始配置文件到/usr/local/nagios
nagios-plugins的安装
#cd /soft
# tar zxf nagios-plugins-1.4.13.tar.gz
# cd nagios-plugins-1.4.13
# ./configure --prefix=/usr/local/nagios-plugins
# make&&make install
安装完成以后在/usr/local/nagios-plugins会产生一个libexec的目录,将该目录全部移动到/usr/local/nagios目录下即可。 如下:
# mv /usr/local/nagios-plugins/libexec /usr/local/nagios/
现在配置apache:
在apache的httpd.conf文件中加入如下内容:
ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/
<Directory "/usr/local/nagios/sbin/">
AllowOverride AuthConfig
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Alias /nagios/ /usr/local/nagios/share/
<Directory "/usr/local/nagios/share">
Options None
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
然后重启apache
配置页面访问权限:
在/usr/local/nagios/share目录下加个.htaccess文件
# cd /usr/local/nagios/share
# vi .htaccess
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/.htpasswd
require valid-user
然后复制此.htaccess文件到/usr/local/nagios/sbin下
# cp .htaccess /usr/local/nagios/sbin
# htpasswd -c /usr/local/nagios/etc/.htpasswd nagiosadmin
这个apache目录根据安装目录的不同而不同,用htpasswd命令生成用户名和密码以控制访问权限。
配置和启动nagios过程
# cd /usr/local/nagios/etc
把目录里的.cfg-sample文件全部拷贝成.cfg
例如:
# cp nagios.cfg-sample nagios.cfg
修改cgi.cfg,把use_authentication=1改为use_authentication=0,即不用验证.不然有一些页面不会显示。
修改后用如下命令检查配置文件是否正常:
#/usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg
如果出现如下显示就说明配置没问题
Total Warnings: 0
Total Errors: 0
现在您就可以http://您的IP/nagios/访问nagios了
五集成nagios到cacti
.1.安装NDoutils
NDoutils是把Nagios的数据写到mysql里的插件,这个是集成的关键
到http://www.nagios.org/download/addons/中下载ndoutils-1.4b7
#cd /soft
# tar zxf ndoutils-1.4b7.tar.gz
# cd ndoutils-1.4b7
# ./configure
#make
然后直接把我们想要的程序及配置文件复制到nagios中就可以
# cd src
# cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/local/nagios/bin
# cd ../config
# cp ndomod.cfg ndo2db.cfg /usr/local/nagios/etc/
修改相关配置文件
# vi /usr/local/nagios/etc/ndo2db.cfg
db_name=cacti
db_prefix=npc_
db_user=cactiuser
db_pass=cactiuser
debug_level=1
这里是用Cacti在mysql中使用的用户和密码以及数据库.
修改nagios的配置文件,使ndoutils可以在nagios中加载
# vi /usr/local/nagios/etc/nagios.cfg
更改
check_external_commands = 1
command_check_interval = -1
event_broker_options = -1
添加
broker_module = /usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
然后分别启动NDoutils和Nagios
#/usr/local/nagios/bin/ndo2db-3x –c /usr/local/nagios/etc/ndo2db.cfg
# service nagios restart
让NDoutils开机就启动
# echo “/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg” >>/etc/rc.local
配置到此结束
本文出自 “自由的时空” 博客,请务必保留此出处http://10956.blog.51cto.com/956/159249
###############################
http://renhm.blog.51cto.com/1527213/891107
现在开源界用得比较多的两款监控软件就是NAGIOS/CACTI,下面笔者全面讲解二者的安装与整合,其实网上这类文件也比较多,但是都比较零散,对于新手来说搭建起来很容易出问题,本人发一篇完全适合新手的教程!关于二者的差别,废话不多说!!
系统初使化软件库安装:
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
-----------------------------------------------第一部分:nagios------------------------------------------
所有软件包都放在:/usr/local/src (养成好的习惯!!)
一、安装Nagios必须的基本组件的运行依赖于httpd、mysql、gd以及编译用到的gcc
yum -y install httpd gcc glibc glibc-common *gd* php php-mysql mysql mysql-server mysql-devel openssl-devel
二、创建运行nagios的用户和组
groupadd nagcmd
useradd -M nagios
usermod -a -G nagcmd nagios
usermod -a -G nagcmd apache
usermod -G nagios apache
三、安装nagios
cd /usr/local/src
tar zxvf nagios-3.3.1.tar.gz
cd nagios
mkdir /usr/local/nagios
chown -R nagios:nagios /usr/local/nagios
./configure --prefix=/usr/local/nagios
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf
创建认证用户:
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
PS: 此处用户名尽量使用默认nagiosadmin,否则就需要修改cgi.cfg文件中所有关于认证选项的用户.
启动apache
service httpd restart
PS:这里你可以修改下apache配置文件的ServerName ,不然每次启动都非常慢!!!这个可以改成你的IP!
四、安装nagios-pugins插件
安装nagios常规插件
cd ..
tar zxvf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
./configure --prefix=/usr/local/nagios
make;make install
安装nagios-snmp-plugins插件
wget http://nagios.manubulon.com/nagios-snmp-plugins.1.1.1.tgz
安装这个插件要装几个perl模块:
Crypt::DES
Digest::MD5
Digest::SHA1
Digest::HMAC
Net::SNMP
到www.cpan.org上下载!!
下面安装这几个模块(最后安装Net::SNMP这个模块):
tar zxvf Crypt-DES-2.05.tar.gz
cd Crypt-DES-2.05
perl Makefile.PL
make;make install
cd ..
gunzip Digest-HMAC-1.03.tar.gz
tar xvf Digest-HMAC-1.03.tar
cd Digest-HMAC-1.03
perl Makefile.PL
make;make install
cd ..
tar zxvf Digest-MD5-2.51.tar.gz
cd Digest-MD5-2.51
perl Makefile.PL
make ;make install
cd ..
tar zxvf Digest-SHA1-2.13.tar.gz
cd Digest-SHA1-2.13
perl Makefile.PL
make;make install
cd ..
gunzip Net-SNMP-v6.0.1.tar.gz
tar xvf Net-SNMP-v6.0.1.tar
cd Net-SNMP-v6.0.1
perl Makefile.PL
make;make install
现在开始安装nagios-snmp-plugins插件:
tar zxvf nagios-snmp-plugins.1.1.1.tgz
cd nagios_plugins
./install.sh
运行后一路回车!!!!!!!!!!!!!!!
安装nagios中文插件(这个插件最好与nagios版本相同,我发现不同也没多大关系):
cd /usr/local/src
tar jxvf nagios-cn-3.2.3.tar.bz2
cd nagios-cn-3.2.2
./configure
make all;make install
把nagios加入到系统服务:
chkconfig --add nagios
chkconfig nagios on
指定nagios指令的path
vi /etc/profile
大文件最后加入:
export PATH=$PATH:/usr/local/nagios/bin
再用 source /etc/profile 直接生效!
检查配置文件:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
chkconfig httpd on
chkconfig mysqld on
启动apache: service httpd start
启动mysqld: service mysqld start
启动nagios: service nagios start
五、nagios性能分析图表_PNP插件
yum install perl-Time-HiRes
先安装rrdtool
32位系统
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
rpm -Uvh rpmforge-release-0.5.1-1.el5.rf.i386.rpm
yum -y install rrdtool
64位系统
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
yum -y install rrdtool
1.安装PNP
tar zxvf pnp4nagios-0.6.16.tar.gz
cd pnp4nagios-0.6.16
./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-rrdtool=/usr/bin/rrdtool
make all
make install
make install-webconf
make install-config
make install-init
2.配置PNP
cd /usr/local/pnp4nagios/etc
mv misccommands.cfg-sample misccommands.cfg
mv nagios.cfg-sample nagios.cfg
mv rra.cfg-sample rra.cfg
cd pages
mv web_traffic.cfg-sample web_traffic.cfg
cd ../check_commands
mv check_all_local_disks.cfg-sample check_all_local_disks.cfg
mv check_nrpe.cfg-sample check_nrpe.cfg
mv check_nwstat.cfg-sample check_nwstat.cfg
service npcd start
3.修改 nagios 的配置文件,打开performance_data
cd /usr/local/nagios/etc
vi nagios.cfg
process_performance_data=1 //把0变成1,启动nagios的数据输出功能,这样nagios将收集的数据写入到某个文件当中,以备提取!
host_perfdata_command=process-host-perfdata //启用主机的数据输出功能
service_perfdata_command=process-service-perfdata //启用服务的数据输出功能
4.修改 commands.cfg
cd /usr/local/nagios/etc/objects
vim commands.cfg
把默认的process-host-perfdata和process-service-perfdata 删除掉或注释掉,添加如下内容:
# 'process-host-perfdata' command definition
define command{
command_name process-host-perfdata
command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl
}
# 'process-service-perfdata' command definition
define command{
command_name process-service-perfdata
command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl
}
5.添加模板
vim templates.cfg
在配置文件最后添加
define host {
name hosts-pnp
action_url /pnp4nagios/graph?host=$HOSTNAME$&
register 0
}
define service {
name services-pnp
action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}
6.最后在各服务器的hosts和services处添加hosts-pnp、services-pnp
如:
define host{
use linux-server,hosts-pnp
host_name andy.com
alias andy_web.com
address 192.168.1.101
}
define service{
use local-service,services-pnp
host_name andy.com
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
7.重启nagios
/etc/init.d/nagios restart
六、Nconf的安装与配置
1.nconf的准备工作
mysql -uroot -p
mysql> create database nconf;
mysql> grant all privileges on nconf.* to nconf@"%" identified by 'nconf';
mysql> flush privileges;
mysql> quit
2.安装nconf
下载: http://sourceforge.net/projects/nconf/files/nconf/
tar nconf-1.3.0-0.tgz
mv nconf /usr/local
chown -R apache:apache /usr/local/nconf
3.在apache添加nconf目录虚拟主机
vi /etc/httpd/conf.d/nconf.conf
加入如下内容:
<VirtualHost *:80>
DocumentRoot /usr/local
ServerName 192.168.1.151
</VirtualHost>
重启apache
service httpd restart
4.进入Web页面在按照安装提示一步步安装---比较简单!!
5.使用上面建立的数据库和用户(nconf)成功连接mysql数据库,之后一切保持默认,直到下面认证设置时选择"ture",再设置nconf管理员密码,默认登录用户为admin!
6.安装完成之后,提示删除安装时的初始化文件
cd /usr/local/nconf
rm -rf INSTALL INSTALL.php UPDATE UPDATE.php
ln -s /usr/local/nagios/bin/nagios bin/nagios
chmod +x /usr/local/nconf/bin/generate_config.pl
chown -R apache.apache bin
chmod +x /usr/local/nagios/bin/nagios
chmod +x /usr/local/nconf/ADD-ONS/deploy_local.sh
7.重新刷新页面,输入admin/您设置的密码,进入nconf页面
8.点击Generate Nagios config尝试生成配置文件,以测试是否与nagios成功关联
deploy_local.sh是nconf自带配置文件导入脚本
/usr/local/nconf/ADD-ONS/deploy_local.sh
手动执行此脚本,将在/usr/local/nagios/etc下生成两目录Default_collector与global
修改nagios主配置文件
vim /usr/local/nagios/etc/nagios.cfg
# 将其中cfg_file=*******字段全部注释 ,并加入
cfg_dir=/usr/local/nagios/etc/Default_collector
cfg_dir=/usr/local/nagios/etc/global
service nagios reload
# 重载nagios配置文件使之生效
------------------------------------------------第二部分:nagios配置文件分配问题---------------------------------------
配置文件的规划--有两种方案
方案一:根据主机服务分开放
系统文件统一放在objects目录下:
commands.cfg localhost.cfg timeperiods.cfg contacts.cfg templates.cfg
主机目录:建立hosts目录存放主机
服务目录:建立services目录存放服务
命令目录:建立commands目录存放命令
在nagios.cfg配置文件中修改相应地方如下:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
cfg_dir=/usr/local/nagios/etc/services
cfg_dir=/usr/local/nagios/etc/hosts
cfg_dir=/usr/local/nagios/etc/commands
方案二:每个服务器独立配置文件
系统文件统一放在objects目录下:
commands.cfg localhost.cfg timeperiods.cfg contacts.cfg templates.cfg
第个被监控服务器独立一个配置文件:
如:192.168.1.100.cfg
在配置文件中修改相应地方如下:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
cfg_file=/usr/local/nagios/etc/linux_srv/192.168.1.100.cfg
...
...
...
cfg_file=/usr/local/nagios/etc/linux_srv/192.168.1.110.cfg
根据情况自己做选择!!
一、配置监控Linux主机 实例
监控linux时是通过nrpe来建立连接,所以要在服务端和客户端先安装上pcre
服务端的安装:
tar zxvf nrpe-2.13.tar.gz
cd nrpe-2.13
./configure
make all
make install-plugin
测试插件与客户端是否正常通信
/usr/local/nagios/libexec/check_nrpe -H 192.168.8.30
NRPE v2.13
说明之间是连通的!!
定义check_nrpe监控命令
vi /usr/local/nagios/etc/objects/commands.cfg
添加如下内容:
# 'check_nrpe' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
客户端的安装:
tar zxvf nrpe-2.13.tar.gz
cd nrpe-2.13
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
修改nrpe配置文件
vi /usr/local/nagios/etc/nrpe.cfg
找到下面两处并修改成如下样子:
server_address=192.168.8.30 //这是客户端本身自己IP地址,这里一定要写真实IP
allowed_hosts=192.168.8.130,127.0.0.1 //192.168.8.130是我的nagios监控机
启动nrpe
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
netstat -tunpl |grep 5566
lsof -i:5666
++++++++++++++++++++++++++++++++++++
----------------------------------第三部分:cacti部分-----------------------------------------------------------
一、cacti服务器配置部分
++++++++++++++++++++++++++++++++++++++++++++++++++
cacti安装与配置
1.cacti绘图要用到rrdtool这个工具
可以用源码安装,也可用yum来安装。。
rrdtool前面在安装nagios--pnp时已经装了,这里只说下
这里介绍用yum来安装:
wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
yum -y install rrdtool
2.安装依赖包
在主监控机上安装apache+php+gd的web环境,为了方便就用yum安装了!
yum -y install php php-devel php-mysql php-snmp mysql mysql-server net-snmp net-snmp-libs net-snmp-utils php-pdo perl-DBD-MySQL
由于本机上同时装了nagios,所以这里php与mysql相关的软件包就不用装了!
yum -y install php-devel php-snmp net-snmp net-snmp-libs net-snmp-utils
3.配置snmp
vi /etc/snmp/snmp.conf
#将下边这行中的default 改为127.0.0.1
com2sec notConfigUser default public
com2sec notConfigUser 127.0.0.1 public
#将下边这行中的systemview 改为all
access notConfigGroup "" any noauth exact systemview none none
access notConfigGroup "" any noauth exact all none none
#将下边这行的注释“#”号去掉
#view all included .1 80
启动snmpd服务
service snmpd start
4.安装cacti
cd /usr/local/src/cacti
wget http://www.cacti.net/downloads/cacti-0.8.7h.tar.gz
tar zxvf cacti-0.8.7h.tar.gz
mv cacti-0.8.7h /usr/local/cacti
5.在数据库中建库、授权、导入数据库结构
先启动mysql服务
service mysqld start
#注意导入cacti.sql时该文件的路径
mysql
mysql> create database cacti;
mysql> grant all privileges on cacti.* to cacti@localhost identified by 'cacti' with grant option;
mysql> grant all privileges on cacti.* to cacti@127.0.0.1 identified by 'cacti' with grant option;
mysql> use cacti;
mysql> source /usr/local/cacti/cacti.sql;
配置cacti以连接数据库
vi /usr/local/cacti/include/config.php
改成如下:
*/
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
/* Default session name - Session name must contain alpha characters */
#$cacti_session_name = "Cacti";
保存退出!!
同时也修改下 /usr/local/cacti/include/global.php 按以上形式修改.
6.在apache中配置cacti的虚拟主机配置文件
vi /etc/http/conf.d/cacti.conf
加入如下内容:
Alias /cacti "/usr/local/cacti"
<Directory "/usr/local//cacti ">
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
重新启动apache
service httpd restart
7.浏览器进行cacti初使配置
用浏览器打开 http://IP/cacti #这里IP是cacti服务器的IP
这个很简单。。就不用说了!
8.先手工生成图表
php /usr/local/cacti/poller.php
创建任务计划
crontab -e
*/5 * * * * php /usr/local/cacti/poller.php > /dev/null 2>&1
确保 /usr/local/cacti/rra/目录存在
过几分种后,我们打开cacti web监控页面,点击graphs ,就可以查看到cacti 监控本机的图表~~~
二、cacti常用插件安装
cacti-plugin、npc、monitor、setting、thold、weathermap等。。。。
1.先安装cacti扩展模块
cd /usr/local/src/cacti
wget http://www.cacti.net/downloads/pia/cacti-plugin-0.8.7h-PA-v3.0.tar.gz
tar xvf cacti-plugin-0.8.7h-PA-v3.0.tar.gz
alias cp=cp
cp -R cacti-plugin-arch/* /usr/local/cacti/
cd /usr/local/cacti/
mysql -ucacti -pcacti cacti < pa.sql
patch -p1 -N < cacti-plugin-0.8.7h-PA-v3.0.diff
PS:为cacti配置文件打补丁的时候有可能它将 include/config.php.dist给打补丁了!!
vi /usr/local/cacti/include/config.php
加入此条语句:$url_path = "/cacti/"
......
#$cacti_session_name = "Cacti";
$url_path = "/cacti/";
.......
打开插件管理功能:
打开“Console----> User Management----> admin”然后在“Realm Permissions”选
项卡中勾选“Plugin Management”,然后点击Save 进行保存!
此时我们会在控制台---> Configuration 选项卡下多了一个Plugin Management 选项卡,到此cacti 架构扩展完成!!
2.settings 安装
可以到此站点下载:http://docs.cacti.net/plugin:settings
tar zxvf settings-v0.71-1.tgz
mv settings /usr/local/cacti/plugins/
回到web控制台:点击Console---> Plugin Management,我们看到多了一个settings 插件,然后点击蓝色向下箭头,再点击向右蓝色箭头启用!!
再点击 Console ---> Settings 后我们会发现多了一个Mail/DNS 选项卡!
在 cacti 配置文件中添加settings 插件:
vi /usr/local/cacti/include/config.php
$plugins[] = 'settings';
3.Monitor 安装
下载:http://docs.cacti.net/plugin:monitor
tar zxvf monitor-v1.3-1.tgz
mv monitor /usr/local/cacti/plugins/
cd /usr/local/cacti/plugins/monitor/
mysql -ucacti -pcacti cacti < monitor.sql
修改 cacti 配置文件,添加monitor 插件
vi /usr/local/cacti/include/config.php
加入如下内容:
$plugins[] = 'monitor';
启用方法同其它插件方法一样!!!!!!!!!!!!!!!!!
4.thold 安装
下载:http://docs.cacti.net/plugin:thold
tar zxvf thold-v0\[1\].4.9-3.tgz
mv thold /usr/local/cacti/plugins/
启用方法同其它插件方法一样!!!!!!!!!!!!!!!!!
回到控制台,我们会发现多了一个“thold”选项
打开“Console --->Settings”,发现多了一个“thresholds”选项卡
5.Weathermap 安装
下载:wget http://www.network-weathermap.com/files/php-weathermap-0.97a.zip
unzip php-weathermap-0.97a.zip
mv weathermap /usr/local/cacti/plugins/
chmod -R 777 /usr/local/cacti/plugins/weathermap
启用方法同其它插件方法一样!!!!!!!!!!!!!!!!!
回到控制台,我们会发现多了一个“weathermap”选项!
到此为止,几个常用插件安装完成!!!!!!!!!!!!!!
PS:其它大部分插件可以到这个网站下载:http://docs.cacti.net/plugins
----------------------------------第四部分:整合nagios与cacti---------------------------------------------------
整合cacti和nagios是利用了cacti的一个插件nagios for cacti,它的原理是将nagios的数据通过ndo2db导入到mysql数据库(cacti的库中),然后cacti读取数据库信息将nagios的结果展示出来。
1.首先需要安装ndoutils以将nagios的数据能导入到mysql数据库中
yum -y install mysql-devel
下载并安装ndoutils
wget http://sourceforge.net/projects/nagios/files/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz/download
tar zxvf ndoutils-1.4b9.tar.gz
cd ndoutils-1.4b9
./configure --prefix=/usr/local/nagios LDFLAGS=-L/usr/lib64 --with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib64/mysql --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios
make
2.建立配置文件
cp src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo} /usr/local/nagios/bin
cd db
./installdb -ucacti -pcacti -d cacti
cd ..
cp config/{ndo2db.cfg-sample,ndomod.cfg-sample} /usr/local/nagios/etc
mv /usr/local/nagios/etc/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
mv /usr/local/nagios/etc/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
chmod 644 /usr/local/nagios/etc/ndo*
chown nagios:nagios /usr/local/nagios/etc/*
chown nagios:nagios /usr/local/nagios/bin/*
3.修改nagios.cfg配置文件以适应当前环境
vi /usr/local/nagios/etc/nagios.cfg
在文件中添加如下内容:
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
4.修改ndo2db.cfg以适应当前环境
vi /usr/local/nagios/etc/ndo2db.cfg
把与下面相关的参数修改成如下形式(有此不用改):
socket_type=tcp
db_servertype=mysql
db_host=localhost
db_port=3306
db_name=cacti
db_prefix=nagios_
db_user=cacti
db_pass=cacti
5.修改ndomod.cfg以适应当前环境
vi /usr/local/nagios/etc/ndomod.cfg
把与下面相关的参数修改成如下形式:
output_type=tcpsocket
output=127.0.0.1
6.让ndo2db开机启动
方法一:
加入到开机启动配置文件:
echo 'rm -f /usr/local/nagios/var/ndo.sock' >> /etc/rc.local
echo '/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg' >> /etc/rc.local
方法二:
cd /usr/local/src/ndoutils-1.4b9
cp ./daemon-init /etc/init.d/ndo2db
vi /etc/init.d/ndo2db
把Ndo2dbBin=/usr/local/nagios/bin/ndo2db改成
Ndo2dbBin=/usr/local/nagios/bin/ndo2db-3x
chmod +x /etc/init.d/ndo2db
service ndo2db start
启动时出现如下错误:
Starting ndo2db:Support for the specified database server is either not yet supported, or was not found on your system.
done.
这个是由于没有安装mysql-devel这个包造成的@!@@@@
解决办法:
yum -y install mysql-devel
./configure --prefix=/usr/local/nagios LDFLAGS=-L/usr/lib64 --with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib64/mysql --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios
make
alias cp=cp
cp src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo} /usr/local/nagios/bin
alias cp="cp -i'
7..npc安装
tar zxvf npc-2.0.4.tar.gz
mv npc /usr/local/cacti/plugins/
修改 cacti 配置文件,添加npc 插件
vi /usr/local/cacti/include/config.php
加入:
$plugins[] = 'npc';
启用方法同其它插件方法一样!!!!!!!!!!!!!!!!!
回到控制台,我们会发现多了一个“npc”选项
安装 npc支持:json
wget http://pecl.php.net/get/json-1.2.1.tgz
tar zxvf json-1.2.1.tgz
cd json-1.2.1
phpize
./configure ;make ;make install
查看是否安装成功:
root@nagios_cacti json-1.2.1]# ll /usr/lib64/php/modules
总计 840
-rwxr-xr-x 1 root root 32344 2010-01-14 dbase.so
-rwxr-xr-x 1 root root 337768 2010-01-14 gd.so
-rwxr-xr-x 1 root root 92798 03-14 06:05 json.so
-rwxr-xr-x 1 root root 119568 2010-01-14 mysqli.so
-rwxr-xr-x 1 root root 53008 2010-01-14 mysql.so
-rwxr-xr-x 1 root root 28264 2010-01-14 pdo_mysql.so
-rwxr-xr-x 1 root root 92464 2010-01-14 pdo.so
-rwxr-xr-x 1 root root 24200 2010-01-14 pdo_sqlite.so
-rwxr-xr-x 1 root root 15416 2009-09-04 phpcups.so
-rwxr-xr-x 1 root root 28568 2010-01-14 snmp.so
修改php.ini文件添加对json的支持
vi /etc/php.ini
添加如下内容:
extension=json.so
重新启动apache
service httpd restart
查看是否加载了这个模块:
php -m |grep json
接着在右侧栏目中选择settings,点选npc的标签
钩选Remote Commands
Nagios Command File Path: /usr/local/nagios/var/rw/nagios.cmd
<这个文件启动nagios后会产生,根据实际的位置写>
Nagios URL: http://IP/nagios/ (这里ip为nagios服务器IP)
保存就可以了。
------------------------------------------------------------------------------------------
附:linux客户端通用配置
在被监控的linux主机上安装net-snmp
yum -y install net-snmp
vi /etc/snmp/snmpd.conf
将下边这行中的default 改为192.168.1.151 (cacti服务器的IP地址)
com2sec notConfigUser default public
com2secnotConfigUser 172.28.12.36 public
将下边这行中的systemview改为all
access notConfigGroup "" any noauth exact systemview none none
access notConfigGroup "" any noauth exact all none none
将下边这行的注释“#”号去掉
#view all included .1 80
启动snmp
service snmpd start
===============================
http://alice.blog.51cto.com/707092/164130
环境是cenos5.1+最小化安装+development tools
开始配置。。
vi /etc/yum.repos.d/Dag.repo###定义第三方源
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
http://rh-mirror.linux.iastate.edu/pub/dag/redhat/el$releasever/en/$basearch/dag
http://wftp.tu-chemnitz.de/pub/linux/dag/redhat/el$releasever/en/$basearch/dag
http://archive.cs.uu.nl/mirror/dag.wieers/redhat/el$releasever/en/$basearch/dag
http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
http://mirror.cpsc.ucalgary.ca/mirror/dag/redhat/el$releasever/en/$basearch/dag
http://rpmfind.net/linux/dag/redhat/el$releasever/en/$basearch/dag
http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag
http://mirrors.ircam.fr/pub/dag/redhat/el$releasever/en/$basearch/dag
gpgcheck=0
enabled=1
protect=0
gpgcheck=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
##################################################
vi utterramblings.repo ###定义php独立源
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
#########################################################################
一次性安装所需软件
yum -y install httpd mysql-server rrdtool mysql-devel php-devel net-snmp php php-mysql php-gd php-pdo php-snmp cacti nagios nagios-plugins
或者也可以直接安装centos官方推荐软件库:
下载rpm包
wget http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
安装DAG的PGP Key
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
验证下载包的完整性
rpm -K rpmforge-release-0.3.6-1.el5.rf.*.rpm
安装包
rpm -ivh rpmforge-release-0.3.6-1.el5.rf.*.rpm
参考网址:
http://doc.linuxpk.com/58083.html
安装php-json
wget http://www.aurore.net/projects/php-json/php-json-ext-1.2.0.tar.bz2
tar xvjf php-json-ext-1.2.0.tar.bz2
cd php-json-ext-1.2.0
###初始化PHP环境
phpize
./configure
make&&make install#####
(如果提示没有这个命令则首先要
yum -y install php-devel
如果还不行,说明你的编译工具有问题,安装一下就可以了
yum -y install autoconf
yum -y install automake
yum -y install libtool
)
查看有没有安装成功
find / -name '*json.so'
./usr/lib/php/modules/json.so
说明已经有了
vi /etc/php.ini
添加 include ('/etc/php.d/json.ini')
vi /etc/php.d/json.ini
内容如下:
extension=json.so
重启httpd
apachectl graceful
到此所需要的软件都安装完毕
开始配置cacti
修改cacti访问权限
vi /etc/httpd/conf.d/cacti.conf
如下:
<Directory /var/www/cacti/>
DirectoryIndex index.php
Options -Indexes
AllowOverride all
order deny,allow
#deny from all
#allow from 127.0.0.1
allow from all
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc on
php_flag track_vars on
</Directory>
建立cacti数据库和授权
mysqladmin create cacti
mysql>grant all privileges on cacti.* to cacti@localhost identified by 'cacti';
mysql>flush privileges;
mysql>exit;
导入数据:
cd /var/www/cacti
mysql -ucacti -p cacti<cacti.sql
更改配置:
vi /var/www/cacti/include/config.php
$database_username = "cacti";
$database_password = "cacti";
vi /var/www/cacti/include/globle.php
$database_username = "cacti";
$database_password = "cacti";
制定任务计划:
crontab -e -u cacti
*/5 * * * * php -f /var/www/cacti/poller.php >/dev/null 2>&1
重新启动apache
service httpd restart
访问http://yourserver/cacti/ 进行安装,用户名密码都是admin
下载cacti插件管理器
wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7d-PA-v2.4.zip
unzip cacti-plugin-0.8.7d-PA-v2.4.zip
cd files-0.8.7d
cp -rf * /var/www/cacti/
导入数据:
cd ..
mysql -ucacti -pcacti cacti<pa.sql####也可以使用root
更改访问路径:
vi /var/www/cacti/include/globle.php
$config['url_path'] = '/cacti/';
配置nagios
我这里面没有更进一步配置nagios,npc安装完后nagios会自动启动本机的一些监控项目,如果想要监控其他的主机,则需要单独配置nagios,npc会予以展示
更改apache访问权限使nagios可以正常使用
htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
安装ndoutils
wget http://sourceforge.net/project/downloading.php?group_id=26589&filename=ndoutils-1.4b7.tar.gz
tar zxvf ndoutils-1.4b7.tar.gz
cd ndoutils-1.4b7
./configure --with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios
make clean
make
复制文件
cd src
cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/bin/
cd ../config
cp ndo2db.cfg ndomod.cfg /etc/nagios/
配置文件
vi /etc/nagios/ndo2db.cfg
socket_name=/var/nagios/ndo.sock
db_name=cacti
db_prefix=npc_
db_user=cacti
db_pass=cacti
debug_level=1
debug_file=/var/nagios/ndo2db.debug
vi /etc/nagios/ndomod.cfg
output=/var/nagios/ndo.sock
buffer_file=/var/nagios/ndomod.tmp
vi /etc/nagios/nagios.cfg ##确认以下五项的值正确
check_external_commands=1
command_check_interval = -1
event_broker_options = -1
broker_module = /usr/bin/ndomod-3x.o config_file=/etc/nagios/ndomod.cfg
process_performance_data=1
安装npc
wget http://www.assembla.com/spaces/npc/documents/aUjAwmdW8r3BuPab7jnrAJ/download?filename=npc-2.0.0b.166.tar.gz
tar zxvf npc-2.0.0b.166.tar.gz
cd npc
拷贝内容到cacti plugins文件夹
cp npc /var/www/cacti/plugins/
添加插件识别
vi /var/www/cacti/include/globle.php
$plugins[] = 'npc';
到此 所有需要安装的东西完毕
使用npc
进入你的cacti主页面
在'User Management'中选择'admin',在下边'Realm Permissions'中钩选'Plugin Management'。这时右侧会出现'Plugin Management'连接,进去后在'uninstalled'中安装npc,然后在'intalled'中enable npc,然后在回去admin的'Realm Permissions'中会出现'use npc',把它选中。
接着在右侧栏目中选择settings,点选npc的标签
钩选Remote Commands
Nagios Command File Path: /var/nagios/rw/nagios.cmd
Nagios URL: http://yourserver/nagios/
save一下
1.npc页面空白或者提示无法访问npc.php
确认安装并配置php-jsion正确
2.cacti无图或者没有数据
这个问题很多
参考http://www.youyongming.cn/blog/article.asp?id=790吧
mysql -uroot mysql
| user() |
+--------+
| root@ |
+--------+
则需更改root登陆主机,参考如下命令:
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%";
mysql> FLUSH PRIVILEGES ;
其他问题一起交流
本文出自 “山岳不知” 博客,请务必保留此出处http://alice.blog.51cto.com/707092/164130
===============================
http://c.cnwebtool.com/C/100512.html
Apache+PHP+Nagios+Cacti服务器监控部署笔记
获取操作系统Centos源更新
修改更新源
rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
yum update
yum -y install gcc gcc-c++ bison patch unzip mlocate flex wget automake autoconf gd cpp gettext readline-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel libidn libidn-devel openldap openldap-devel openldap-clients openldap-servers nss_ldap expat-devel libtool libtool-ltdl-devel
如果系统默认安装了apache,请先卸载.执行:
yum remove httpd
下载最新稳定版的程序源码包,以下都是到官方网站或sourceforge下载的源码包.
wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.45.tar.gz/from/http://mysql.he.net/
wget http://www.apache.org/dist/httpd/httpd-2.2.15.tar.gz
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2/download
wget http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download
wget http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2/download
wget http://www.php.net/get/php-5.2.13.tar.gz/from/this/mirror
wget http://php-fpm.org/downloads/php-5.2.13-fpm-0.5.13.diff.gz
wget http://www.lancs.ac.uk/~steveb/patches/php-mail-header-patch/php5-mail-header.patch
wget http://pecl.php.net/get/memcache-2.2.5.tgz
wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
wget http://pecl.php.net/get/imagick-2.3.0.tgz
wget http://download.suhosin.org/suhosin-0.9.29.tgz
wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
wget http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
wget http://monkey.org/~provos/libevent-1.4.13-stable.tar.gz
wget http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz
一.安装Mysql.安装最新稳定版5.1.44版本
tar -zxf mysql-5.1.44.tar.gz
cd mysql-5.1.44
./configure --prefix=/usr/local/mysql --enable-assembler --enable-thread-safe-client --with-extra-charsets=all --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=partition,innodb_plugin,myisam,myisammrg
make && make install
cd ../
groupadd mysql -g 27
useradd mysql -u 27 -g 27 -c "MySQL Server" -d /var/lib/mysql -M
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
/usr/local/mysql/bin/mysql_install_db --user=mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql/.
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql
chmod u+x /etc/init.d/mysql
chkconfig --level 345 mysql on
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
echo "/usr/local/lib" >>/etc/ld.so.conf
ldconfig
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
ln -s /usr/local/mysql/bin/mysql_config /usr/bin/mysql_config
service mysql start
/usr/local/mysql/bin/mysqladmin -u root password root
service mysql restart
service mysql stop
二.编译安装apache(httpd).apache的执行用户为httpd.
groupadd httpd
useradd -g httpd -s /sbin/nologin -M httpd
cd /usr/local/src
tar zxvf httpd-2.2.8.tar.gz
cd httpd-2.2.8
./configure --prefix=/usr/local/apache --enable-headers --enable-mime-magic --enable-proxy --enable-rewrite --enable-ssl --enable-suexec --disable-userdir --with-included-apr --with-mpm=prefork --with-ssl=/usr --with-suexec-caller=nobody --with-suexec-docroot=/ --with-suexec-gidmin=100 --with-suexec-logfile=/usr/local/apache/logs/suexec_log --with-suexec-uidmin=100 --with-suexec-userdir=public_html
make
make install
mkdir /usr/local/apache/domlogs
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
1.编辑/etc/init.d/httpd,在首行#!/bin/sh下添加:
# Startup script for the Apache Web Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
# processname: httpd
# pidfile: /usr/local/apache/logs/httpd.pid
# config: /usr/local/apache/conf/httpd.conf
ulimit -n 1024
ulimit -n 4096
ulimit -n 8192
ulimit -n 16384
ulimit -n 32768
ulimit -n 65535
保存退出.
2.配置apache配置参数文件httpd.conf,位于/usr/local/apache/conf/目录
cd /usr/local/apache/conf/
mv httpd.conf httpd.conf.bak
mkdir vhosts
vi httpd.conf
输入以下内容:
PidFile logs/httpd.pid
LockFile logs/accept.lock
ServerRoot "/usr/local/apache"
Listen 0.0.0.0:80
User httpd
Group httpd
ServerAdmin admin@vivaing.com
ServerName nagios.gviva.com
Timeout 300
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 5
UseCanonicalName Off
AccessFileName .htaccess
TraceEnable Off
ServerTokens ProductOnly
FileETag None
ServerSignature Off
HostnameLookups Off
# LoadModule perl_module modules/mod_perl.so
DocumentRoot "/usr/local/apache/htdocs"
<Directory "/">
Options ExecCGI FollowSymLinks Includes IncludesNOEXEC -Indexes -MultiViews SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AllowOverride All
</Directory>
<Directory "/usr/local/apache/htdocs">
Options Includes -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
DefaultType text/plain
RewriteEngine on
AddType text/html .shtml
AddHandler cgi-script .cgi .pl .plx .ppl .perl
AddHandler server-parsed .shtml
<IfModule mime_module>
TypesConfig conf/mime.types
AddType application/perl .pl .plx .ppl .perl
AddType application/x-img .img
AddType application/x-httpd-php .php .php3 .php4 .php5 .php6
AddType application/x-httpd-php-source .phps
AddType application/cgi .cgi
AddType text/x-sql .sql
AddType text/x-log .log
AddType text/x-config .cnf conf
AddType text/x-registry .reg
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddType application/x-tar .tgz
AddType application/rar .rar
AddType application/x-compressed .rar
AddType application/x-rar .rar
AddType application/x-rar-compressed .rar
AddType text/vnd.wap.wml .wml
AddType image/vnd.wap.wbmp .wbmp
AddType text/vnd.wap.wmlscript .wmls
AddType application/vnd.wap.wmlc .wmlc
AddType application/vnd.wap.wmlscriptc .wmlsc
</IfModule>
<IfModule dir_module>
DirectoryIndex index.html index.htm index.shtml index.php index.perl index.pl index.cgi
</IfModule>
<Files ~ "^error_log$">
Order allow,deny
Deny from all
Satisfy All
</Files>
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" common
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
</IfModule>
<Directory "/usr/local/apache/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
<IfModule mpm_prefork_module>
StartServers 3
MinSpareServers 3
MaxSpareServers 5
MaxClients 150
MaxRequestsPerChild 1024
</IfModule>
<IfModule mod_headers.c>
<FilesMatch "\.(html|htm|shtml)$">
Header set Cache-Control "max-age=3600, must-revalidate"
</FilesMatch>
</IfModule>
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
Include conf/extra/httpd-languages.conf
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
ExtendedStatus On
<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
<IfModule ssl_module>
Listen 0.0.0.0:443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLCipherSuite ALL:!ADH:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP
SSLPassPhraseDialog builtin
SSLSessionCache dbm:/usr/local/apache/logs/ssl_scache
SSLSessionCacheTimeout 300
SSLMutex file:/usr/local/apache/logs/ssl_mutex
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
#Vhosts
NameVirtualHost 127.0.0.1:80
NameVirtualHost *
<VirtualHost 127.0.0.1:80 *>
ServerName host.evlit.com
DocumentRoot /var/www/html
ServerAdmin admin@evlit.com
</VirtualHost>
Include conf/vhosts/*上述出现的127.0.0.1请改为你本机公网IP.
配置apache
将下面的内容加入apache配置文件的alias模块<IfModule alias_module>
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
# SSLRequireSSL
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>
Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
# SSLRequireSSL
Options None
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>
安装服务并开机启动
chmod 755 /etc/init.d/httpd
chkconfig --add httpd
chkconfig --level 345 httpd on
service httpd start
三.编译安装php(mod_php)
1.编译安装相关支持库
tar -zxf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1/
./configure
make
make install
cd ../
tar -jxf libmcrypt-2.5.8.tar.bz2
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../
tar -jxf mhash-0.9.9.9.tar.bz2
cd mhash-0.9.9.9/
./configure
make
make install
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
cd ../
tar -zxf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make
make install
2.编译php,这里我们为php打入补丁.有助于防止邮件发送被滥用(多用户)以及在邮件中提供有价值的信息.
补丁介绍信息请点击:http://www.lancs.ac.uk/~steveb/patches/php-mail-header-patch/
tar -zxf php-5.2.13.tar.gz
patch -d php-5.2.13 -p1 < php5-mail-header.patch
cd php-5.2.13
./configure --prefix=/usr/local --with-config-file-path=/etc --with-apxs2=/usr/local/apache/bin/apxs --enable-bcmath --enable-calendar --enable-exif --enable-ftp --enable-gd-native-ttf --enable-libxml --enable-magic-quotes --enable-mbstring --enable-pdo=shared --enable-soap --enable-sockets --enable-zip --with-bz2 --with-curl --with-curlwrappers --with-freetype-dir --with-gd --with-gettext --with-jpeg-dir --with-kerberos --with-libexpat-dir=/usr --with-libxml-dir=/usr --with-mcrypt=/usr --with-mhash=/usr --with-mysql=/usr --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mysqli=/usr/bin/mysql_config --with-openssl=/usr --with-openssl-dir=/usr --with-pdo-mysql=shared --with-pdo-sqlite=shared --with-png-dir=/usr --with-sqlite=shared --with-ttf --with-xmlrpc --with-zlib -with-zlib-dir=/usr --enable-pcntl
make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-dist /etc/php.ini
cd ../
3.安装php扩展模块
tar -zxf memcache-2.2.5.tgz
cd memcache-2.2.5/
phpize
./configure --with-php-config=/usr/local/bin/php-config --with-zlib-dir --enable-memcache
make
make install
cd ../
tar -jxf eaccelerator-0.9.6.tar.bz2
cd eaccelerator-0.9.6/
phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/bin/php-config
make
make install
mkdir -p /tmp/eaccelerator
chmod 777 /tmp/eaccelerator
echo "mkdir -p /tmp/eaccelerator" >> /etc/rc.local
echo "chmod 777 /tmp/eaccelerator" >> /etc/rc.local
cd ../
tar -zxf ImageMagick.tar.gz
cd ImageMagick-*
./configure
make
make install
cd ../
tar -zxf imagick-2.3.0.tgz
cd imagick-2.3.0/
phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make install
cd ../
tar -zxf suhosin-0.9.29.tgz
cd suhosin-0.9.29
phpize
./configure
make
make install
cd ../
tar -zxf ioncube_loaders_lin_x86.tar.gz
cd ioncube
mkdir /usr/local/ioncube
mv ioncube_loader_lin_5.2.so /usr/local/ioncube/
cd /usr/local/src
tar -zxf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
mkdir -p /usr/local/Zend/lib/Optimizer-3.3.9/php-5.2.x
cp ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp/ZendOptimizer.so /usr/local/Zend/lib/Optimizer-3.3.9/php-5.2.x/ZendOptimizer.so
3.1.修改php.ini.
查找/etc/php.ini中的extension_dir = "./".将其修改为extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613/"
查找;include_path = ".:/php/includes",删除前面的分号,并修改为include_path = ".:/usr/lib/php:/usr/local/lib/php"
跳到最后一行,然后添加以下内容:
extension = "memcache.so"
extension = "pdo.so"
extension = "pdo_mysql.so"
extension = "pdo_sqlite.so"
extension = "sqlite.so"
extension = "eaccelerator.so"
eaccelerator.shm_size = 32
eaccelerator.cache_dir = "/tmp/eaccelerator"
eaccelerator.enable = 1
eaccelerator.optimizer = 0
eaccelerator.debug = 0
eaccelerator.name_space = ""
eaccelerator.check_mtime = 1
eaccelerator.filter = ""
eaccelerator.shm_max = 0
eaccelerator.shm_ttl = 7200
eaccelerator.shm_prune_period = 7200
eaccelerator.shm_only = 1
eaccelerator.compress = 0
eaccelerator.compress_level = 9
eaccelerator.keys = shm
eaccelerator.sessions = shm
eaccelerator.content = shm
zend_extension = "/usr/local/ioncube/ioncube_loader_lin_5.2.so"
zend_extension = "/usr/local/Zend/lib/Optimizer-3.3.9/php-5.2.x/ZendOptimizer.so"
4,安装Memcached(可选)
cd /usr/local/src
tar -xzf libevent-1.4.13-stable.tar.gz
cd libevent-1.4.13-stable
./configure
make
make install
ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib
cd ../
tar -xzf memcached-1.4.4.tar.gz
cd memcached-1.4.4
./configure --with-libevent=/usr
make
make install
基本使用方法:
启动:/usr/local/bin/memcached -d -m 64 -p 11211 -u nobody -l localhost
关闭:killall -9 memcached
以下内容为安装Nagios3.2.3:
下载Nagios3.2.3,Nagios-plugins1.4.15,nrpe2.12,nsclient++
http://www.nagios.org/download/wgethttp://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz
Nagios3.2.3,Nagios-plugins1.4.15,nrpe2.12安装在监控服务器上。
去http://www.nagios.org/download/addons/下载nrpe和nsclient++插件。
nrpe2.12安装在Linux/Unix被监控端。
nsclient++安装在Windows被监控端。
创建帐号及组
创建帐号
useradd -m nagios
passwd nagios
加入Nginx用户组
/usr/sbin/usermod -a -G httpd nagios
httpd 为运行Nginx的帐号。
安装nagios
tar xvf nagios-cn-3.2.3.tar.bz2
cd nagios-cn-3.2.3
./configure --with-command-group=httpd --prefix=/usr/local/nagios --with-gd-lib=/usr --with-gd-inc=/usr
make all
使用make install来安装主程序,CGI和HTML文件
make install
使用make install-init在/etc/rc.d/init.d安装启动脚本
make install-init
使用make install-cofig来安装示例配置文件,安装的路径是/usr/local/nagios/etc.
make install-config
使用make install-commandmode来配置目录权限
make install-commandmode
nagios目录功能的简要说明:
bin Nagios执行程序所在目录,nagios文件即为主程序
etc Nagios配置文件位置
sbin Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录
Share Nagios网页文件所在的目录
var Nagios日志文件、spid 等文件所在的目录
var/archives 日志归档目录
var/rw 用来存放外部命令文件
创建Nginx目录验证文件
需要使用有apache服务器创建密码文件
/usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password: (输入密码)
Re-type new password: (再输入一次密码)
Adding password for user nagiosadmin
当然也可以使用perl 创建密码文件 新建 一个 pw.pl 文件 其内容:
#!/usr/bin/perl
use strict;
my $pw=$ARGV[0] ;
print crypt($pw,$pw)."\n";
然后执行 chmod +x pw.pl
./pw.pl password
papAq5PwY/QQM
papAq5PwY/QQM 就是password 的crypt()密码
然后 将上面用 perl 生成的 加密后的密码
按照
用户名:密码
的格式写到 htpasswd 文件中
这样既完成了设置
配置nagios配置文件
vi /usr/local/nagios/etc/objects/contacts.cfg
将里面的email地址改为自己的email地址。
cd ../
安装Nagios插件
tar xzvf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
./configure --with-nagios-user=nagios --with-nagios-group=httpd
make
make install
安装nagios-snmp-plugins
nagios-snmp-plugins是一套用Perl编写的通过SNMP方式监控主机的插件程序。
wget http://nagios.manubulon.com/nagios-snmp-plugins.1.1.1.tgz
tar xzf nagios-snmp-plugins.1.1.1.tgz
cd nagios_plugins
配置check_snmp_int.pl这些插件的使用时需要配置cpan,CPAN是Comprehensive Perl Archive Network的缩写.。它是一个巨大的Perl软件收藏库,收集了大量有用的Perl模块(modules)及其相关的文件。这里主要是使用Perl-Net-SNMP模块。有两种方式安装:
A)通过CPAN来安装
#perl -MCPAN -e shell
cpan> install Net::SNMP
B) 手工安装
首先去官方网站www.cpan.org下载以下几个模块
Crypt::DES
Digest::MD5
Digest::SHA1
Digest::HMAC
Net::SNMP
下载后对于每个模块依次按照下面的方式安装
tar zxf <module>.tar.gz <module>表示模块名,具体请按上面提到的模块替换
cd <module> <module>表示模块名,具体请按上面提到的模块替换
perl Makefile.pl
make test
make install
注意:Net::SNMP模块必须在最后安装。至此Net::SNMP手动安装完毕
./install.sh
执行nagios-snmp-plugins安装脚本,执行之后会将插件命令安装到/usr/local/nagios/libexec下
启动Nagios
配置机器启动时自动启动Nagios
chkconfig --add nagios
chkconfig nagios on
检查Nagios配置文件
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
启动Nagios
service nagios start
2).如果开启防火墙,应该允许访问apache(一般为80端口)并允许nagios去抓取被监控机信息(一般nrpe为5666端口)。
访问Nagios服务器
http://localhost/
输入用户名及密码登录。
安装nrpe插件,用来监控Linux机器
tar xzvf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure
make all
在Nagios服务器端只要安装nrpe监控插件就行
make install-plugin
在/usr/local/nagios/etc/objects/commands.cfg中定义check_nrpe命令
vi /usr/local/nagios/etc/objects/commands.cfg
########################################################################
#
# 2008.11.18 add by Stone
# NRPE COMMAND
#
########################################################################
# 'check_nrpe ' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
在被监控服务器(Linux/unix)上安装Nagios-plugins和nrpeuseradd nagios
tar xzvf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
Nagios-plugins默认安装到/usr/local/nagios
./configure
make
make install
chown nagios.nagios /usr/local/nagios/
chown -R nagios.nagios /usr/local/nagios/libexec/
tar xzvf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure
make all
安装nrpe插件,本监控端可以不装
make install-plugin
安装nrpe守护进程
make install-daemon
安张nrpe配置文件
make install-daemon-config
修改nrpe配置文件,允许Nagios监控服务器(NagiosServer IP)监控
vi /usr/local/nagios/etc/nrpe.cfg
多台机器用逗号隔开
allowed_hosts=127.0.0.1,(NagiosServer IP)
以独立守护进程启动nrpe,也可以使用xinetd启动nrpe,具体清查看nrpe官方文档。
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
开机自动启动nrpe
vi /etc/rc.d/rc.local
加入下面行
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
检查nrpe是否安装正常
/usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12
返回nrpe版本说明安装没问题。
查看启动端口
如果有防火墙应该开放5666端口:
***********************************************************
注意:我们需要在/usr/local/nagios/etc/nrpe.cfg中定义我们用到的监控本地资源的命令。
下面的命令是默认定义的:
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
复制代码下面的命令是自己定义的:
# 监控交换分区的使用情况,使用超过20%时为警告状态,超过10%时为严重状态
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
# 监控根分区磁盘使用情况
command[check_disk_root]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /
***********************************************************
附:
做好必要的安全工作
设置用户家目录/home/user,相关配置参数文件,以及访问日志等目录的权限.
chmod 711 /home
chmod 711 /usr/local/pureftpd
chmod 711 /usr/local/apache/conf/vhosts
chmod 711 /usr/local/apache/domlogs
chmod 711 /usr/local/apache/logs
基础环境为Apache+PHP+Mysql+Nagios在这个基础上我们进行安装CACTI并与Nagios进行整合;
基础环境的安装请参见我前面的文章:Apache+PHP+Nagios服务器监控部署笔记(一)Nagios安装篇
下载Cacti并安装
安装rrdtool(http://oss.oetiker.ch/rrdtool/)
yum install pango pango-devel
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.3.tar.gz
tar zxvf rrdtool-1.4.3.tar.gz
cd rrdtool-1.4.3
make
make install
安装net-snmp(http://www.net-snmp.org/)
wget http://netcologne.dl.sourceforge.net/project/net-snmp/net-snmp/5.5/net-snmp-5.5.tar.gz
tar zxvf net-snmp-5.5.tar.gz
cd net-snmp-5.5
./configure --prefix=/usr/local/net-snmp --with-mysql=/usr/local/mysql/bin/mysql_config --enable-developer
make
make install
###########提示信息##############
default version of-snmp-version(3):3(在这里版本通常有三种形式:1,2c,3)
Systemcontact information(配置该设备的联系信息): ruanxi@163.com(也可以是邮箱地址)
System location (该系统设备的地理位置):Fujian P.R.C
Location to write logfile (日志文件位置):/var/log/snmpd.log
Location to Write persistent(数据存储目录):/var/net-snmp
说明:也可以使用yum install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils net-snmp-perl
或者yum net-snmp*来进行安装
ln -s /usr/local/net-snmp/bin/* /usr/local/bin/
cp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf
vi /usr/local/net-snmp/share/snmp/snmpd.conf //修改snmpd.conf(修改COMMUNITY、允许抓取snmp数据的主机、抓取数据范围等)。
以下是我的snmpd.conf配置##########################################
# sec.name source community
com2sec local localhost public
##########################################
/usr/local/net-snmp/sbin/snmpd //启动SNMP服务
vi /etc/rc.d/rc.local //在rc.local上加入一行/usr/local/net-snmp/sbin/snmpd,系统启动时启动SNMP服务。
安装cacti与cacti-spine(http://cactiusers.org/)
wget http://www.cacti.net/downloads/cacti-0.8.7g.tar.gz
wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7g.tar.gz
安装cacti
tar zxvf cacti-0.8.7g.tar.gz
mv cacti-0.8.7g /usr/local/cacti
useradd -s /sbin/nologin cacti
passwd cacti
usermod -a -G httpd cacti
chown -R httpd:cacti /usr/local/cacti
安装cacti-spine
tar zxvf cacti-spine-0.8.7g.tar.gz
cd cacti-spine-0.8.7g
获取补丁程序并安装补丁
wget http://www.cacti.net/downloads/spine/patches/0.8.7g/unified_issues.patch
patch -p1 -N < unified_issues.patch
./configure --prefix=/usr/local/cacti-spine --with-mysql=/usr/local/mysql --with-snmp=/usr/local/net-snmp
make
make install
配置cacti、cacti-spine
创建cacti数据库,并初始化该数据库
/usr/local/mysql/bin/mysql -u root -pXXXX (XXXX为数据库密码)
mysql> create database cacti;
mysql> GRANT ALL PRIVILEGES ON *.* TO cacti@localhost IDENTIFIED BY 'cacti' WITH GRANT OPTION;
mysql> flush privileges;
/usr/local/mysql/bin/mysql -ucacti -pcacti cacti < /usr/local/cacti/cacti.sql
编译配置文件/usr/local/cacti-spine/etc/spine.conf(注意:如果是RPM方式安装,那么配置文件位于/etc/spine.conf)
vi /usr/local/cacti-spine/etc/spine.conf
写入如下内容
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass 2010
DB_Port 3306
DB_PreG 0
配置cacti的虚拟主机指向目录/usr/local/cacti/
配置cacti的config.php配置文件
vi /usr/local/cacti/include/config.php
修改如下内容
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
配置/etc/cron.d/cacti任务文件,即:系统每5分钟进行收集SNMP代理上的数据
crontab -e
*/5 * * * * /usr/local/bin/php /usr/local/cacti/poller.php &>/dev/null 2>&1
测试一下
重启apache
http://ip/,登录cacti,还要相关配置,下面是一个配置例子
说明:路径要设置对,也可以先跳过,然后登录cacti主页后,选择"settings" -> "Paths"进行修改
---------------------------------------------------------------------------------
Cacti插件的安装
安装Plugin Architecture(http://cactiusers.org/)
作用:让cacti支持更多的插件
tar zxvf cacti-plugin-0.8.7g-PA-v2.9.tar.gz
mv cacti-plugin-arch /usr/local/cacti/
cd /usr/local/cacti/
/usr/local/mysql/bin/mysql -ucacti -pcacti cacti < cacti-plugin-arch/pa.sql
patch -p1 -N < cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.9.diff
rm -rf cacti-plugin-arch
chown -R httpd:cacti /usr/local/cacti
vi /usr/local/cacti/include/global.php,修改并增加如下
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "2010";
$database_port = "3306";
显示Plugin-Management
User Management -> "admin" or "other user" -> "Realm Permissions" -> "Plugin Management" -> 打勾并保存
安装相关插件
安装Settings插件(http://docs.cacti.net/plugins)
wget http://docs.cacti.net/_media/plugin:settings-v0.7-1.tgz
tar zxvf settings-v0.7-1.tgz
mv settings /usr/local/cacti/plugins/settings
根据新旧版本插件,进行设置
安装Thold插件(http://docs.cacti.net/plugins)
wget http://docs.cacti.net/_media/plugin:thold-latest.tgz -O thold-latest.tgz
tar zxvf thold-latest.tgz
mv thold-0.41 /usr/local/cacti/plugins/thold
根据新旧版本插件,进行设置
安装Monitor插件(http://docs.cacti.net/plugins)
tar zxvf monitor-v1.2-1.tgz
mv monitor /usr/local/cacti/plugins/monitor
根据新旧版本插件,进行设置
WeatherMap插件(http://www.network-weathermap.com/download)
wget http://www.network-weathermap.com/files/php-weathermap-0.97a.zip
unzip php-weathermap-0.97a.zip
mv weathermap /usr/local/cacti/plugins/
cd /usr/local/cacti/plugins/weathermap/
chown -R httpd:cacti /usr/local/cacti
chmod u+w configs #设置configs目录的所属主对该目录可写
cp editor-config.php-dist editor-config.php
vi editor-config.php,修改如下参数
$cacti_base = "/usr/local/cacti"; #cacti目录的绝对路径
$cacti_url = "http://localhost/cacti/"; #访问cacti的地址
$mapdir= $cacti_base.'/plugins/weathermap/configs'; #设置configs目录的绝对路径
根据新旧版本插件,进行设置
Nagios整合到Cacti
安装Nagios Plugin for Cacti(NPC)插件(http://trac2.assembla.com/npc)
作用:将nagios的数据通过ndo2db导入到mysql数据库,然后cacti读取数据库信息将nagios的结果通过NPC展示出来
安装NPC
wget http://www.constructaegis.com/downloads/npc-2.0.4.tar.gz
tar zxvf npc-2.0.4.tar.gz
mv npc /usr/local/cacti/plugins/
最后:根据新旧版本插件,进行设置
安装php-json(http://pecl.php.net/package/json),因为NPC需要用到它
wget http://pecl.php.net/get/json-1.2.1.tgz
tar zxvf json-1.2.1.tgz
cd json-1.2.1
/usr/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config --enable-shared --enable-static --with-json
make
make install
service httpd restart
http://ip /phpinfo.php
访问phpinfo.php文件,确定一下是否已经加载了json,文件可以自行创建,内容如下:
<?php
phpinfo();
?>
安装NDOUtils
cd /usr/src/ndoutils-1.4b9/
./configure --prefix=/usr/local/nagios --enable-mysql --disable-pgsql LDFLAGS=-L/usr/local/mysql/lib/mysql --with-mysql-lib=/usr/local/mysql/lib/mysql --with-mysql=/usr/local/mysql
make
在编译没有出错后,复制相应的配置文件与相关的执行文件,他们的主要作用就是做相关的配置与让nagios可以正确的调用。
cd /usr/src/ndoutils-1.4b9/src/
cp ndo2db-3x ndo2db-2x file2sock log2ndo /usr/local/nagios/bin/
cd ../config
cp ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
cp ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
以上复制的文档中前两项是版本相关的,即假如您的nagios主版本号是2系列,则需要拷贝名为ndomod-2x.o和ndo2db-2x的两个文档。后两项是通用文档,随便复制过去就OK了。
修改NPC在CACTI数据库中的相关表,这个应该是个BUG。所以需要执行如下操作:
ALTER TABLE `npc_hostchecks` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_hoststatus` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_servicechecks` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_servicestatus` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_statehistory` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_eventhandlers` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_systemcommands` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_notifications` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
配置ndo2db.cfg文件:
[root@node3 etc]# vim /usr/local/nagios/etc/ndo2db.cfg
lock_file=/usr/local/nagios/var/ndo2db.lock
ndo2db_user=nagios
ndo2db_group=nagios
socket_type=tcp
socket_name=/usr/local/nagios/var/ndo.sock
tcp_port=5668
use_ssl=0
db_servertype=mysql
db_host=localhost
db_port=3306
db_name=cacti
db_prefix=npc_
db_user=cacti
db_pass=cacti
max_timedevents_age=1440
max_systemcommands_age=10080
max_servicechecks_age=10080
max_hostchecks_age=10080
max_eventhandlers_age=44640
max_externalcommands_age=44640
debug_level=0
debug_verbosity=1
debug_file=/usr/local/nagios/var/ndo2db.debug
max_debug_file_size=1000000
配置ndomod.cfg文件
vi /usr/local/nagios/etc/ndomod.cfg
instance_name=node3
output_type=tcpsocket
output=127.0.0.1
tcp_port=5668
use_ssl=0
output_buffer_items=5000
buffer_file=/usr/local/nagios/var/ndomod.tmp
file_rotation_interval=14400
file_rotation_timeout=60
reconnect_interval=15
reconnect_warning_interval=15
data_processing_options=-1
config_output_options=2
配置nagios的配置文件
vi /usr/local/nagios/etc/nagios.cfg
添加以下两句,第二句如果没有才加上去,默认是有的。
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
event_broker_options=-1
启动ndo2db守护进程
/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
执行完以上这条命令,如果没有报错,就看看nagios.log的日志,如果出现以下提示:
nagios: ndomod: Could not open data sink! I'll keep trying, but some output may get lost...
解决方法就是:
查看/usr/local/nagios/etc/ndo2db.cfg文件里的ndo2db_user=nagios ndo2db_group=httpd db_user=cacti
db_pass=ndouser 这几项是否正确配置了,ndo2db_user就是你运行nagios的用户名;ndo2db_group是运行nagios的组,db_user表示的是你授权访问ndodb数据库的用户名,db_pass访问数据的密码。
如果在加载守护进程出现:
Failed to obtain lock on file /usr/local/nagios/var/ndo2db.lock: Permission denied : Permission denied
解决方法是:确认你在/usr/local/nagios/etc/ndo2db.cfg里ndo2db_user与ndo2db_group这两项的填写的用户是否对目录/usr/local/nagios/var/有写入的权限。
重新启动nagios
service nagios restart
至此已经全部配置完成,下面确认我们已经安装成功,进入mysql看看我们创建的数据表里是否有数据。并且访问CACTI
实现MSN报警
基础环境,请参考我的前面的文章:《Apache+PHP+Nagios+Cacti+MSN服务器监控部署笔记(一)Nagios安装篇》
要实现MSN报警需要使用phpmsnclass,这是一个用php实现的msn机器人程序。
wget http://phpmsnclass.googlecode.com/files/phpmsnclass_1.10.7z
下载phpmsnclass,此文件为7zip压缩格式,需要安装7z
wget http://nchc.dl.sourceforge.net/sourceforge/p7zip/p7zip_4.65_x86_linux_bin.tar.bz2
tar jxvf p7zip_4.65_x86_linux_bin.tar.bz2
cd p7zip_4.65
./install.sh 安装7z
7z e phpmsnclass_1.9.7z 解压文件
msn报警有2种方式,一种是直接使用php进行登陆验证发送消息,另外一个是以msn机器人的形式发送,将消息存储在目录内。这里采用第二种。
cd phpmsnclass
mkdir /var/spool/msnbot
mkdir /var/spool/msnbot/log
mkdir /var/spool/msnbot/spool
下面把msnbot.php, config.php和msn.class.php拷贝到/var/spool/msnbot/
cp msnbot.sh msnbot.php msn.class.php msnsendmsg.php notify_add.php notify_send.php notify.sql sample.php test.msn changelog.txt config.php notify_config.php /var/spool/msnbot/
chmod 777 /var/spool/msnbot/spool
chmod o+t /var/spool/msnbot/spool
这个机器人的工作原理是如果要发送消息,就调用php生成消息文件到
/var/spool/msnbot/spool目录中,发送程序检查到该目录有新文件就会模拟msn登陆和发信将信息发送出去。
chmod +x /var/spool/msnbot/msnbot.php
vi config.php
在配置文件中设置MSN的账号和密码(以后报警通过这个MSN发出)
cp msnbot.sh /etc/init.d/
chmod +x msnbot.sh 加上执行权限
vi msnbot.sh
修改后的内容如下:
#! /bin/sh
#
# MSN bot
#
NAME=msnbot
DESC="MSN bot"
set -e
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
/usr/local/php/bin/php -Cq /var/spool/msnbot/msnbot.php
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
MSNPID=`cat /var/spool/msnbot/log/msnbot.pid`
kill $MSNPID
echo "."
;;
restart|force-reload)
$0 stop
sleep 5s
$0 start
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
需要修改/var/spool/msnbot/msnbot.php这句
前面添加php程序的具体位置并添加具体参数:
/usr/local/php/bin/php -Cq /var/spool/msnbot/msnbot.php
修改msnbot.php文件
vi /var/spool/msnbot/msnbot.php
去除文件中第一行的内容;
启动MSN机器人
./msnbot.sh start
下面发个消息测试一下
php msnsendmsg.php netkey530@hotmail.com "this is a test2"
向netkey530@hotmail.com的MSN账号发送测试信息
注意需要将netkey530@hotmail.com和config.php里设置的MSN账号相互加为好友
如果成功接收到信息说明配置正确,此步骤到此结束,后面的能让Nagios使用MSN进行报警的功能需要到Nagios里设置了。
###############################
http://88fly.blog.163.com/blog/static/122680390201151511253223/
本文档基于CENTOS5.2系统和Nagios实现网管监控功能,并与Cacti实现整合。Centos初始安装后的一些系统基本设置工作本文档不做说明,请参考相关资料。
文档版本:V1.0
最后修改:2009-3-19 By NetKey
系统环境:CentOS5.2
格式约定:
黑色粗体:为输入命令部分 红色粗体:为需要按你的环境修改的部分 绿色粗体:系统返回的提示信息 蓝色粗体:文档注释部分 |
Nagios是一款开源的免费网络监视工具,其功能强大,灵活性强。能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。本文档主要实现nagios监控windows主机,nagios监控windows系统有三种实现方式:SNMP、NSClient++、NRPE,后面两种方式都需要在windows上安装agent,因目前服务器上都开启了SNMP,所以本文档只介绍使用SNMP方式来监控Windows。
第一部分:Nagios的安装
1.安装基础支持套件和添加用户
nagios需要一些基础支持套件才能运行,如httpd;gcc;glibc;glibc-common;gd;gd-devel库等。
创建一个用户组名为nagcmd 用于从web执行外部命令:将nagios与apache用户加入到这个用户主:
#yum install httpd #yum install gcc #yum install glibc glibc-common #yum install gd gd-devel #/usr/sbin/useradd -m nagios 添加一个名为nagios的用户用以专门跑nagios #passwd nagios 设置密码 #/usr/sbin/groupadd nagcmd 添加nagcmd用户组,用以通过web页面提交外部控制命令 #/usr/sbin/usermod -a -G nagcmd nagios 将nagios用户加入nagcmd组 #/usr/sbin/usermod -a -G nagcmd apache 将apache用户加入nagcmd组 |
2.编译与安装nagios
#mkdir ~/downloads #cd ~/downloads #wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.6.tar.gz #wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz #cd ~/downloads #tar xzf nagios-3.0.6.tar.gz #cd nagios-3.0.6 #./configure --with-command-group=nagcmd #make all #make install #make install-init #make install-config #make install-commandmode #vi usr/local/nagios/etc/objects/contacts.cfg #make install-webconf 安装nagios的web接口 #htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin #service httpd restart 启动apache |
验证程序是否被正确安装。切换目录到安装路径(默认是/usr/local/)看是否存在etc、bin、sbin、share、var这五个目录,如果存在则可以表明程序被正确的安装到系统了,后表是五个目录功能的简要说明:
Bin |
Nagios执行程序所在目录,nagios文件即为主程序 |
etc |
Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件 3与2区别 对象配置文件都在etc/objects目录下 |
sbin |
Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录 |
Share |
Nagios网页文件所在的目录 |
Var |
Nagios日志文件、spid 等文件所在的目录 |
var/archives |
Empty directory for the archived logs |
var/rw |
Empty directory for the external command file |
3. 编译并安装nagios-plugins
nagios-plugins是nagios官方提供的一套插件程序,nagios监控主机的功能其实都是通过执行插件程序来实现的。
#cd ~/downloads #tar xzf nagios-plugins-1.4.13.tar.gz #cd nagios-plugins-1.4.13 #./configure --with-nagios-user=nagios --with-nagios-group=nagios #make #make install |
4. 验证:
ls /usr/local/nagios/libexec
会显示安装的插件文件,即所有的插件都安装在libexec这个目录下
3.2.5 配置WEB接口
方法一:直接在安装nagios时 make install‐webconf
创建一个nagiosadmin的用户用于Nagios的WEB接口登录。记下你所设置的登录口令,一会儿你会用到它。
htpasswd ‐c /usr/local/nagios/etc/htpasswd.users nagiosadmin
重启Apache服务以使设置生效。
service httpd restart
方法二:在httpd.conf最后添加如下内容: #setting for nagios 20090325 #setting by bbs.linuxtone.org ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin <Directory "/usr/local/nagios/sbin"> Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd //用于此目录访问身份验证的文件 Require valid-user </Directory> Alias /nagios /usr/local/nagios/share <Directory "/usr/local/nagios/share"> Options None AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUserFile /usr/local/nagios/etc/htpasswd //用于此目录访问身份验证的文件 Require valid-user </Directory> |
/usr/local/apache2/bin/htpasswd ‐c /usr/local/nagios/etc/htpasswd test
New password: (输入12345)
Re‐type new password: (再输入一次密码)
Adding password for user test
查看认证文件的内容
less /usr/local/nagios/etc/htpasswd
test:OmWGEsBnoGpIc 前半部分是用户名test,后面是加密后的密码
本例添加的是test 用户名,需要改 cgi.cfg 配置文件,允许test用户 authorized_for_system_information=test authorized_for_configuration_information=test authorized_for_system_commands=test authorized_for_all_services=test authorized_for_all_hosts=nagiosadmin,test authorized_for_all_service_commands=test authorized_for_all_host_commands=test 如果有多用户,请用逗号格开 |
4.安装nagios-snmp-plugins
nagios-snmp-plugins是一套用Perl编写的通过SNMP方式监控主机的插件程序。
#cd ~/downloads #wget http://nagios.manubulon.com/nagios-snmp-plugins.1.1.1.tgz #tar xzf nagios-snmp-plugins.1.1.1.tgz #cd nagios_plugins 配置check_snmp_int.pl这些插件的使用时需要配置cpan,CPAN是Comprehensive Perl Archive Network的缩写.。它是一个巨大的Perl软件收藏库,收集了大量有用的Perl模块(modules)及其相关的文件。这里主要是使用Perl-Net-SNMP模块。有两种方式安装: #perl -MCPAN -e shell cpan> install Net::SNMP B) 手工安装 首先去官方网站www.cpan.org下载以下几个模块 Crypt::DES Digest::MD5 Digest::SHA1 Digest::HMAC Net::SNMP 下载后对于每个模块依次按照下面的方式安装 #tar zxf <module>.tar.gz <module>表示模块名,具体请按上面提到的模块替换 #cd <module> <module>表示模块名,具体请按上面提到的模块替换 #perl Makefile.pl #make test #make install 注意:Net::SNMP模块必须在最后安装。至此Net::SNMP手动安装完毕 #./install.sh |
5.其他设置
至此nagios基本已经安装完毕,但这时还不能马上启动nagios,需要以下设置。 #chkconfig --add nagios 将nagios添加到服务中 #chkconfig nagios on 设置服务为自启动 #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg #service nagios start 启动nagios 需要注意的是,Centos默认打开了selinux并且运行于强制安全模式,这将导致在打开nagios的web界面时会出现Internet Server Error的错误。 #getenforce 查看是否运行于强制模式,结果为1表示是 #setenforce 0 更改selinux运行于宽容模式 但是这个设置重启后就会失效,如需要重启后保持该设置需要修改/etc/sysconfig/selinux,将其中的SELINUX= enforcing更改为SELINUX= permissive并重启系统。当然你也可以改成disable禁用selinux。 也可以不更改selinux的运行模式,解决办法为: #chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/ #chcon -R -t httpd_sys_content_t /usr/local/nagios/share/ |
6.实现MSN报警
要实现MSN报警需要使用phpmsnclass,这是一个用php实现的msn机器人程序。
#cd ~/downloads 下载phpmsnclass,此文件为7zip压缩格式,需要安装7z #wget http://nchc.dl.sourceforge.net/sourceforge/p7zip/p7zip_4.65_x86_linux_bin.tar.bz2 #tar jxvf p7zip_4.65_x86_linux_bin.tar.bz2 #cd p7zip_4.65 #./install.sh 安装7z #cd - #7z e phpmsnclass_1.9.7z 解压文件 phpmsnclass需要php支持,安装php,这里为了方便就直接完成LAMP环境的安装 #yum -y install mysql-server 安装mysql数据库,后面安装cacti需要 #yum install -y php php-cli php-xcache php-mysql php-mbstring php-gd php-pgsql php-mcrypt php-mhash php-xml php-bcmath 安装php相关模块 msn报警有2种方式,一种是ls息,另外一个是以msn机器人的形式发送,将消息存储在目录内。这里采用第二种。 #cd phpmsnclass #mkdir /var/spool/msnbot #mkdir /var/spool/msnbot/log #mkdir /var/spool/msnbot/spool 下面把msnbot.php, config.php和msn.class.php拷贝到/var/spool/msnbot/ #cp msnbot.php config.php msn.class.php /var/spool/msnbot #chmod 777 /var/spool/msnbot/spool #chmod +x /var/spool/msnbot/msnbot.php #vi config.php #cp msnbot.sh /etc/init.d/ #chmod +x msnbot.sh 加上执行权限 #vi msnbot.sh 在启动函数里执行的php文件前要加上php (php后有空格) #./msnbot.sh start 启动MSN机器人 下面发个消息测试一下 #php msnsendmsg.php netkey530@hotmail.com "this is a test2" 如果成功接收到信息说明配置正确,此步骤到此结束,后面的能让Nagios使用MSN进行报警的功能需要到Nagios里设置了。 如果需要支持离线消息即当你在离线状态下也能接收到机器人的信息,需要使用MSNP15协议,修改相关发信的vi 文件将声明新类的地方new MSN的第一个参数改为MSNP15 |
第二部分 nagios的配置
nagios目录结构比较清晰,安装后下面一共有bin etc libexec sbin share var几个目录,其中配置文件都存放在etc目录下,bin下存放的是nagios的相关命令,sbin下存放的是通过web方式外部执行的cgi,libexec存放的是所有插件,而var则存放的是log和pid文件等。而实现监控都是依靠执行插件来实现的。
要实现监控,需要在nagios中定义一个service,在这个service中指定监控对象和监控命令以及报警机制等。Nagios的配置关系可以按照下图来做说明:
nagios的配置也比较清晰明了,etc目录下默认有objects目录和一些配置文件,其中objects里放的是主配置文件nagios.cfg包含进去的配置文件。在nagios.cfg中既可以指定单独包含一个cfg,也可以指定一个包含目录,即该目录下所有的cfg文件都会包含进来。
首先我们配置下主配置文件,为了目录的清晰我们自己建立一些目录来存放相关的配置文件,比如建立commands目录存放命令,建立services目录存放服务,建立hosts目录存放主机,在nagios.cfg文件中找到cfg_file的部分,下面是一个示例,实际部署的时候可以按照你自己的情况去设置:
cfg_file=/usr/local/nagios/etc/objects/commands.cfg //监事脚本配置 cfg_file=/usr/local/nagios/etc/objects/contacts.cfg //联系人/组配置文件 cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg//监事时段配置文件 cfg_file=/usr/local/nagios/etc/objects/templates.cfg //监事服务,报警设置 cfg_file=/usr/local/nagios/etc/objects/localhost.cfg//本机配置文件 cfg_file=/usr/local/nagios/etc/objects/switch.cfg//监事路由 cfg_dir=/usr/local/nagios/etc/services 包含配置目录,目录下所有cfg文件将被包含;下同 cfg_dir=/usr/local/nagios/etc/hosts cfg_dir=/usr/local/nagios/etc/commands cfg_dir=/usr/local/nagios/etc/switches cfg_dir=/usr/local/nagios/etc/routers |
nagios.cfg其他地方可以暂不调整,该文件中具体参数请参考附件中的配置文件中文注释
这里先说明一下,监控都是依靠插件去完成的,举个例子说明,如我们要监控60.222.111.83这台服务器的虚拟内存,当达到70%的时候状态为警告,达到90%的时候为严重。这个依靠check_snmp_storage.pl这个插件来完成。
[root@localhost etc]# /usr/local/nagios/libexec/check_snmp_storage.pl -H 60.222.111.83 -C mypublic -2 -m "^Virtual Memory$" -w 70 -c 90 Virtual Memory: 21%used(531MB/2472MB) (<70%) : OK |
其中-H参数表示主机地址,-C参数表示SNMP团体名称,-2表示使用SNMP v2协议,-w为warning(警告)状态的阈值,-c表示为critical(严重)状态的阈值
要用nagios实现监控某主机,就是要实现用nagios调用这样的命令即可。
配置resource.cfg,文件内容:
[root@localhost etc]# cat resource.cfg |grep -v '#'| sed /^$/d 查看resource.cfg配置 $USER1$=/usr/local/nagios/libexec $USER7$=-C mypublic -2 |
这里其实是定义两个变量$USER1$和$USER7$,因为在后面定义command的时候插件的路径是绝对路径,为了节省输入直接可以用$USER1$代替/usr/local/nagios/libexec。而SNMP插件的命令行中的参数需要设置SNMP相关的信息,为节省输入这里用$USER7$来代替
-C mypublic -2。大家可对照上面检测60.222.111.83的虚拟内存的例子结合来加以理解。
下面我们来定义一个command用以监控,仍然以在nagios中实现监控60.222.111.83这台主机的虚拟内存为例说明。为了目录结构的清晰,我们将command的定义都放到commands目录下。在commands下建立一个cfg后缀的文件,针对此示例的command定义内容为
define command{ command_name check_snmp_storage command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ $USER7$ $ARG1$ -w $ARG2$ -c $ARG3$ } |
其中的$USER1$和$USER7$即为我们在上面的resource.cfg中定义的两个变量,$HOSTADDRESS$为我们在下面要定义的主机。
在hosts目录下建立一个cfg后缀的文件来存放主机配置。
define host{ use windows-server 定义使用的模板 host_name web83 定义主机名为web83 alias web server on 111.83 主机别名 address 60.222.111.83 主机IP地址 hostgroups linuxtoneweb 将该主机归到linuxtoneweb这个组,如果要归到多个组里,用逗号分隔组名 } |
在定义主机的时候我们将83归到了linuxtoneweb这个组,下面来定义这个组名。可以直接在hosts下建立一个定义组名的cfg文件。
define hostgroup{ hostgroup_name linuxtoneweb alias linuxtone web servers } |
这样就定义了一个linuxtoneweb组,将主机归为一个组有两种方法,一种是我们这种在主机的定义中去设置,另外一种是在组的设置中定义members。如下:
define hostgroup{ hostgroup_name linuxtoneweb alias linuxtone web servers } |
在定义主机分组里面我们还可以用hostgroup_members定义下级分组,十分方便。
OK,上面我们完成了命令、主机的定义,下面我们就要进入nagios监控某个对象的关键设置,nagios的监控都是靠定义一个service来实现,这里我们定义一个service来实现监控83的虚拟内存。在services目录下建立一个cfg文件。
define service { hostgroup_name linuxtone,linuxtoneweb,database 定义监控对象 name memory 设置服务名 service_description check memory 服务描述 check_period 24x7 监控周期设置 max_check_attempts 4 最大检测尝试次数 normal_check_interval 3 正常检测间隔时间 retry_check_interval 2 重试检测间隔时间 contact_groups admins 报警联系组 notification_interval 10 通知间隔 notification_period 24x7 通知周期设置 notification_options w,u,c,r 定义什么状态时报警 check_command check_snmp_storage!-m "^Virtual Memory$"!70!90 } |
这样我们完成对一个service的定义,定义监控对象我们这里是定义了3个组,即属于这3个组的所有主机都会检测虚拟内存(注意:组必须在其他文件中事先定义好)。当然你也可以用host_name针对主机作为检测对象(多主机用逗号分隔)。监控周期和报警周期我们设置的都是24x7,这个会在后面去定义。定义报警状态中的w表示warning,u表示unknown,c表示critial,r表示recovery(即恢复后是否发送通知);报警选项一般生产环境下设置w,c,r即可。最后我们看到实现监控的主体部分
check_command check_snmp_storage!-m "^Virtual Memory$"!70!90
定义实现这个检测的命令,check_snmp_storage即为我们上面在commands里定义的命令名,
!表示带入的参数,这里有三个!表示带入三个参数到command里,每个参数之间用!分隔,这里表示第一个参数为-m “^Virtual Memory$”,第二个参数为70,第三个参数为90。下面我们回头去看看check_snmp_storage这个command的定义:
command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ $USER7$ $ARG1$ -w $ARG2$ -c $ARG3$
这里的$ARG1$即表示参数1,$ARG2即表示参数2,$ARG3$即表示参数3
而$HOSTADDRESS$是我们定义的检测对象,它的值就是我们的主机IP地址;$USER1$和$USER7$为在resource.cfg里的定义。下面我们将参数值代入这个command里,最后实现的效果是:
/usr/local/nagios/libexec/check_snmp_storage.pl –H 60.222.111.83 –C mypublic -2 –m “^Virtual Memory$” –w 70 –c 90
而这个命令就是我们实现监控83的虚拟内存的命令!
设置3个参数是为了灵活的针对不同主机的调用,如果你对不同的主机设置的阈值不同,只需要对不同的主机定义不同的service即可,command是可以通用的!而这里的参数1也是为了实现不同的功能而设置的,这个脚本还可以检测物理内存,如果我们把参数1的值设置为”^Phisical Memory$”就可以针对物理内存进行检测!定义command的时候参数的个数的设定是你可以根据需要设置的。只需要在后面service中能将参数值代到command中最终能实现你要检测的命令即可。到此为止你可以感受到nagios的灵活性了吧。
到这里我们基本实现了nagios的监控功能,下面我们继续来看看其他设置。在定义host的时候我们有个主机模板的设置,这个设置的定义在object/template.cfg中定义的,这是一个系统自带的配置文件,关于我们所使用的Windows-Server的模板定义内容为:
# Windows host definition template - This is NOT a real host, just a template! define host{ name windows-server ; The name of this host template use generic-host ; Inherit default values from the generic-host template check_period 24x7 ; By default, Windows servers are monitored round the clock check_interval 5 ; Actively check the server every 5 minutes retry_interval 1 ; Schedule host check retries at 1 minute intervals max_check_attempts 10 ; Check each server 10 times (max) check_command check-host-alive ; Default command to check if servers are "alive" notification_period 24x7 ; Send notification out at any time - day or night notification_interval 30 ; Resend notifications every 30 minutes notification_options d,r ; Only send notifications for specific host states contact_groups admins ; Notifications get sent to the admins by default hostgroups windows-servers ; Host groups that Windows servers should be a member of register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE } |
objects目录下的contact.cfg中定义的是报警联系人。
define contact{ contact_name nagiosadmin ; Short name of user use generic-contact ; Inherit default values from generic-contact template (defined above) alias Nagios Admin ; Full name of user email netkey@linuxtone.com ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** address1 netkey530@hotmail.com ;这里是个自定义的变量设置,定义了一个MSN地址用以接收MSN报警信息,联系人的自定义变量只能使用address1-address6;通过这个设置你可以实现多种报警方式,如电话,手机短信等,通过在这里设置你的电话,手机号,然后到报警命令定义里定义一个命令即可。 } |
其使用了generic-contact这个联系模板,关于这个模板templates.cfg里的定义内容为:
define contact{ name generic-contact ; The name of this contact template service_notification_period 24x7 ; service notifications can be sent anytime host_notification_period 24x7 ; host notifications can be sent anytime service_notification_options w,u,c,r,f,s ; send notifications for all service states, flapping events, and scheduled downtime events host_notification_options d,u,r,f,s ; send notifications for all host states, flapping events, and scheduled downtime events service_notification_commands notify-service-by-email,notify-service-by-msn ; send service notifications via email host_notification_commands notify-host-by-email,notify-host-by-msn ; send host notifications via email register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE! } |
上面我在该配置文件中增加了notify-service-by-msn和notify-service-by-msn的两种报警命令
而关于报警的周期设置在objects下的timeperiods.cfg中,如我们上面在service里定义的7x24的报警周期设置内容为:
define timeperiod{ timeperiod_name 24x7 alias 24 Hours A Day, 7 Days A Week sunday 00:00-24:00 monday 00:00-24:00 tuesday 00:00-24:00 wednesday 00:00-24:00 thursday 00:00-24:00 friday 00:00-24:00 saturday 00:00-24:00 } |
通过这里我们可以灵活设置报警时间以和报警方式结合,如周末和休息时间设置报警为发送短信和邮件,工作时间设置为发送邮件和MSN报警方式。
下面我们来看关于报警命令的设置,在objects下的command.cfg里定义的为
define command{ command_name notify-host-by-email command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$ } # 'notify-service-by-email' command definition define command{ command_name notify-service-by-email command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ } # 'notify-host-by-msn' command definition define command{ command_name notify-host-by-msn command_line php /usr/local/nagios/share/msn/msnsendmsg.php $CONTACTADDRESS1$ "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" } # 'notify-service-by-msn' command definition define command{ command_name notify-service-by-msn command_line php /usr/local/nagios/share/msn/msnsendmsg.php $CONTACTADDRESS1$ "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" } |
定义了4种报警命令,后面两种msn报警是我添加的;邮件报警是使用系统自带的sendmail来发送邮件的(注意要启动sendmail服务),而msn报警是使用我们上面所配置的msn机器人发送的报警信息。
至此,整个nagios的监控和报警机制了解完毕。注意我们在配置过程中的任何改动都记得要去通过/usr/local/nagios/bin/nagios –c /usr/local/nagios/etc/nagios.cfg以检查配置文件是否正确,如果正确则可以重启nagios加载新配置(service nagios restart)
7:nagios 使用FetionRobot短信/msn在线报警
1、安装fetion 官网地址:http://www.it‐adv.net/ 支持库安装: 需要Glibc2.4以上的版本 2、安装过程 下载包地址 LINUX X86/32(REDHAT ES4X32):支持库 最新程序fetion20080522004‐linrh4.tar.gz 其中支持库和安装包内容如下: # tar zxvf libraryrh4x32.tar.gz libACE‐5.6.5.so libACE_SSL‐5.6.5.so libcrypto.so.0.9.7a libssl.so.0.9.7a # tar zxvf fetion20080522004‐linrh4.tar.gz 我将fetion放在/../nagios/libexec/sms 把支持库复制到/usr/lib/目录下,并作软链接如下: cp lib*so* /usr/lib/ ln ‐s /usr/lib/libcrypto.so.0.9.7a /usr/lib/libcrypto.so.4 ln ‐s /usr/lib/libssl.so.0.9.7a /usr/lib/libssl.so.4 设定lib库配置文件 #vi /etc/ld.so.conf #增加一条 /usr/lib/ #保存退出后,执行 #ldconfig |
2.测试安装 #cd install # ./fetion ‐h Usage: fetion ‐h ‐h: help fetion ‐u mobile ‐p pwd [‐b batchfile] [‐EN] [‐d] fetion ‐u mobile ‐p pwd [‐b batchfile] [‐EN] [‐d] ‐u: Fetion user account(only supports mobile phone No.) ‐p: Account password ‐b: Batch file name ‐d: Debug and write logs to [mobile]‐debug.log ‐EN: English 3、实际测试 测试帐号:13888888888 密码:123456 (如果密码中含有特殊字符,请使用单引号) 如果发送成功。那么fetion安装过程就OK了 |
3.与nagios组合及perl脚本
3、与nagios 组合及perl脚本 fetion 组合nagios 1、Fetion以后台方式启动:nohup /usr/local/nagios/libexec/sms/fetion ‐u 13888888888 ‐p 123456 >/dev/null 2>1 & 2、写一个perl脚本 Sms.pl (/../nagios/libexec/sms/sms.pl) #!/usr/bin/perl ‐w use strict; use Data::Dumper; use LWP::UserAgent; my $mesg = shift; $mesg =~ s/\//|/g; my @number = (接收手机号,接收手机号); foreach my $number ( @number ) { #print "send sms to $number \n"; my $send_sms_url = "http://localhost:40000/API/buddy/sms/" . $number . "/" . $mesg . '?rand=0.7394060082921254'; my $request = HTTP::Request‐>new(GET => $send_sms_url); my $ua = LWP::UserAgent‐>new; $ua‐>timeout( 5 ); $ua‐>agent("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; Maxthon 2.0)"); my $response = $ua‐>request($request); my $content = $response‐>content(); }
|
4.nagios配置
contacts.cfg添加: define contact{ contact_name sms‐members use sms‐mail‐contact alias Nagios Admin SMS pager 138888888888 } define contactgroup{ contactgroup_name admins‐and‐lijs alias Nagios Administrators members sms‐members } 修改报警选项:templates.cfg define contact{ name generic‐contact service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r,f,s host_notification_options d,u,r,f,s service_notification_commands notify‐service‐by‐email; service‐notify‐by‐sms host_notification_commands notify‐host‐by‐email register 0 } define contact{ name sms‐mail‐contact service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r,f,s host_notification_options d,u,r,f,s service_notification_commands service‐notify‐by‐sms host_notification_commands notify‐host‐by‐email register 0 } 修改调用脚本:commands.cfg #host‐notify‐by‐sms define command { command_name host‐notify‐by‐sms command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nWAN_IP: $HOSTALIAS$\nLAN_IP: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/local/nagios/libexec/sms.pl 710880931 "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$ } #service notify by sms define command { command_name service‐notify‐by‐sms command_line /usr/local/nagios/libexec/sms/sms.pl '$NOTIFICATIONTYPE$ $HOSTNAME$ $SERVICEDESC$ is $SERVICESTATE$ info: $SERVICEOUTPUT$' } |
Nagios PNP配置绘图
参考本人以前的文档:http://bbs.linuxtone.org/thread‐1235‐1‐1.html
1、PNP 安装见官网:http://www.pnp4nagios.org/pnp/install
2、zlib gd rrdtool 可以使用yum 安装
wget http://packages.sw.be/rpmforge‐release/rpmforge‐release‐0.3.6‐1.el5.rf.i386.rpm rpm ‐ivh rpmforge‐release‐0.3.6‐1.el5.rf.i386.rpm yum –y install zlib gd gd‐devel rrdtool |
3.修改PNP
修改PNP配置文件,开启日志 默认路径在:/usr/local/nagios/var/process_perfdata.cfg LOG_FILE = /usr/local/nagios/var/perfdata.log # # Loglevel 0=silent 1=normal 2=debug # LOG_LEVEL = 0 #本例设置为2 使用debug模式
|
4、太阳图标配置文件修改
参照官网:http://www.pnp4nagios.org/pnp/webfe 本例3.X有一个小区别就是加太阳图标的时候 是在/usr/local/nagios/etc/objects/templates.cfg server选项及local选项, 添加红色部分 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ define service{ name generic‐service action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$ process_perf_data 1 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ define service{ name local‐service use generic‐service action_url /nagios/pnp/index.php?host=$HOSTNAME$ process_perf_data 1 |
5.nagios主配置文件修改
service_perfdata_command=process‐service‐perfdata 修改command.cfg 配置文件 # 'process‐service‐perfdata' command definition define command{ command_name process‐service‐perfdata command_line /usr/bin/printf "%b" "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$ \t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\ t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$ \t$SERVICEPERFDATA$\n" >> /usr/local/nagios/var/service‐perfdata.out } define command { command_name process‐service‐perfdata command_line /usr/local/nagios/libexec/process_perfdata.pl } |
重新加载nagios配置文件即可。如有问题注意看权限及日志提示。
第三部分 安装cacti
Cacti的运行需要AMP(Apache + MySQL + PHP), RRDTool , net-snmp , AMP环境我们在上面已经配置。
安装rrdtool,rrdtool不能直接通过yum安装,可以加入Dag RPM Repository以便让yum能找到rrdtool #wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm #rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm #yum install rrdtool 安装net-snmp #yum –y install net-snmp net-snmp-utils 安装cacti Mysql>source /usr/local/cacti/cacti.sql 导入mysql数据库 配置cacti数据库信息 1. $database_type = "mysql"; 2. $database_default = "cacti"; 3. $database_hostname = "localhost"; 4. $database_username = "cactiuser"; 5. $database_password = "cacti"; 配置cacti自动运行: 1. */5 * * * * /opt/php/bin/php /opt/htdocs/www/cacti/poller.php > /dev/null 2>&1 Spine更有效率可以选择性安装 Spine更有效率可以选择性安装 配置cacti: 1.选择"新的安装" 2.配置路径(以系统中实际安装路径为准) 3.默认用户名及密码 4.进入cacti后台 5.查看报表 6.创建磁盘监控 以上完成了cacti安装,下面安装插件 安装插件框架: 1. cd /opt/htdocs/www 2. unzip cacti-plugin-0.8.7e-PA-v2.6.zip 3. chown -R www:website cacti-plugin-arch/ 4. chmod -R 0775 cacti-plugin-arch 2.导入数据库结构 1. mysql -u cacti -p cacti<cacti-plugin-arch/pa.sql 3.覆盖文件 1. cp –rf cacti-plugin-arch/files-0.8.7e/* /opt/htdocs/www/cacti 方法二:打补丁 1. cp cacti-plugin-arch/cacti-plugin-0.8.7e-PA-v2.6.diff /opt/htdocs/www/cacti/ 2. cd /opt/htdocs/www/cacti/ 3. patch -p1 -N <cacti-plugin-0.8.7e-PA-v2.6.diff 我用方法一 4.配置插件的数据库信息 1. $database_type = "mysql"; 2. $database_default = "cacti"; 3. $database_hostname = "localhost"; 4. $database_username = "cactiuser"; 5. $database_password = "cacti"; 5.配制插件 1. #我的cacti安装在域下的cacti目录,这里也需修改 2. $config['url_path'] = '/cacti/'; 3. 4. #为后面安装npc增加变量 5. $plugins[] = 'npc'; 注:0.8.7g开始上面两变量改放在includes/config.php中,如果参照以前的教程会找不到了囧 Apache设置 Alias /cacti "/usr/local/wwwroot/cacti" <Directory "/usr/local/wwwroot/cacti"> Options FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory> #vi /usr/local/wwwroot/cacti/include/config.php #wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7d-PA-v2.4.zip |
第四部分 整合cacti和nagios
整合cacti和nagios是利用了cacti的一个插件nagios for cacti,它的原理是将nagios的数据通过ndo2db导入到mysql数据库(cacti的库中),然后cacti读取数据库信息将nagios的结果展示出来。
1.安装ndoutils
首先需要安装ndoutils以将nagios的数据能导入到mysql数据库中。 #wget http://nchc.dl.sourceforge.net/sourceforge/nagios/ndoutils-1.4b7.tar.gz #tar zxvf ndoutils-1.4b7.tar.gz #./configure --enable-mysql --disable-pgsql --with-mysql-lib=/usr/lib/mysql #make #cp config/ndomod.cfg /usr/local/nagios/etc 修改nagios主配置文件 command_check_interval=-1 event_broker_options=-1 broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg process_performance_data=1 添加的内容至此结束 #cd src #cp ndomod-3x.o nod2db-3x log2ndo file2sock /usr/local/nagios/bin #cp src/ndo2db-3x /usr/local/nagios/bin/ndo2db #cp config/ndo2db.cfg /usr/local/nagios/etc instance_name=default output_type=tcpsocket output=127.0.0.1 tcp_port=5668 output_buffer_items=5000 buffer_file=/usr/local/nagios/var/ndomod.tmp file_rotation_interval=14400 file_rotation_timeout=60 reconnect_interval=15 reconnect_warning_interval=15 data_processing_options=-1 config_output_options=2 [root@localhost downloads]# cat /usr/local/nagios/etc/ndo2db.cfg |grep -v '^#'|sed /^$/d ndo2db_user=nagios ndo2db_group=nagios socket_type=tcp socket_name=/usr/local/nagios/var/ndo.sock tcp_port=5668 db_servertype=mysql db_host=127.0.0.1 db_port=3306 db_name=cacti db_prefix=npc_ db_user=cacti db_pass=cacti2008 max_timedevents_age=1440 max_systemcommands_age=10080 max_servicechecks_age=10080 max_hostchecks_age=10080 max_eventhandlers_age=44640 debug_level=1 debug_verbosity=1 debug_file=/usr/local/nagios/var/ndo2db.debug max_debug_file_size=1000000 |
2.安装php-json
npc展示部分用到json,需要在php中安装php-json的支持,centos 5下的php 版本默认是5.1.6 不带json支持,无法简单地通过yum install php5-json方式来安装。
#cd ~/downloads #tar xvjf php-json-ext-1.2.0.tar.bz2 #cd
#phpize 编译前初始化php环境(注:如果要使用phpize首先安装php-devel) #./configure #make #make install #vi /etc/php.d/json.ini #/usr/sbin/apache2ctl graceful 重启apache 为了验证是否成功可使用phpinfo查看是否已支持json |
3.安装npc
至此完成nagios和cacti的整合完毕!
===============================
http://blog.chinaunix.net/uid-21089721-id-2945637.html
Cacti中文版安装配置
Cacti是一款优秀的开源监控软件,使用php实现,它的主要特点是使用snmp服务获取数据,然后用rrdtool存储和更新数据,当用户查看数据的时候,rrdtool生成图表呈现给用户。mysql数据库用于存储变量并进行调用。mysql数据库并不存储snmp捕获到的数据,snmp捕获到的数据,存在于rrdtool生成的rrd文件中,这些文件位于cacti目录下的rra目录中。
本文主要介绍cacti中文版的安装,配置,cacti插件的安装,配置。英文版的安装跟中文版大同小异,但是中文版会麻烦点,所以就以中文版为例。
系统:Centos5.6 x386
软件:cacti-0.8.7e
本文档提供pdf版本下载,祥见文章尾部。
一、 准备软件的安装
由于cacti使用php来实现,通过WEB来管理,使用snmp来捕获数据,使用rrdtool来生成图表,使用mysql来存储变量,因此需要先安装这些软件,直接使用yum进行安装即可,共需安装以下rpm包:
httpd/mysql-server/php/php-mysql/rrdtool/gd/net-snmp/php-snmp/net-snmp-utils/net-snmp-devel/mysql-devel/openssl-devel
各个rpm包的作用为:
httpd WEB服务器apache
mysql-server 数据库mysql
php cacti使用php来实现
php-mysql php支持mysql
rrdtool 用来生成cacti图像
gd rrdtool绘制图像需要的图形库
php-snmp php支持snmp
net-snmp-utils 一些snmp的扩展命令,如:snmpwalk、snmpget等,cacti需要
net-snmp-devel/mysql-devel/openssl-devel cactid/spine需要
安装rpm包:
#yum httpd mysql-server php php-mysql gd net-snmp php-snmp net-snmp-utils net-snmp-devel mysql-devel openssl-devel
由于centos的标准组件中是不带rrdtool的,因此我们需要添加一个dag的yum源,以安装rrdtool。
修改/etc/yum.repos.d/CentOS-Base.repo,
#vi /etc/yum.repos.d/CentOS-Base.repo
在其末尾追加
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
enabled=1
更新yum
#yum clean all
#yum list
现在就可以安装rrdtool
#yum install rrdtool
设置开机自启动
#chkconfig httpd on
#chkconfig mysqld on
#chkconfig snmpd on
二、 MySQL数据设置
由于cacti依靠mysql来存储必要的变量,我们有必要对MySQL做些设置。
启动并初始化mysql数据库
#service mysqld start
为root用户设置密码(以linuxpad为例),并更改登录权限,默认密码为空
#mysql –u root –p 回车后输入密码(空)
mysql>use mysql;
mysql>update user set password=password(‘linuxpad’) where user=’root’;
mysql>grant all privileges on *.* to root@localhost identified by ‘linuxpad’ with grant option;
mysql>flush privileges;
添加cacti库和cacti用户,并为其设置权限
mysql>create database cacti default character set utf8; //数据库字符集设置utf8,否则乱码
mysql>grant all privileges on cacti.* to cacti@localhost identified by ‘linuxpad’ with grant option;
mysql>flush privileges;
三、 安装Cacti
下载cacti-0.8.7e-cn-utf8.tar.gz,地址为http://blogimg.chinaunix.net/blog/upfile2/090815172648.gz(这个链接是tar.gz格式的,请下载后更改文件格式),假设下载目录为/opt/soft,下面相同
#cd /opt/soft
#tar zxvf 090815172648.tar.gz
#mv cacti-0.8.7e-cn-utf8 /var/www/cacti
修改配置文件
#vi /var/www/cacti/include/config.php
修改内容如下
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "linuxpad";
关于cacti添加用户,网上常见的做法是添加一个cacti的用户,并更改rra和log目录属主。经过本人测试这里并不需要添加cacti用户并更改rra和log的属主,直接使用root即可。原因是因为官方的安装文档上使用的是FreeBSD,在计划任务那步使用的是:
*/5 * * * * cacti php /var/www/cacti/poller.php &>/dev/null,使用用户cacti来执行任务。
但是centos并不是识别这个cacti参数,因此也就无需使用cacti来执行任务,我们直接使用root来执行任务就OK了,于是不用更改目录权限,crontab内容为
*/5 * * * * php /var/www/cacti/poller.php >/dev/null &2>1
还有另外一种的解决方案,就是添加一个cacti用户,更改rra和log目录属主为cacti,然后在cacti用户环境下设置crontab,内容为
*/5 * * * * php /var/www/cacti/poller.php >/dev/null &2>1
这样就能实现crontab计划是由cacti用户来执行的了。
创建并编辑apache的cacti配置文件
#vi /etc/httpd/conf.d/cacti.conf
内容如下:
Alias /cacti /var/www/cacti
<Directory /var/www/cacti>
DirectoryIndex index.php
AllowOverride all
order deny,allow
allow from all
php_flag magic_quotes_gpc on
php_flag track_vars on
</Directory>
导入数据库
#mysql –u root –p cacti < /var/www/cacti/cacti.sql
启动服务,然后访问http://ip/cacti开始安装cacti
#service mysqld start
#service httpd start
#service snmpd start
直接下一步,选择”全新安装”,来到下面的一个界面,如图1
请确认所有路径都已找到,并选择SNMP应用程序版本为5.x,RRDTool版本为1.3.x。
完成之后来到登录页面,默认用户名admin,密码admin,登录之后会提示你强制更改密码。
设置计划任务
#crontab –e
追加以下内容
*/5 * * * * php /var/www/cacti/poller.php >/dev/null &2>1
添加中文字体支持,否则Cacti图像内会没有任何内容。CentOS下直接yum安装中文支持
#yum install fonts-chinese
打开Cacti,控制面板->配置->设置->路径:
将RRDTool默认字体路径设为/usr/share/fonts/chinese/TrueType/ukai.ttf
配置无误,会显示文件已找到。
四、 配置本机snmp
编辑snmp配置文件/etc/snmp/snmp.conf
修改:
com2sec notConfigUser default public
改为:
com2sec notConfigUser 127.0.0.1 public
修改:
access notConfigGroup "" any noauth exact systemview none none
改为:
access notConfigGroup "" any noauth exact all none none
去掉这句的注释
#view all included .1 80
重启snmp服务并测试
#service snmpd restart
# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 2
IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 3
显示以上信息,则snmp配置成功,xxx.xxx.xxx.xxx会根据你本机的IP信息配置而不同。
图1
如果配置正确,隔几分钟,我们的cacti就会有数据了,如图2,你也可以手动执行以下命令手动生成rrd图像
#/usr/bin/php /var/www/cacti/poller.php &>/dev/null
图2
五、 安装Spine
由于默认cmd.php来轮询数据,速度会很慢,特别是在监控节点比较多的情况下,cmd.php就更显不足了,因此我们采用Spine来轮询数据。cacti-spine是一个由C语言开发的,用于替代cmd.php的快速获取速度的引擎。
下载地址:http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz
安装spine之前请确保它所依赖的包net-snmp-devel、mysql-devel、openssl-devel都已安装完毕。
以下是安装步骤
#cd /opt/soft
#wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz
#tar zxvf cacti-spine-0.8.7e.tar.gz
#cd cacti-spine-0.8.7e
#./configure
#make && make install
编辑spine配置文件
#vi /usr/local/spine/etc/spine.conf
修改内容如下:
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass linuxpad
DB_Port 3306
将spine启动并设置开机自启动
#/usr/local/spine/bin/spine
#echo /usr/local/spine/bin/spine >>/etc/rc.d/rc.local
Cacti设置:
Cacti控制面板->配置->设置
路径:将Spine轮询器路径设置为/usr/local/spine/bin/spine
轮询器:轮询器类型选择Spine
到此为止,我们已经成功安装Spine轮询器并使用。
六、 Cacti插件安装之Cacti-plugin
对于中文版,我们需要下载中文版的更新文件:http://blogimg.chinaunix.net/blog/upfile2/090818213852.gz,下载后需更名为cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz,更新前请备份cacti目录及mysql库,以便更新失败后的还原。
Cacti-Plugin安装过程如下:
#cd /opt/soft
#wget http://blogimg.chinaunix.net/blog/upfile2/090818213852.gz
#mv 090818213852.gz cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz
# gunzip cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz
# mv cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff /var/www/cacti/
# patch -p1 -N <cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff
#mysql –u cacti –p cacti < pa.sql
如果你的cacti访问时候是使用http://ip/cacti,你需要修改/var/www/cacti/include/global.php
修改如下:
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "linuxpad";
$database_port = "3306";
$config['url_path'] = '/cacti/';
配置Cacti
Cacti控制面板->工具->用户管理->admin->区域权限,选择”插件管理”
然后我们就能够在控制面板的”配置”下面看到多出一个”插件管理”的选项
七、 Cacti插件安装之Monitor
Cacti下面的插件非常多,我们拿Monitor为例,来讲述Cacti插件的安装。
Monitor是Cacti下面一个监控节点存活性的插件,可以监控各种网络设备,主机的存活性。
Monitor下载地址:http://cactiusers.org/downloads/monitor.tar.gz
Monitor安装过程如下(一步复制文件,一步导入sql文件):
#cd /opt/soft
#wget http://cactiusers.org/downloads/monitor.tar.gz
#tar zxvf monitor.tar.gz
# mv monitor /var/www/cacti/plugins #复制插件到plugins
# cd /var/www/cacti/plugins/monitor/
# mysql -u cacti -p cacti < monitor.sql #导入monitor.sql数据
配置global.php
#vi /var/www/cacti/include/global.php
在$plugins = array();后添加:
$plugins[] = 'monitor';
刷新Cacti控制面板,我们会在设置下面找到一个新的选项卡”Misc”,同时左上方会多出一个新的选项卡”Monitor”,如图3。Monitor监控节点图像如图4。
图3
图4
其他插件的安装基本类似,可参考Monitor来安装。
我会在稍后的几篇文章内讲述Cacti的高级应用及Cacti与Nagios的整合。
************************************************************************************************
http://www.cnblogs.com/511mr/archive/2011/12/16/2289981.html
实战CentOS 6.0+Nagios中文版+PNP+Nagios Web管理工具nagiosQL中文版
Nagios网上的教程百度一下一大把,发现有些教程讲法有点出入,估计有些都是拷贝乱贴乱飞,按有些说法去做,根本就做不下去,今天我亲自实践,现场抓图让你看得清楚看得明白,以及中间遇到什么问题,怎么解决,都会分享给大家,抓图再写出来有点辛苦,关键能学到东西一切都是值得滴,Follow me~!
下载centOS 6.0然后安装好系统,最好用vmware来做最好.
CentOS 6.0最新版国内下载地址:http://mirrors.163.com/centos/6.0/isos/i386/
自行装好系统以后现在开始装备安装前的环境准备
我把命令贴出来,为了方便大家操作你只要跟着我把命令拷贝和粘贴即可,省去敲打命令的麻烦也避免失误出错(小技巧提醒:装好centOS以后进入x-windows里面装个vmware tools就可以实现物理机和虚拟机之间的拷贝和粘贴,方法很简单这里就不说了)
yum -y install httpd gettext mysql mysql-server mysql-devel php php-mysql php-pear
yum install php-mysql mysql perl mysql-server perl-DBI perl-DBD-MySQL httpd gcc glibc glibc-common gd gd-devel php
在线下载nagios程序和插件
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz (现在最新版本的插件)
wget http://sourceforge.net/projects/nagios-cn/files/sourcecode/zh_CN%203.2.3/nagios-cn-3.2.3.tar.bz2/download(最新版为3.3.1,装上去觉得界面变得不好看,顺便就找了个中文版的)
[root@centos nagios]# ls
nagios-cn-3.2.3.tar.bz2 nagios-plugins-1.4.15.tar.gz
用户和组的准备
[root@centos nagios]# useradd nagios
[root@centos nagios]# passwd nagios
changing password for user nagios.
New password:
BAD PASSWORD:it is based on a dictionary word
BAD PASSWORD:is too simple
Retype new password:
passwd:all authentication tokens updated successfully.
开始安装主程序
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagcmd
完成以后发现执行make all命令的时候出现以下错误
貌似CentOS下默认系统没有安装编译器,安装一下:
yum -y install gcc automake autoconf libtool make
继续做make all操作,发现最后报错了,
先执行make clean操作,然后再执行 ./configure && make all 操作通过(问题分享)接着再执行以下命令即可,没有出现任何状况.
接下来安装插件
./configure --with-nagios-user=nagios --with-nagios-group=nagios
添加访问页面用户nagiosadmin及密码,这里要记住此密码不要忘记了.
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
接下来启动相关服务
检查配置文件是否正确
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
[经验分享:由于这一串检查的命令很长,应用率也比较高,这里我们可以自定义一个命令来代替这一长串的命令
编辑.bashrc这个文件
在里面用alias 来自定义一个命令来代替,这里我用check
用source命令在当前bash环境下读取并执行bashrc中的命令
这样我们自定义的命令就生效了,以后只要输入check就可以检查nagios配置文件是否存在错误了,简单方便.]
发现没有警告和错误就表示通过了
现在就可以用http://serverip/nagios 方式访问nagios web访问控制台了.
开了防火墙记得要开放80端口,要不然连接不到,或者直接关闭防火墙用命令service iptables stop关闭即可.
问题分享:进入页面的时候点主机或其它选项的时候报此错误,后面百度一下原来是开启了selinux强制访问控制安全模块所致
注意:如果你开启了selinux 需要配置如下二步:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
这样正宗的中文版出来了,总算迈出了成功的一小步,耐心坚持让我们继续吧~~!
[经验分享:我这里用虚拟机做的,记得系统和网络相关参数配置好以后做一个系统的快照,配到这里nagios安装成功以后我们再做一个快照,以免后面配乱出问题的时候我们可以返回到这里重新再配置,方便快捷,记住做快照的时候先把虚拟机关闭以后再做,要不然快照出来的文件大得吓人,而关闭以后做快照文件才几百KB.]
ok下面我们接着来
[nrpe_plugins指标采集程序主要是用来分析nrpe客户端的plugin脚本采集性能指标数据。目前实现的有cpu、memory、disk、buffer、singleprocess、oracle、sybase等方面的性能指标的分析,这个插件需要分别安装在主控端和被控端上,这个插件需要openssl的支持,没有就直接在线安装一下(yum install openssl-devel)所以还需在nagios主机和被控端安装,感觉挺麻烦,没办法它需要咱们就跟着做哈.]
先把nrpe下载下来先.
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
解压文件
编译安装
完成以后没有出错就可以看到以下生成的文件了
二:配置PNP
[PNP是一个基于php和perl,用rrdtool将nagios采集的数据绘制图表的工具,所以安装pnp之前必须先安装php perl and rrdtool这里用yum直接来安装rrdtool,单独下载安装有很多依存关系,挺麻烦.]
我这里找到最新的版本是0.6.15
wget http://sourceforge.net/projects/pnp4nagios/files/PNP-0.6/pnp4nagios-0.6.15.tar.gz/download
编译的时候报错了.
yum install perl-Time-HiRes
继续编译发现有个perl modules没有发现,好像提示用来加速什么的,暂时不管它了
根据提示需要继续
然后把相关后缀带sample文件变更成无sample后缀
配置Nagios来启用PNP
enable_environment_macros=1默认是开启了的
pnp4nagios有很多种工作模式,这里我们选用同步模式,想选其它模式可以看说明都有详细配置教程(不同模式配置不同)
这里我们按说明的设定方法来做
[这里先把pnp4nagios执行数据收集的文件拷贝到nagios的libexec下,方便统一命令的执行路径.]
cp /usr/local/pnp4nagios/libexec/process_perfdata.pl /usr/local/nagios/libexec/
然后在commands.cfg里面加入如下(这里是同步模式设定方法)
#process-host-perfdata' command definition
define command{
command_name process-host-perfdata
command_line $USER1$/process_perfdata.pl -d HOSTPERFDATA
}
#process-service-perfdata' command definition
define command{
command_name process-service-perfdata
command_line $USER1$/process_perfdata.pl
}
然后添加小太阳模版,镶嵌在nagios页面上
[这里有两种查看图的方法,第一种方法是你当太阳的图标的时候会在新窗口中打开图形查看,第二种方法是你只需要把鼠标移动到太阳图标上面就会自动弹出图形出来,以下两种方法你可以根据自己喜好选其中一种即可]
第一种方法在templates.cfg里面加入如下
define host {
name host-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_
register 0
}
define service {
name srv-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}
第二种方法按照说明加入如下
拷贝status-header.ssi到/usr/local/nagios/share/ssi/目录下面来(这一步很重要,要不然移动到太阳标记上出不来图)
define host {
name host-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
register 0
}
define service {
name srv-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}
第二种方法最终效果图
为目标主机图标旁边添加一个小太阳标记
为相关服务添加一个小太阳标记
先做一下pnp4nagios环境测试,发现php-gd模块无效,用命令yum install php-gd安装成功以后还是不行,后来经老男孩指点用yum install php* -y安装然后重启系统成功通过,
按要求重命名install.php
做好相关配置以后请用命令重启一下nagios的服务
ok,到此总算配置好了PNP,配置了这么多有点累了,但我们还要继续,配置本章最后一个Nagios WEB管理工具叫NagiosQL(注:还有同样一个Nagios WEB管理工具叫Nconf)
NagiosQL是一个WEB管理工具,只要把其放到下Apache即可。因为这里它要和Nagios整合到一起,为了方便管理,把其放在Nagios目录下
建立nagiosQL导出nagios配置文件的目录,并修改权限
建目录和改权限
mkdir -p /etc/nagiosql/{hosts,services,backup/{,hosts,services},import}
chown -R apache:nagios /etc/nagiosql/
chmod -R 755 /etc/nagiosql
chmod 777 /usr/local/nagios/nagiosql/config
Nagios相关文件权限的设定
chown nagios:apache /usr/local/nagios/etc
chown nagios:apache /usr/local/nagios/etc/{nagios.cfg,cgi.cfg}
chown nagios:apache /usr/local/nagios/etc/*
chmod 664 /usr/local/nagios/etc/{nagios.cfg,cgi.cfg}
chmod 775 /usr/local/nagios/etc
设定nagios二进制文件的权限,以便其能够通过Web程序执行
chown nagios:apache /usr/local/nagios/bin/nagios
chmod 750 /usr/local/nagios/bin/nagios
chown -R apache.nagios /usr/local/nagios/var/spool/
chown nagios:apache /usr/local/nagios/var/rw/nagios.cmd
chmod 660 /usr/local/nagios/var/rw/nagios.cmd
为apache添加nagiosQL虚拟目录
Alias /nagiosQL "/usr/local/nagios/nagiosql"
<Directory "/usr/local/nagios/nagiosql">
# SSLRequireSSL
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
重新加载httpd服务和启动mysqld服务
建立nagiosql安装文件
touch /usr/local/nagios/nagiosql/install/ENABLE_INSTALLER
访问http://ip/nagiosQL进行安装
问题分享:我在访问的时候提示没有权限访问,搞了半天原来是SElinux惹的祸,修改SELinux的实时运行模式,setenforce 0 (设置SELinux 成为permissive模式)这个只是临时解决方法,优点是不需重启系统生效,但如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0
选取中文然后点开始安装按钮
测试所需环境通过,直接按下一步即可
删除安装目录,这里使用改权限:chmod 000 /usr/local/nagios/nagiosql/install
到这里安装步骤总算结束了,下面我们还需要进行相关配置工作.
管理-域-localhost---点“修改”
按如图所示更改相应的路径即可
工具-导入数据 右边会列出一些配置文件,选择导入即可。
导入只是把配置文件内容导入到Mysql数据库,而使用其配置文件时,是一个个cfg文件,所以下面要进行写入过程
工具-nagios控制-写入检测数据-写入其他数据
检查配置文件成功
写入之后就可以看到相应的cfg文件了,查看写入是否成功,由下面的输出可以看出写入是成功滴.
修改nagios的配置文件,将原有以cfg_file开头项全部注释掉,加入上面新写入的配置文件
注释掉
加入新的配置文件路径
cfg_dir=/etc/nagiosql/hosts/
cfg_dir=/etc/nagiosql/services/
cfg_file=/etc/nagiosql/commands.cfg
cfg_file=/etc/nagiosql/contactgroups.cfg
cfg_file=/etc/nagiosql/contacts.cfg
cfg_file=/etc/nagiosql/contacttemplates.cfg
cfg_file=/etc/nagiosql/hostdependencies.cfg
cfg_file=/etc/nagiosql/hostescalations.cfg
cfg_file=/etc/nagiosql/hostextinfo.cfg
cfg_file=/etc/nagiosql/hostgroups.cfg
cfg_file=/etc/nagiosql/hosttemplates.cfg
cfg_file=/etc/nagiosql/servicedependencies.cfg
cfg_file=/etc/nagiosql/serviceescalations.cfg
cfg_file=/etc/nagiosql/serviceextinfo.cfg
cfg_file=/etc/nagiosql/servicegroups.cfg
cfg_file=/etc/nagiosql/servicetemplates.cfg
cfg_file=/etc/nagiosql/timeperiods.cfg
检查nagios的配置文件是否有问题,然后生重启nagios服务,至此整个搭建过程终于完成了,下一节将讲解重头戏,怎么用nagiosQL添加需要监控的主机以及启用nagios报警机制,待续~~!
###############################
http://blog.onovps.com/tag/centos%E5%AE%89%E8%A3%85nagios/
安装LAMP及编译环境:
1 2 3 4 5 6 7 |
yum -y install httpd httpd-devel mysql mysql-server mysql-devel php php-devel php-common php-gd \ php-mysql php-mbstring php-mcrypt php-xml php-snmp gcc make automake autoconf /etc/init.d/httpd start /etc/init.d/mysqld start /usr/bin/mysqladmin -u root password "password" chkconfig httpd on chkconfig mysqld on |
安装Nagios:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
useradd nagios groupadd nagcmd usermod -G nagcmd nagios usermod -G nagcmd apache cd /usr/local/src/ #安装主程序 wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.1.tar.gz tar zxvf nagios-3.4.1.tar.gz cd nagios ./configure --with-command-group=nagcmd --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios make all make install #安装主程序 make install-init #安装init管理脚本 make install-config #安装示例配置文件 make install-commandmode #配置目录权限 make install-webconf #安装Apache配置文件 #make install-exfoliation #安装简洁白色主题,此为默认 make install-classicui 安装经典黑色主题 cd ../ #安装插件 wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz tar zxvf nagios-plugins-1.4.15.tar.gz cd nagios-plugins ./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios make make install htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin #生成nagiosadmin验证密码,用于web界面验证。 /etc/init.d/httpd restart /etc/init.d/nagios start chkconfig nagios on setsebool -P httpd_disable_trans 1 #关闭selinux对httpd的防护,不然会出现权限问题 |
安装完成,访问http://www.onovps.com/nagios即可。
===============================
http://koda.iteye.com/blog/1064921
Nagios: http://www.nagios.org/download
Nrpe: http://nagios.sourceforge.net/docs/3_0/addons.html#nrpe
Nagios分为监控端和被监控端,一般来说位于不同的主机上。
一. 基础组件安装
在被监控端安装:
- Nagios Core
- Nagios Plugins
- Nrpe
将nagios和nrpe以daemon方式启动
在监控端安装
- Nagios Core
- Nagios Plugins
- Nrpe
运行web界面。
安装配置Core,Plugin方法见:
Fedora Quickstart: http://nagios.sourceforge.net/docs/3_0/quickstart-fedora.html
二. 安装配置nrpe如下
转: http://blogold.chinaunix.net/u/28387/showart_371655.html
NRPE是nagios的一个扩展,它被用于被监控的服务器上,向nagios监控平台提供该服务器的一些本地的情况。例如,cpu负载、内存使用、硬盘使用等等。NRPE可以称为nagios的for linux 客户端。
为什么要使用这个客户端呢?在nagios的插件中,有一个名为“check_ssh”的插件,它也可以实现对于远程服务器中local信息的监控。但是,相对NRPE,“check_ssh”占用的系统资源就略多了一点。监控少量的服务时可能不会察觉,但是如果监控对象比较多,那么差距就非常明显了。但是还有一点要说明,虽然NRPE也是使用SSL安全通道,但是“check_ssh”的安全性要高于NRPE,安全性总是和易用性成反比的。 -_-||
首先,需要在nagios监控平台服务器上安装NRPE,安装很简单,到官方网站下载最新的nrpe包,本例中使用的是nrpe-2.8.1.tar.gz。
I. nrpe客户端安装配置
- tar xzf nrpe-2.12.tar.gz
- cd nrpe-2.12
- ./configure
- make all
- make install-plugin
如果nagios安装在指定目录,那么nrpe在configure时说明prefix
如果安装成功,就可以在/.../nagios/libexec 目录中找到 "check_nrpe"这个插件(客户服务端都要安装)。
1. 在$nagios_install_dir/etc/nagios.cfg中添加一行:
cfg_file=/usr/local/nagios/etc/objects/my_server.cfg
2. 定义一个可以在监控平台使用的命令
在$nagios_install_dir/etc/objects/commands.cfg中,其内容如下:
- define command{
- command_name check_nrpe
- command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
3.例:监控cpu负载
在$nagios_install_dir/etc/objects/创建my_server.cfg,内容如下:
- define host{
- use linux-server ; Name of host template to use
- ; This host definition will inherit all variables that are defined
- ; in (or inherited by) the linux-server host template definition.
- host_name monitor
- alias monitor
- address 192.168.2.100
- }
- define service{
- use local-service ; Name of service template to use
- host_name monitor ;192.168.2.200
- service_description XCPU LOAD
- check_command check_nrpe!check_load
- notifications_enabled 0
- }
II. nrpe服务端安装配置
1. 安装NRPE:
- tar xzf nrpe-2.12.tar.gz
- cd nrpe-2.8.1
- ./configure
- make all
- make install-plugin
- make install-daemon
- make install-daemon-config
安装好了,可以到/usr/local/nagios/下面检查一下,应该生成了4个目录:bin、etc、libexec、share。
2. 配置NRPE:
我们要配置一下,目的是让NRPE可以以守护进程的形式监听5666端口,为特定地址的nagios平台提供服务。在官方的NRPE文档中,详细说明了如何将NRPE嵌入xinetd服务中,我在这里就不啰嗦了。有些情况,我们的服务器上没有xinetd或者inetd这样的服务,那如何办呢?我在这里介绍一种更加通用的方法。
首先,需要修改/usr/local/nagios/etc/nrpe.cfg。
找到“allowed_hosts=127.0.0.1”将其改为:
- allowed_hosts=127.0.0.1,$Nagios监控平台的地址或域名
这个配置的作用是声明合法的nrpe服务对象,没有在这里声明的地址是无法从本机的NRPE获得服务的。“$Nagios监控平台的地址或域名”可以是ip地址,也可以是域名。在我环境中,nagios监控平台没有一个固定的公网ip,所以其他在公网上的服务器如果安装了NRPE的话,就只能通过动态域名来辨别监控平台的地址。
3. 启动NRPE守护进程
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
此命令生成的日志会在系统的日志(/var/log/message)中。如果没有出错,就基本搞定了。[b]3. 检查NRPE是否启动/b]
在本机上执行
- /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
或者在nagios监控平台服务器上:
- /usr/local/nagios/libexec/check_nrpe -H $目标主机地址
正常的返回值为被监控服务器上安装的NRPE的版本信息:
NRPE v2.12
如果看到这些,恭喜你,你的NRPE安装成功了。
后 记
那么,通过NRPE,可以监控到哪些信息呢? 只要在被监控服务器上有的插件(/usr/local/nagios/libexec中的所有插件),都可以使用。也就是说,你想监控什么,只要有对应的插件,就可以实现。
例如,我希望监控一台远程服务器上的cpu负载。在远程主机的插件中有“check_load”,那么,在nrpe.conf中定义一个cpu负载的监控:
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
这个配置就声明了一个命令:“check_load”,也就是上述中红色字check_load的真身所在了。
===============================
http://hoodlum.blog.51cto.com/4075497/743722
本文出自 “搁浅” 博客,请务必保留此出处http://hoodlum.blog.51cto.com/4075497/743722
###############################
http://1413570.blog.51cto.com/1403570/891483
http://1413570.blog.51cto.com/1403570/891504






本文出自 “技术学习与交流” 博客,请务必保留此出处http://1413570.blog.51cto.com/1403570/891483





本文出自 “技术学习与交流” 博客,请务必保留此出处http://1413570.blog.51cto.com/1403570/891504
===============================
http://blog.csdn.net/caleng/article/details/5676706
在上文中讲到有关cacti的安装与配置,它在网络流量性能监控以及图表绘制等方面非常的强大。但是服务器和服务本身状态的监控以及错误报警机制,则需要本文介绍的Nagios神器来实现。Nagios的功能是监控服务和主机,根据配置在服务器异常的时候提供报警功能,并提供友好的WEB界面查看当前的网络状态、通知和故障历史、日志文件……但是他自身并不包括这部分功能的代码,所有的监控、检测功能都是有插件来完成的。
一、安装环境:CentOS5.4 + Apache2 + PHP5.2,请确保已安装PHP+Apache,可参看本博有关Apache与PHP的安装教程;
二、创建Nagios用户及用户组,命令如下:
#useradd -m nagios
--创建nagcmd组用来运行通过web接口传输过来的命令,同时添加nagios和apache
#groupadd nagcmd
#usermod -a -G nagcmd nagios
#usermod -a -G nagcmd apache
三、下载安装Nagios及Nagios插件,过程如下:
——下载Nagios
#wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
——下载Nagios插件
#wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz
——解压Nagios
#tar -zvxf nagios-3.2.1.tar.gz
#cd nagios-3.2.1
——编译
#./configure --with-command-group=nagcmd
#make all
——安装Nagios,初始化脚本及配置文件,Nagios将会被安装至/usr/local/nagios
#make install
#make install-init
#make install-config
#make install-commandmode
——安装WEB界面,界面将会安装到 /usr/local/nagios/share ( http 配置文件默认添加到 /etc/httpd/conf.d/nagios.conf,如果没有则执行:#cp sample-config/httpd.conf /etc/apache2/conf.d/nagios.conf )
#make install-webconf
——创建HTTP认证用户登录Nagios,用户名nagiosadmin,密码123456
#htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
——重启apache
#service httpd restart
——安装Nagios插件
#tar -zvxf nagios-plugins-1.4.14.tar.gz
#cd nagios-plugins-1.4.14
#./configure --with-nagios-user=nagios --with-nagios-group=nagios
#make && make install
——配置Nagios管理员接受告警信息的邮箱,写入管理员邮箱
#vim /usr/local/nagios/etc/objects/contacts.cfg
email admin@admin.com ;
——校验Nagios配置文件,验证配置是否有误
#/usr/local/nagios/bin/nagios -v
——启动Nagios,配置在系统启动时运行Nagios
#chkconfig --add nagios
#chkconfig nagios on
#chkconfig httpd on
——运行Nagios
#service nagios start
四、登陆到Web界面,输入用户名密码:nagiosadmin 123456,http://localhost/nagios/
五、错误处理
1、本机监控HTTP SSH的Notifications显示警告错误,解决方法:
#vim /usr/local/nagios/etc/objects/localhost.cfg
define service{
use local-service ; Name of service template to use
host_name localhost
service_description SSH
check_command check_ssh
notifications_enabled 1 #改为1,即可
}
# Define a service to check HTTP on the local machine.
# Disable notifications for this service by default, as not all users may have HTTP enabled.
define service{
use local-service ; Name of service template to use
host_name localhost
service_description HTTP
check_command check_http
notifications_enabled 1#改为1,即可
}
2、Nagios显示类似错误:HTTP WARNING: HTTP/1.1 403 Forbidden - 5240 bytes in 0.002 second response time。
该错误表明在apache web根目录没有index.html文件。解决方法:在web根目录(如:/var/www/html/目录)建立index.html文件,重启apache和nagios即可。
参考文档:
http://netsecurity.51cto.com/art/200706/48728.htm
http://linux.chinaunix.net/bbs/viewthread.php?tid=1051835
http://www.linuxschool.net/install_nagios_on_centos.html
http://yahoon.blog.51cto.com/13184/41300
http://bbs.chinaunix.net/viewthread.php?tid=1326927
http://kerry.blog.51cto.com/172631/107831
http://bbs.chinaunix.net/thread-1356538-1-1.html
如需转载,请注明:本文来自感染源博客[ http://blog.csdn.net/caleng ]
###############################
http://limylau.blog.51cto.com/612832/124865
GCC compiler
GD development libraries
yum -y install gcc
yum -y install glibc glibc-common
yum -y install gd gd-devel
usermod -a -G nagcmd nagios
usermod -a -G nagcmd apache
cd nagios-3.0.6
make install-init
make install-config
make install-commandmode
cd nagios-plugins-1.4.11
make
make install
chkconfig nagios on
本文出自 “在水一方” 博客,谢绝转载!
===============================
===============================
###############################
===============================
###############################
===============================
===============================
###############################
===============================
http://salogs.com/2011/10/centos-nagios-alarms-fly-under-the-letter-four-step-deployment/
今天 帮群里一兄弟配了下nagios上的飞信,这个东西 我个人感觉还是很实用的,不过好久没配了,今天配置了一遍,顺便 就把过程记录下来了,供大家学习!!!
一、安装飞信
wget http://ebook.elain.org/tools/fetion20101205.tar.gz
安装步骤略,软件包中有
添加要接收报警短信的手机号为飞信好友
注:第一次要输入验证码,生成验证码后,另开一终端把图片下载下来,打开查看,注意区分大小写!!!
二、vi commands.cfg 添加
command_name notify-host-by-fetion
command_line /usr/local/fetion/fetion --mobile=137xxxxxxxx --pwd=1111111 --to=138xxxxxxxx --msg-type=1 --msg-utf8="** $NOTIFICATIONTYPE$ Host Alert:$HOSTNAME$ is $HOSTSTATE$ **"
}
define command{
command_name notify-service-by-fetion
command_line /usr/local/fetion/fetion --mobile=137xxxxxxxx --pwd=1111111 --to=138xxxxxxxx --msg-type=1 --msg-utf8="**$NOTIFICATIONTYPE$\n\nService:$SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState:$SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$ **"
}
三、vi templates.cfg
…………
service_notification_commands notify-service-by-fetion
host_notification_commands notify-host-by-fetion
…………
}
四、 vi contacts.cfg
contact_name elain
alias sa
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-service-by-email,service-notify-by-fetion
host_notification_commands notify-host-by-email,host-notify-by-fetion
email elain2012@hotmail.com
pager 138xxxxxxxx
}
/etc/nit.d/nagios reload #重新加载配置文件
停服务做测试!!!