Chinaunix首页 | 论坛 | 博客
  • 博客访问: 909842
  • 博文数量: 632
  • 博客积分: 2778
  • 博客等级: 大尉
  • 技术积分: 3387
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-31 09:09
个人简介

123

文章分类

全部博文(632)

文章存档

2014年(36)

2013年(33)

2012年(563)

分类: 系统运维

2014-04-14 11:33:15

原文地址:cacti监控服务器配置 作者:ZIJIAN1012

目录


1.Cacti概述 2
2.Cacti工作流程 3
3.Cacti的安装和配置详解 3
3.1网络架构 3
3.2安装LAMP 3
3.3安装net-snmp 4
3.4安装RRDTool 4
3.5安装与配置Cacti 5
3.6测试 5
4.Cacti监控主机 7
4.1Cacti监控本机 7
4.2 Cacti监控远程主机 7
4.2.1监控远程主机拓扑图 7
4.2.2开启远程主机的snmp服务 7
4.2.3监控远程主机 8
4.3 Linux主机模板 9
4.3.1查看默认主机模板 9
4.3.2增加Linux主机模板 10
4.3.3监控Linux主机具体过程 11
4.4 Windows主机模板 12
4.4.1增加Windows主机监控模板过程 12
4.4.2开启Windows的snmp服务 13
4.4.3增加Windows测试主机 13
4.4.4增加Windows主机到图形树 15
4.4.5最终效果图 15
5.监控服务 15
5.1监控mysql mysql复制 15
5.1.1主机配置 15
5.1.2实现思路 15
5.1.3具体步骤 16
5.2监控apache nginx 17
5.2.1准备工作 17
5.3.2监控apache 18
5.2.3监控nginx 19
6.cacti高级应用 22
6.1cacti高级应用之多CPU模板 22
6.1.1主机配置 22
6.1.2实现说明 22
6.1.3具体配置 22
6.2cacti高级应用之自定义脚本 24
6.2.1准备工作 24
6.2.2创建数据输入方式 24
6.2.3创建数据源 29
6.2.4创建图像 29
6.2.5将自定义好的图形,加入到Graphs面板 30
7.Cacti插件应用 30
7.1Cacti插件下载 30
7.2Cacti插件应用之settings插件 31
7.2.1setting插件的作用 31
7.2.2安装settings插件 31
7.3Cacti插件应用之thold插件 36
7.3.1thold插件的作用 36
7.3.2安装thold插件 36
7.4Cacti插件应用之monitor插件 42
7.4.1monitor插件的作用 42
7.4.2安装monitor插件 42
7.5Cacti插件应用之syslog插件 44
7.5.1syslog插件的作用 44
7.5.2安装syslog插件 44
7.6Cacti插件应用之clog插件 45
7.6.1clog插件的作用 45
7.6.2安装clog插件 45
8.总结 46
8.1任务安排 46
8.2遇到的问题和解决方法 47
8.3总结 47
9.参考资料 47






1.Cacti概述
Cacti是一套基于PHP、Mysql、SNMP及RRDTool开发的网络流量检测图形分析工具。它通过snmpget来获取数据,使用RRDtool绘画图形,它的界面非常漂亮,能让你根本无需明白RRDtool的参数能轻易的绘出漂亮的图形。而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,Cacti还提供自己增加模板的功能,让你添加自己的snmp_query和script,功能非常强大完善,界面友好。可以说,cacti将rrdtool的所有缺点都补足了。
2.Cacti工作流程




(1)snmp协议收集远程服务器的数据
(2)将snmp收集的数据内容保存到rrd数据库中
(3)用户查看某台设备上的流量或其它状态信息
(4)在mysql数据库中查找该设备对应的rrd数据库文件的名称
(5)通过rrdtool命令进行绘图
3.Cacti的安装和配置详解
3.1网络架构
监控主机:10.10.54.151
3.2安装LAMP
//安装apache,php,mysql
Shell>yum install-y httpd php php-mysql php-snmp php-xml php-gd mysql mysql-server gd gd-devel
//开机自动启动并启动服务
Shell> chkconfig httpd on
Shell> /etc/init.d/httpd start
Shell> chkconfig mysqld on
Shell> /etc/init.d/mysqld start
//测试PHP
Shell> vim /var/www/html/index.php
phpinfo();
?>
在浏览器中输入"10.10.54.84",出现下面的界面表示PHP环境安装成功。
//测试mysql数据库
Shell>mysql-uroot-p123456
Welcome to the MySQL monitor.Commands end with;or\g.
Your MySQL connection id is 5
Server version:5.1.66-log Source distribution
Copyright(c)2000,2013,Oracle and/or its affiliates.All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates.Other names may be trademarks of their respective
owners.
Type'help;'or'\h'for help.Type'\c'to clear the current input statement.
mysql>
3.3安装net-snmp
Shell>yum install-y net-snmp net-snmp-utils
//修改配置文件
Shell>vim/etc/snmp/snmpd.conf
修改前:
view systemview included.1.3.6.1.2.1.1
修改后:
view systemview included.1.3.6.1.2.1
//启动snmp
Shell>#/etc/init.d/snmpd restart
//测试
Shell>snmpnetstat-v 2c-c public-Ca-Cp tcp localhost
Active Internet(tcp)Connections(including servers)
Proto Local Address Remote Address(state)
tcp*.ftp*.*LISTEN
tcp*.ssh*.*LISTEN
tcp*.mysql*.*LISTEN
tcp node2.ssh bogon.35961 ESTABLISHED
tcp localhost.smux*.*LISTEN
tcp localhost.x11-ssh-*.*LISTEN
3.4安装RRDTool
Shell>yum install rrdtool
//测试
Shell>rrdtool-v
RRDtool 1.3.8 Copyright 1997-2009 by Tobias Oetiker
Compiled Aug 21 2010 10:57:18
Usage:rrdtool[options]command command_options
Valid commands:create,update,updatev,graph,graphv,dump,restore,
last,lastupdate,first,info,fetch,tune,
resize,xport
RRDtool is distributed under the Terms of the GNU General
Public License Version 2.(www.gnu.org/copyleft/gpl.html)
For more information read the RRD manpages
3.5安装与配置Cacti
Shell>wget http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz
Shell>tar xvf cacti-0.8.8b.tar.gz
//把解压的文件移动到apache主目录下
Shell>mv cacti-0.8.8b/var/www/html/cacti
Shell>cd/var/www/html/cacti/
//cacti文件夹下的cacti.sql保存了cacti到所有表的语句,但没有创建数据库的语句,所以下面我们来配置一下Cacti数据库
Shell>mysql-uroot-p123456
mysql>create database cactidb;
mysql>use cactidb;
//导入数据
mysql>source cacti.sql;
//因为cacti要访问数据库,所以我们给cacti创建一个授权用户
mysql>grant all on cactidb.*to cactiuser@localhost identified by'123456';
GRANT ALL ON cactidb.*TO cactiuser@localhost IDENTIFIED BY'cactiuser';
mysql>flush privileges;
//测试该用户登录mysql
Shell>mysql-ucactiuser-p123456
//修改cacti程序的配置文件
Shell>cd/var/www/html/cacti/include/
Shell>vim config.php
$database_type="mysql";
$database_default="cactidb"; #刚创建的数据库名
$database_hostname="localhost";
$database_username="cactiuser"; #登录数据库的用户名
$database_password="cactiuser"; #密码
$database_port="3306";
$database_ssl=false;
$usr_path="/cacti/"; #cacti相对与根目录的位置
#如:根目录是/var/www/html/cacti/,这里就写/cacti/
//创建一个cacti用户并修改相关目录的权限
Shell>cd/var/www/html/cacti/
Shell>useradd cactiuser
Shell>chown-R cactiuser.cactiuser log/rra/
3.6测试
在浏览器中输入"http://10.10.54.84/cacti/"
出现初始化界面:点击next


选择全新安装还是升级安装,这里选择"New Install",点击"Next"继续


检查设备,如果没有错误点击"finish"继续


Cacti登录界面,到这里我们cacti初始化全部完成,默认用户名和密码都是"admin"


第一次登录需要修改密码


//设置cacti收集数据的默认的任务计划
Shell>echo'*/5****/usr/bin/php/var/www/html/cacti/poller.php&>/dev/null'>/var/spool/cron/cactiuser
Shell>crontab-u cactiuser-l
*/5****/usr/bin/php/var/www/html/cacti/poller.php&>/dev/null
//为了防止任务计划不执行,最好手动验证一下
Shell>su-cactiuser
Shell>/usr/bin/php/var/www/html/cacti/poller.php
会出现一大堆错误!!!
出现错误的原因是我们的php.ini的时区设置的不对,下面我们来修改一下php时区
Shell>vim/etc/php.ini
date.timezone=Asia/Shanghai
Shell>/etc/init.d/httpd restart
//再测试一下
Shell>su-cactiuser
Shell>/usr/bin/php/var/www/html/cacti/poller.php
03/17/2014 09:22:32 PM-POLLER:Poller[0]WARNING:Cron is out of sync with the Poller Interval!The Poller Interval is'300'seconds,with a maximum of a'300'second Cron,but 317 seconds have passed since the last poll!
03/17/2014 09:22:32 PM-SYSTEM STATS:Time:0.1058 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
OK u:0.00 s:0.00 r:0.00
OK u:0.00 s:0.00 r:0.00
OK u:0.00 s:0.00 r:0.00
OK u:0.00 s:0.00 r:0.00
OK u:0.00 s:0.00 r:0.00
Shell>cd/var/www/html/cacti/
Shell>chown-R cactiuser.cactiuser log/rra/
4.Cacti监控主机
4.1Cacti监控本机
首先我们点击一下"Devices"标签,出下以下界面,大家从图中可以看出,默认的主机就是Localhost。


接下来我们点击一下"Localhost"主机,出现以下界面。




上图是默认的配置,我们只要修改一处即可,便是"SNMP Options"


只要选择SNMP版本为"Version2",点击下面的"Save"即可。效果图如下




接下来我们选择右上角的"Create Graphs for this Host"(为这个主机增加监控图形)


选择graphs结果如下图






4.2 Cacti监控远程主机
4.2.1监控远程主机拓扑图


注,一台监控机Cacti 10.10.54.202,另一台是远程主机tech 10.10.54.201或者多台远程主机都是一样的。
4.2.2开启远程主机的snmp服务
远程主机tech的时间同步
Shell>ntpdate s1a.time.edu.cn
安装net-snmp
Shell>yum install-y net-snmp net-snmp-utils net-snmp-libs
修改net-snmp配置文件
Shell>vim/etc/snmp/snmpd.conf
修改前,
view systemview included.1.3.6.1.2.1.1
修改后,
view systemview included.1.3.6.1.2.1
启动服务并设置开机自启动
Shell>service snmpd start
Starting snmpd:[OK]
Shell>chkconfig snmpd on
Shell>chkconfig snmpd--list
snmpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Shell>netstat-ntulp|grep snmp
tcp 0 0 127.0.0.1:199 0.0.0.0:*LISTEN 5321/snmpd
udp 0 0 0.0.0.0:161 0.0.0.0:*5321/snmpd
在tech上简单测试一下
[root@cacti~]#snmpnetstat-v 2c-c public-Can-Cp tcp 10.10.54.201
Active Internet(tcp)Connections(including servers)
Proto Local Address Remote Address(state)
tcp*.22*.*LISTEN
tcp*.111*.*LISTEN
tcp*.875*.*LISTEN
tcp*.2049*.*LISTEN
tcp*.43178*.*LISTEN
tcp*.53278*.*LISTEN
tcp*.55659*.*LISTEN
tcp*.56253*.*LISTEN
tcp*.56824*.*LISTEN
tcp*.59047*.*LISTEN
tcp 10.10.54.201.22 10.10.54.200.53778 ESTABLISHED
tcp 10.10.54.201.810 10.10.54.201.2049 ESTABLISHED
tcp 10.10.54.201.2049 10.10.54.84.822 ESTABLISHED
tcp 10.10.54.201.2049 10.10.54.201.810 ESTABLISHED
tcp 127.0.0.1.25*.*LISTEN
tcp 127.0.0.1.199*.*LISTEN
tcp 127.0.0.1.631*.*LISTEN
至此,远程主机的snmp服务已配置完成
4.2.3监控远程主机
进入Cacti的console面板->点击"Devices"进入设备面板->


点击"Add"添加新设备->


填写要监测服务器的各种信息,其中Host Template请选择"Local Linux Machine"(选择一个合适的主机模板)->点击"Create"保存信息,如果SNMP连接没有问题,左上角会出现该服务器的信息,否则会出现"SNMP error"的红色字样->


点击上部的"Create Graphs for this Host"为该设备创建需监测的内容。监测的内容分两种,"Graph Templates"和"Data Query",区别在于"Data Query"能根据SNMP信息列出监测项目的信息。例如Data Query里的"Interface Statistics"可以看到该主机所有网卡的信息,这样可以选择需要监测的网卡。点击右侧的正方形选择框勾选上要监测的项目->


点击"Create"创建选择的监测内容,已经选择创建的内容会自动变成灰色并且不能再点选。Cacti会自动创建该监测点的rrd文件(在rra文件夹中)、"Data Source"和"graph"条目。




点击"Graph Management"可以看到刚才创建的监测点对应的图像,注意由于Cacti默认每5分钟到监测服务器上取一次数据,所以刚创建的监测点会出现图像不能显示的现象,需要等几分钟查看才会正常显示。


为了方便查看,可以将刚才新创建的设备或图像加入到"图像树"上:点击"Graph Tree"进入"图像树"面板->


点击分支名称或"Add"新的分支->


"Tree Item Type"中选择"Host","Tree Item Value"的"host"中选择刚才新添加的主机"tech"->


点击"Create"。


配置的Cacti监控远程主机配置到这里就全部完成.。超过5分钟后就可以看到效果图


4.3 Linux主机模板
4.3.1查看默认主机模板
图中可以看出默认主机模板只有几个,分别为:
Cisco Router
Generic SNMP-enabled Host
Karlnet Wireless Bridge
Local Linux Machine
Netware 4/5 Server
ucd/net SNMP Host
Windows 2000/XP Host
所有的模板可以到官方网站去下载:http://forums.cacti.net/viewforum.php?f=12&sid=fe2532345bf037678cb1e9fb07b40f16


4.3.2增加Linux主机模板
点击"Import Templates"页面。如图,在这里导入下载到的模板,点击"浏览"。


选择要导入的模板,点击"import"。


下图显示是的模板的具体细节。包括图形模板与数据模板等。


模板就导入完成了,下面来查看一下。


Linux Host模板已导入完成了。下面增加一个Linux主机测试一下
4.3.3监控Linux主机具体过程
点击"Devices"页面,->"Add"来增加一台新主机。如下图


填写相关参数,主要配置的参数有:
General Host Options
SNMP Options
具体参数如下图,


点击右上脚的"Create Graphs for this Host"页面,为主机增加监控图形


在这里选择要监控的相关图形。


在上图中的"Data Query[TCP]"时,发现在一个错误,下面便来解决一下这里错误。首先,来去看一下"Data Query"。如下图,


"Data Queries"是数据收集方法的一种,主要是xml脚本,来帮助收集数据。在图中可以看新增加的TCP收集方法,来点击一下"TCP"收集方法,看看里面的内容


图中可以看到有红色字体提醒说TCP收集方法的XML文件没有,从图中也可以看到tcp.xml文件在安装目录下的resource目录中的script_server目录下
Shell>cp tcp.xml/var/www/html/resource/script_server/
将下载下来的tcp.xml脚本,上传到/var/www/html/resource/script_server下,点击"Save"。如下图,


继续去增加图形




从图中可以看出,TCP收集方法好低像还是有问题,现在不是显示错误,而是显示一段提示,来回具体看一下这些提示,This data query returned 0 rows,perhaps there was a problem executing this data query.You canrun this data query in debug modeto get more information.
点一下图中的蓝色字体进入调试模式
在调试模式中可以看到tcp.xml文档依赖于tcp.php程序,还得继续增加tcp.php程序到scripts.将ports.inc上传到/var/www/html/scripts目录下
Shell>cp tcp.php/var/www/html/scripts/
Shell>cp ports.inc/var/www/html/scripts/
Linux Host模板才真正的增加完成


从图中可以看到的"Data Query[TCP]"可以成功的监控到tech上开户的22号端口。下面来选择要监控有图形,如下图:




这里选择监控所有图形,因为这个模板是专门为Linux主机做的,所以显示出来的图形都是重要的。这里特别要说明的是源于网卡流量的问题,因为这里测试的主机是CentOS 6.4 x86_64系统,所以这里的网卡流量类型应该选择"In/Out Bytes(64-bit Counters)"。若是32位系统应该选择"In/Out Bytes"。否则网卡流量监测会不准确,切记!


选择好图形后,点击"Create"即可。下图显示的是所有图形模板,继续点击"Create"。


为了查看方便将Node2主机增加到图形树中。增加图形树的过程就不解释了,上面已经演示。大概过了五分钟左右就可以看到图形了。如下图,




4.4 Windows主机模板
4.4.1增加Windows主机监控模板过程
点击"浏览",选择Windows主机模板。


点击"Import",导入模板。


查看一下导入的Windows主机模板


查看一下"Data Queries"


没有win32_procs.xml文件。


上传win32_procs.xml文件
上传win_services.xml文件
上传win_services.php脚本
[root@cacti Window]#pwd
/soft/Cacti/Window
[root@cacti Window]#ls
cacti_data_query_snmp_-_get_mounted_partitions.xml
cacti_data_query_snmp_-_get_processor_information.xml
cacti_data_query_snmp_-_interface_statistics.xml
cacti_data_query_snmp_-_running_processes.xml
cacti_host_template_local_linux_machine.xml
cacti_host_template_windows_host.xml
win32_procs.xml
win_services.php
win_services.xml
[root@cacti Window]#cp win32_procs.xml/var/www/html/resource/snmp_queries/
[root@cacti Window]#cp win_services.xml/var/www/html/resource/script_server/
[root@cacti Window]#cp win_services.php/var/www/html/scripts/
的Windows主机模板增加完成,下面增一个Windows测试主机
4.4.2开启Windows的snmp服务
通过SNMP监控Windows主机需要在被监控的服务器上安装简单网络管理协议(SNMP)的Windows组件,以Windows 7系统为例:
首先,在控制面板中找到"卸载程序";


在弹出的窗口中单击"打开或关闭Windows功能";


勾选弹出窗口中的"简单网络管理协议(SNMP)"项后单击"确定"并根据提示完成安装即可。


完成SNMP服务的安装后,右键单击"计算机"选择"管理"
在弹出的"计算机管理"窗口中左侧导航栏中找到"服务",并在右侧找到"SNMP Service"项;
鼠标双击"SNMP Service"选项,在弹出的窗口中切换到"安全"选项卡中,如上图添加"接受的社区名称"和接收那些主机发出的SNMP数据包。


"接受的社区名称"是自己定义的任意字符都可以,接收那些主机发出的SNMP数据包定义成你的服务器即可。到这里被监控端的Windows主机的SNMP服务就配置完成
4.4.3增加Windows测试主机












4.4.4增加Windows主机到图形树


4.4.5最终效果图


5.监控服务
5.1监控mysql mysql复制
5.1.1主机配置
1台cacti server 10.10.54.159
3台msyql server
master:10.10.54.157
slave1:10.10.54.156
slave2:10.10.54.155
5.1.2实现思路
(1)先配置mysql主从复制环境,把三台mysql主机都作为cacti监控对象
(2)添加MySQL监控模板到cacti管理界面,和cacti根目录
(3)在mysql server上创建cacti server使用帐号,授权cacti server连接mysql
(4)cacti管理界面中添加刚才导入的mysql监控模板,并创建为图形
(5)过一段时间查看图形状态,此时图形上没有任何数据
(6)在master主机上创建表,添加数据
(7)过五分钟,再次观察cacti上mysql图形
5.1.3具体步骤
[监控服务器操作]
(1)下载模板:
shell>wget http://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz
shell>tar xvfz better-cacti-templates-1.1.8.tar.gz
shell>cd better-cacti-templates-1.1.8
#下面主要有两个文件夹,scripts templates
(2)导入脚本文件到cacti安装目录的scripts目录下
shell>cp scripts/ss_get_mysql_stats.php/data/www/cacti/scripts/
(3)修改ss_get_mysql_stats.php配置
shell>vi/var/www/html/cacti/scripts/ss_get_mysql_stats.php
–-------------------------------------------------------------------------------------
$mysql_user="cactiuser";#用此帐号连接被监控主机上的mysql
$mysql_pass="cactiuser";
$mysql_port=3306;
$cache_dir="/var/www/html/cacti/cache";
–---------------------------------------------------------------------------------------
(4)cacti根目录下创建缓存目录并更改权限
shell>mkdir/var/www/html/cacti/cache
shell>chown cactiuser:cactiuser/var/www/html/cacti/cache
shell>chmod 755/var/www/html/cacti/cache
(5)在cacti管理界面(Import Templates)导入templates/cacti_host_template_x_mysql_server_ht_0.8.6i-sver1.1.8.xml文件


 (6)查看模板是否导入成功,X MySql Server HT




(7)在被监控主机上创建cacti使用的mysql的用户,以使cacti可以访问本机mysql
mysql>grant process,super,replication client on*.*to"cactiuser"@"10.10.54.157"identified by"cactiuser";
mysql>flush privileges;
(8)cacti管理界面,Management>Devices里选择已有的设备10.10.54.150(mysql)


(9)页面最下面,在Associated Graph Templates>Add Graph Template中添加监控msyql复制的模板:X MySQL Replication GT,点击右边的add添加,最下面save保存


(10)点击此页面最上面的Create Graphs for this Host链接,在Graph Templates中选择刚才添加的X MySQL Replication GT,然后点击Create按钮,图形就创建成功


(11)配置完成后,等一会儿就可以进入Graph Management中查看具体的监控项了。


5.2监控apache nginx
5.2.1准备工作
(1)网络规划:
监控主机:10.10.54.50
被监控主机(nginx&&apache):10.10.54.54
(2)软件下载
监控主机:
wget http://ftqzy-it-code.googlecode.com/files/ApacheStats_0.8.2.zip
wgethttp://autosetup1.googlecode.com/files/cacti-nginx.tar.gz
yum -y install perl-libwww-perl
yum install cacti
被监控主机:
wget http://nginx.org/download/nginx-1.4.5.tar.gz
yum install -y httpd
yum install -y snmpd


(3)修改配置文件
在做监控apache和nginx服务之前,需要能够实现对远程主机的监控
被监控主机:10.10.54.54
Shell>vim/etc/snmp/snmpd.conf
===============================================
#sec.name source community
com2sec notConfigUser 10.10.54.50 public
#group context sec.model sec.level prefix read write notif
access notConfigGroup""any noauth exact all none none
##incl/excl subtree mask
view all included.1 80
proc mountd
proc ntalkd 4
proc sendmail 10 1
disk/10000
load 12 14 14
=======================================================
(4)重启服务
/etc/init.d/snmpd restart
5.3.2监控apache
被监控主机:10.10.54.54
(1)安装apache
yum install-y httpd
(2)修改配置文件
Shell>vim/etc/httpd/conf/httpd.conf
============================================
LoadModule status_module modules/mod_status.so
ExtendedStatus On

SetHandler server-status
Order deny,allow
Deny from all
Allow from 10.10.54.0/255.255.255.0

===========================================
(3)重启服务
Shell>/etc/init.d/httpd stop
Shell>/etc/init.d/httpd start
(4)测试页面


监控端:10.10.54.50
(1) 安装插件包
//解压插件包
Shell>tar xvf ApacheStats_0.8.2.zip
//复制解压插件到脚本目录
Shell>cd ApacheStats_0.8.2
Shell>cp ss_apache_stats.php/web/vhosts/cacti/scripts/
//更改目录权限
Shell>chmod 755/web/vhosts/cacti/scripts/
(2)cacti管理界面
//导入模板


//新建apache主机


点击create.
//添加监控选项


//创建图表


//把apache添加到graph tree


//结果显示


5.2.3监控nginx
    方法一:
被监控端:10.10.54.54
(1)安装nginx
//解压
Shell>tar xvf nginx-1.4.5.tar.gz
//编译
Shell>./configure--prefix=/usr/local/nginx--user=nginx--group=nginx--with-http_stub_status_module\
--with-http_gzip_static_module--with-http_ssl_module
make
make install
//启动服务
Shell>/usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx.conf
(2)修改配置文件
Shell>vim/usr/local/nginx/conf/nginx.conf
==================================================
user nginx nginx;
worker_processes 2;
error_log logs/error.log info;
pid logs/nginx.pid
events{
worker_connections 1024;
}
http{
include mime.types;
default_type application/octet-stream;
access_log logs/access.log;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
gzip on;
server{
listen 80;
server_name localhost;
location/{
root html;
index index.html index.htm;
}
location/NginxStatus{
stub_status on;
access_log off;
}
===============================================
killall-s HUP nginx(令Nginx配置生效)
(3)测试
浏览器输入:http://10.10.54.54/NginxStatus
显示Nginx的运行状态页面
Active connections:2
server accepts handled requests
2 2 1
Reading:0 Writing:1 Waiting:1


监控主机:10.10.54.50
(1)解压插件包
Shell>tar xvf cacti-nginx.tar.gz
(2)复制解压插件到脚本目录
Shell>cd cacti-nginx
Shell>cp get_nginx_clients_status.pl/web/vhosts/cacti/scripts/
Shell>cp get_nginx_socket_status.pl/web/vhosts/cacti/scripts/
(3)更改目录权限
Shell>chmod 755/web/vhosts/cacti/scripts/
(4)验证
Shell>/web/vhosts/cacti/scripts/get_nginx_clients_status.pl http://10.10.54.54/NginxStatus
##error
no(LWP::UserAgent not found)
solution:
yum-y install perl-libwww-perl
再次验证:
Shell>/web/vhosts/cacti/scripts/get_nginx_clients_status.pl http://10.10.54.54/NginxStatus
nginx_active:1 nginx_reading:0 nginx_writing:1 nginx_waiting:0
Shell>/web/vhosts/cacti/scripts/get_nginx_socket_status.pl http://10.10.54.54/NginxStatus
nginx_accepts:4 nginx_handled:4 nginx_requests:4


cacti管理界面
(1)导入模板
Console->Import Templates
从本机选取:
cacti_graph_template_nginx_clients_stat.xml
cacti_graph_template_nginx_sockets_stat.xml
->Import


(2)添加nginx主机


(3)添加监控选项


(4)创建图标


(5)输入URL
URL:http://10.10.54.54/NginxStatus
(6)把nginx加入graph tree


(7)主要结果显示:




方法二:
(1)网络结构
cacti server 10.10.54.151 ---身份cactiuser
nginx server 10.10.54.157


(2)
nginx server上创建用户cacti,编译/usr/local/nginx/conf/nginx.conf文件,添加status页面
---------------------------------------
    location /server-status {
            stub_status on;
            allow all;
             access_log off;
            }
---------------------------------------


#浏览器输入http://10.10.54.157/server-status,验证页面信息


(3)
cacti server用ssh-keygen ssh-copy-id 创建免密钥登录nginx服务器
cactiuser> ssh-keygen -t rsa -b 2048
cactiuser> ssh-copy-id -i id_rsa.pub root@10.10.54.157


(4)cacti服务器上更改/var/www/html/cacti/scripts/ss_get_by_ssh.php文件
----------------------------------------------
$ssh_user   = 'cacti';                           # SSH username
$ssh_port   = 22;                                # SSH port
$ssh_iden   = '-i /home/cactiuser/.ssh/id_rsa'; # SSH identity
$ssh_tout   = 10;                                # SSH connect timeout
----------------------------------------------


(5)cacti管理界面
console>data input methods>input string
----------------------------------
-q /scripts/ss_get_by_ssh.php --host --type nginx --items hx,hy
#去掉后面的url项


6.cacti高级应用
6.1cacti高级应用之多CPU模板
6.1.1主机配置
cacti server 10.10.54.159
多CPU主机:10.10.54.157(双核)
6.1.2实现说明
cacti默认的模板只能单独监控每个CPU,通过添加多CPU模板,可以合并CPU监控,使所有的CPU都在一张图中。
6.1.3具体配置
(1)下载多CPU模板,文件名类似这样
cacti_graph_template_host_mib_-_multi_cpu_utilization_on_2_processor_box
cacti_graph_template_host_mib_-_multi_cpu_utilization_on_4_processor_box
cacti_graph_template_host_mib_-_multi_cpu_utilization_on_8_processor_box
cacti_graph_template_host_mib__multi_cpu_utilization_on_16_processor_box
(2)打开cacti管理页面,在console>import Templates界面导入2CPU模板


(3)在console>Graph Templates界面中,查看刚才添加的模板


(4)console>Graph Management中,Host选10.10.54.157机子,然后点击右上方add,添加多CPU模板


(5)Data Source[cpu0]和Data Source[cpu1]中选择两个CPU,Save保存


(6)过一会儿就可以在Graphs面板下,查看多CPU模板生成的图形


6.2cacti高级应用之自定义脚本
6.2.1准备工作
创建脚本
脚本内容是我们需要检测的项目,这里我们选择生成一个随机数的脚本
#!/bin/bash
echo$RANDOM
保存此脚本到cacti根目录下的scripts文件夹中
/var/www/html/cacti/scripts
6.2.2创建数据输入方式
(1)在Console-->点击Data Input Methods


(2)点击右上角的Add,添加一个新的数据获取方式
(3)点击Create,出现新的项目
    (4)新的项目包括Input Fields和Output Fields,即输入内容和输出内容,输入内容其实就是向脚本传递函数,这个脚本不需要传递参数,只有Output Fields。
(5)在Output Fields上点击Add,添加新的输出内容。
(6)在Field[Output]中输入我们脚本的输出项:"QQ_Now"
(7)Friendly Name中内容随意。
(8)勾选Update RRD File后,点击Create
(9)然后查看我们整个的数据获取方式信息,点击Save
6.2.3创建数据源
  (1)在Console->点击Data Sources,进入数据源界面
(2)点击右上角的Add,添加新的数据源
(3)Data Template和Host均为None。然后点击Create
  (4)在新出现的信息面板中输入相关内容


 (5)点击Create,此时左上角会出现Save Successful
6.2.4创建图像
  (1)选择Console-->Graph Management,进入图像管理
(2)点击右上角的Add,添加一个新的图像
(3)选择Graph Template以及Host均为None,然后点击Create
(4)Title中输入图像的名字,其他保持不变。并点击Create
(5)然后多出Graph Items选项,以及中间有一个看不到图的红叉,因为这个图我们还没有定义。
(6)在Graph Items中点击Add,添加画图规则。


  (7)添加完画图内容之后,点击Create/Save,返回之前的页面,接下来还要添加数据的展示内容。
(8)再次点击Graph Items中的Add,这次添加的是数据的展示,展示当前值。


 (9)设置好后点击Create创建这个项目,然后按照这个方法,分别创建最大值,最小值,平均值的展示内容


6.2.5将自定义好的图形,加入到Graphs面板
  (1)在Cacti Web界面Graph Trees中,选择相应的列(或者系统默认的Default Tree)。
(2)进去Tree之后,点击右上角的Add,添加一个新的显示项。
(3)在Tree Item Type中选择Graph,然后在下面的Graph中选择我们刚才创建的图像。点击Create。
(4)此时,再进入Graphs界面,就可以看到在Default Tree下已经出现了我们新创建的图像。
7.Cacti插件应用
7.1Cacti插件下载
本小结主要讲解五个插件分别是,settings插件、thold插件、monitor插件、syslog插件、clog插件。
在Cacti 0.8.8a之前的版本安装Cacti插件必须先要打上插件补丁,在Cacti 0.8.8之后的版本中已经集成插件管理功能,我们需要什么插件直接安装即可,不需要再打插件补丁。
所有插件的官方文档请参考这里:http://docs.cacti.net/plugins。好了,下面我们就来具体演示一下怎么安装与使用插件。
所有插件可以去http://awghuscsbi.l7.yunpan.cn/lk/Qbe5Wnnd7WLzw#/-0下载
7.2Cacti插件应用之settings插件
7.2.1setting插件的作用
settings插件主要帮助我们实现DNS域名解析与Mail发送功能。
7.2.2安装settings插件
Shell>cd/web/vhosts/cacti/plugins
Shell>tar xvf settings-v0.71-1.tgz
注,我们刷新一下浏览器,我们会看到我们刚才解压的插件,如下图。


注,我们用鼠标轻轻的滑过Actions按钮,我们会看到"Install Plugin",我们点击一下安装插件。会出现一个绿色按钮,当我们用鼠标轻轻没过旁边的绿色按钮,会显示"Enable plugin",我们点击一下启动插件。如下图:


注,下面我们看到是页面就是安装完成并启动好的页面。如下图:


注,我们点击左侧导航栏"Settings",会看到多出来一个选项卡"Mail/DNS",我们点击一下。下面是我配置好的邮件选项,大家可以看到我用的是qq邮箱(根据需要填写自己的邮箱,不能照搬。),smtp.exmail.qq.com是qq邮箱服务器25端口,网上可查。如下图:


注,大家点击右上方"Send a Test Email",Cacti会发送一个测试邮件,发送成功会显示"Success"。如下图:


如果失败会出现下面的错误:
454 Authentication failed,please open smtp flag first!


在QQ邮箱的设置里面,找到账户-->POP3/IMAP/SMTP选择开启POP3/SMTP服务
注,下面是我们收到的邮箱提醒,大家可以看到是不是很方便啊。


7.3Cacti插件应用之thold插件
7.3.1thold插件的作用
thold插件提供报警功能的插件。
7.3.2安装thold插件
Shell>tar xvf/web/vhosts/cacti/plugins/thold-v0.5.0.tgz
注,同样安装好插件后先启用插件,如下图。


注,安装并启动好thold插件,左边导航栏会出现"Threshold Templates",我们点击一下。如下图:


注,点击右上脚的"Add",增加警报机制。我们这里演示监控磁盘空间。如下图,


注,点击"Create",出现以下界面。下面是让我们填写相关警报参数。如下图,


注,为方便我们填写警报参数,我们先查看一下磁盘空间。大家可以看到我们的根分区与/usr分区的使用率分别为65%与34%。
[root@gyf plugins]#df-h
Filesystem Size Used Avail Use%Mounted on
/dev/sda2 6.0G 3.7G 2.0G 65%/
tmpfs 499M 0 499M 0%/dev/shm
/dev/sda1 194M 26M 159M 14%/boot
/dev/sda5 504M 17M 462M 4%/swap
/dev/sda3 5.0G 1.6G 3.1G 34%/usr
注,下面我们设置报警参数,当磁盘空间的利用率到达66%时,发出邮件报警。具体设置如下图,




注,到这里我们报警机制设置完成。如下图,


注,上面我们设置好了报警机制,下面我们将设置的报警机制应用到localhost主机上,具体过程如下图。
点击导航New Graphs,选择node1(10.10.54.61)


注,点击右上方"Auto-create thresholds",将报警模板自动应用到磁盘空间上。如下图,
点击Create Graphs for this Host


注,点击"Auto-create thresholds",将报警模板自动应用到磁盘空间上。如下图,




注,大家可以看到报警模样应用到所有空间上了,我们这里只监控根分区与usr分区,所以将不需要监控分区关闭。如下图,




下面我们来测试一下看报警插件能不能工作。
Shell>dd if=/dev/zero of=/usr/123 bs=1M count=2000
2000+0 records in
2000+0 records out
2097152000 bytes(2.1 GB)copied,17.8787 s,117 MB/s


7.4Cacti插件应用之monitor插件
7.4.1monitor插件的作用
monitor插件监控主机是否宕机,若宕机会警报声音提示。
7.4.2安装monitor插件
Shell>tar xvf/web/vhosts/cacti/plugins/monitor-v1.3-1.tgz


注,选择要监控的主机,勾选"Monitor Host",并填写宕机后发送警报的邮箱。如下图,


点击monitor,如下图


注,下面我们测试一下。
Shell>/etc/init.d/snmpd stop


7.5Cacti插件应用之syslog插件
7.5.1syslog插件的作用
syslog插件帮助我们更友好的查看主机的系统日志。
7.5.2安装syslog插件
Shell>tar xvf/web/vhosts/cacti/plugins/syslog-v1.22-2.tgz
如下图,

在上方导航多一个syslog标签,点击如图:

7.6Cacti插件应用之clog插件
7.6.1clog插件的作用
clog插件以界面的方式帮助我们更友好的查看cacti产生的监控日志。
7.6.2安装clog插件
Shell>tar xvf/web/vhosts/cacti/plugins/clog-v1.7-1.tgz
点击安装并启用


上方会多一个clog标签,点击clog标签

9.参考资料
SNMP原理与实战详解:http://freeloda.blog.51cto.com/2033581/1306743
RRDTool详解:http://freeloda.blog.51cto.com/2033581/1307492
Cacti安装:http://freeloda.blog.51cto.com/2033581/1308140
使用cacti监控服务器流量:http://www.centos.bz/2012/06/cacti-monitor-traffic/
cacti监控磁盘IO:http://www.centos.bz/2012/09/cacti-monitor-disk-io/
Linux监控工具之Cacti使用详解:http://freeloda.blog.51cto.com/2033581/1312533
阅读(2726) | 评论(0) | 转发(0) |
0

上一篇:Cacti 监控 MySQL

下一篇:Cacti分布式监控

给主人留下些什么吧!~~