Cacti的实例应用
1)网络设置 2)主机系统 (1)网络接口流量(进与出的带宽) (2)监控CPU的负载、内存等等 (3)监控磁盘的空间、进程数等等 …………………………………..等等 3)cacti常见的监测对象 |
1) 监控网络服务(SMTP 、POP3 、HTTP 、NNTP 、PING 等) 2 )监控主机资源(处理器负荷、磁盘利用率等) 3 )简单地插件设计使得用户可以方便地扩展自己服务的检测方法 4 )并行服务检查机制 5 )具备定义网络分层结构的能力,用"parent" 主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态 6 )当服务或主机问题产生与解决时将告警发送给联系人(通过EMail 、短信、用户定义方式) 可以通过飞信,等方式实现时,既可传递给管理员,可高效的保证服务器的维护。
7 )具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位 8 )自动的日志回滚 9 )可以支持并实现对主机的冗余监控 10 )可选的WEB 界面用于查看当前的网络状态、通知和故障历史、日志文件等
|
NTOP提供以下一些功能:
① 自动从网络中识别有用的信息;
② 将截获的数据包转换成易于识别的格式;
③ 对网络环境中的通信失败进行分析;
④ 探测网络环境下的通信瓶颈;
⑤ 记录网络通信时间和过程;
⑥ 自动识别客户端正在使用的操作系统;
⑦ 可以在命令行和Web两种方式下运行。
|
$link
=
mysql_connect
(
"localhost"
,
"root"
,
"123456"
)
;
if
(
!
$link
)
echo
"FAILD!"
;
else
echo
"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
|
(4)配置SNMP
在net-snmp的主配置文件/etc/snmp/snmpd.conf中,默认的community为public,建议将public修改为您需的密码项,笔者在此就不做修改了,使用默认密码public
接着,启动snmp进程
service snmpd restart #如果修改过snmpd.conf 则需要重启服务
|
Nagios通常由一个主程序(Nagios) 、一个插件程序(Nagios-plugins) 和四个可选的ADDON(NRPE、NSCA、 NSClient++和NDOUtils) 组成。Nagios的监控工作都是通过插件实现的,因此,Nagios和Nagios-plugins是服务器端工作所必须的组件
下面在服务端安装Nagios和Nagios-plugins.
先下载源码包,目前官方的最新版本如下图 插件版本 下载之.笔者放在了 /root/nagios目录下 nagios 需要一些基础支持套件才能运行,如apache,gcc,glibc,gd库等。 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 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 vim /etc/httpd/conf/httpd.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目录下了,并赋予执行权限。
下面编译安装NDOUtils,NDOUtils则用来将Nagios的配置信息和各event产生的数据存入数据库,以实现这些数据的快速检索和处理。
一、解压、编译、安装、
tar zxf ndoutils-1.4b9.tar.gz
cd ndoutils-1.4b9
./configure –enable-mysql –with-mysql-lib=/usr/lib/mysql –with-mysql-inc=/usr/include/mysql –disable-pgsql
make
cp -v src/{ndomod-3x.o,ndo2db-3x,file2sock,log2ndo} /usr/local/nagios/bin
##以上复制的文件中前两项是版本相关的,即如果您的nagios主版本号是2系列,则需要拷贝名为ndomod-2x.o和ndo2db-2x的两个文件。后两项是通用文件,无论哪个版本都需要复制。
二、为NDOUtils创建数据库
mysql -uroot -p
mysql> create database ndodb;
mysql> GRANT ALL PRIVILEGES ON ndodb.* TO ndouser@localhost IDENTIFIED BY ’123456′;
mysql> flush privileges;
下面两条命令用来生成ndoutils所需要的数据库表等,这些表默认以“nagios_”为前缀;install脚本命令必须在db子目录内执行:
cd db
./installdb -u ndouser -p 123456 -h localhost -d ndodb
其中各选项的意义如下:
-u用来指定导入时所用的mysql用户帐号
-p表示前面mysql用户的密码
-h表示mysql服务器地址,如果是localhost,则可以省略
-d表示目标数据库
说明:如果与cacti整合的话,npc插件会在cacti的数据库自动生成ndoutils所需要表,这些表均以“npc_”为前缀。后面讲到整合的文章中会继续对些做出说明。
三、复制、编辑配置文件
cd ..
cp -v 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/*
注:以上config目录中的ndo2db.cfg和ndomod.cfg在ndoutils-1.4b9中是以ndo2db.cfg-sample和 ndomod.cfg-sample命名的,如果您使用的是这个版本的ndoutils,请在复制时做出如上相应的修改;
vim /usr/local/nagios/etc/nagios.cfg
在文件中添加:
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
此外,请确保您的/usr/local/nagios/etc/nagios.cfg中有如下行出现,否则,请自行添加:
event_broker_options=-1 //为Nagios开启event broker
四、编辑ndo2db守护进程和ndomod的配置文件
vim /usr/local/nagios/etc/ndo2db.cfg
socket_type=tcp
db_servertype=mysql
db_host=localhost
db_port=3306
db_name=ndodb
db_prefix=nagios_
db_user=ndouser
db_pass=123456
说明:
i) 以上"db_"开头的选项用来指定连接数据库的属性;
ii)其默认用来接收数据的方式为Unix域套接字,这里修改成了TCP套接字;同时,ndomod.cfg配置文件中指定的输出方式也应该做相应的修改;
接下来我们去编辑ndomod的配置文件,为其指定数据的输出方式和输出目标主机:
vim /usr/local/nagios/etc/ndomod.cfg
output_type=tcpsocket
output=127.0.0.1
五、启动ndo2db守护进程
/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
建议此时查看系统日志(/var/log/messages)中是否有错误出现。
如果此时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库文件位置的选项;
|
好了 nagios已经成功安装,下面编译、安装ntop
图片右边显示的是目前官方最新的ntop版本 为4.0.1下载之 1、下载安装所需要的环境: make 3、配置并启动ntop 用web页面访问http://yourIP:3000 如果出现以下换面 则表示运行正常
|
★★下面是对这三者的整合.把nagios和ntop 整合到cacti中
先让cacti支持插件功能
笔者在上文所安装的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 此处修改原作者一个错误:这个补丁应在cacti目录下打才管用,所以应该先切换目录: cd /var/www/html/cacti/ 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加进去就可以了 |
先整合ntop.
设置完成后如图所示:
发现上面是不是多了一个标签Ntop,有些版本web浏览器不会显示里面内容,笔者建议用firefox,效果图如下。
下面是对nagios与cacti的整合
安装 Nagios Plugin for Cacti(NPC)插件 ( http://trac2.assembla.com/npc ) 先下载npc源码包 ,官网不知为何不让下载了,直接google搜索npc-2.0.4.tar.gz,有个论坛有下载的。 tar zxvf npc-2.0.4.tar.gz mv npc /var/www/html/cacti/plugins/ vi /var/www/html/cacti/include/config.php ## 在该文件中的"$plugins = array()"后增加如下一行内容 tar zxvf json-1.2.1.tgz && cd json-1.2.1 #npc需要json来支持某些功能 /usr/bin/phpize 如果此处没有phpize命令,则用yum安装php-devel即可 ./configure make make install 之后用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中设置如图所示 这里Nagios Command File Path 一空应该填:/usr/local/nagios/var/rw/nagios.cmd npc的安装:先将相应插件文件放到plugin,然后需要: vi /var/www/html/cacti/include/config.php ## 在该文件中的"$plugins = array()"后增加如下一行内容 |
转载请注明出处: http://freeze.blog.51cto.com/