服务器监控系统cacti

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器监控系统cacti相关的知识,希望对你有一定的参考价值。

前言:在企业网络运维过程中,管理员必须时刻关注服务器的运行状态,如CPU、内存、磁盘空间使用情况等。为了能够及时的发现问题,尽量减少故障的发生。当网络中的设备,服务器等数量较多时,可以部署一套监控系统来实时跟踪服务器,我们通常会借助一些软件来实现。今天就以Cacti套件为例,介绍服务器集中监测体系的构建和使用。

今天所讲的cacti服务器监控系统与windows操作系统中的“性能监视器”属于同一类,都是为了监控cpu占用,内存使用,运行进程数,磁盘空间,网卡流量等各种数据。但不同的是,cacti不仅可以监控linux,也可以监控windows服务器,路由器,交换机等网络设备,主要基于snmp协议来搜集数据。Cacti本身是一个web界面的软件,通过调用net-snmp工具来采集检测数据,并结合RRDtool(轮询数据库工具)记录数据并绘制图片,最终以web页面展示给管理员用户。cacti需要运行在lamp平台上,配置简单,直观,而且支持插件和数据模板,可扩展其功能。下面给大家介绍搭建的过程。


一、实验环境

1、工作原理

Cacti可以从逻辑上分为三个部分、第一部分:被检测的对象,也就是客户端。第二部分:检测平台,也就是服务器端。第三部分:管理平台。Cacti采用了两种结构实现功能,一种是C/S结构主要是实现服务器到客户端监控另外一种就是B/S主要完成对Cacti平台的管理,从下图我们可以看出,管理端是在Web上对Cacti进行管理。

简单的整理一下Cacti的工作过程。

首先通过LAMP平台部署Cacti监控工具,之后通过客户端的web登录Cacti进行对其他客户端的设置,可以从下图看到Cacti采集数据时必须要使用SNMP协议来连接客户端进而能够采集数据,也就是说客户端必须支持SNMP协议,监控之后通过RRDtool来生成图表。


2、实验拓扑

技术分享图片



3、虚拟机实验环境

技术分享图片

二、服务器的配置

1、安装支持软件

配置LAMP平台,我们以前是编译安装的,这里为了节约时间,就直接使用yum安装了。

技术分享图片

补充:

[[email protected] ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

[[email protected] ~]# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

[[email protected] ~]# mysqladmin -u root -p password 'pwd123'

Enter password:

1)测试LAMP平台

编写一个php测试页,Vim  /var/www/html/index.php,内容如下:

技术分享图片

技术分享图片

在浏览器上访问,如果出现下面的页面,说明配置成功。

技术分享图片


1)安装net-snmp-utils软件包

Cacti平台通过snmp协议采集检测数据,这些工具程序由net-snmp-utils软件包提供,安装方法如下。


技术分享图片

技术分享图片

1)安装rrdtool软件包

Rrdtool软件包主要用于数据记录和图表绘制。

首先安装依赖包:

[[email protected] ~]# yum -y install cairo-devel zlib libxml2 libxml2-devel glib2 glib2-devel libpng libpng-devel freetype freetype-devel libart_lgpl pango pango-devel perl-CPAN

技术分享图片

安装rddtool源码包:

技术分享图片

2、部署cacti,设置数据库连接

1)部署cacti源码包(将下载的cacti源码包释放到web服务器的网页目录)

技术分享图片

添加一个用来读写检测数据的用户账户,并调整目录的属主,以便正常读取及写入数据。

技术分享图片


2)建立数据库,表结构(创建用于cacti监测平台的数据库,并授权一个数据库用户cacti,然后使用cacti源码目录下的cacti.sql脚本,导入预设的各种数据表)

技术分享图片

技术分享图片

技术分享图片

验证数据库是否导入:

技术分享图片


2)调整cacti配置文件

技术分享图片

[[email protected] cacti]# vim include/config.php

$database_type = "mysql";  //指定连接的类型

$database_default = "cacti";  //连接的库

$database_hostname = "localhost"; //登录源

$database_username = "cacti";//用户名

$database_password = "cacti";//用户密码

$database_port = "3306"; //连接的端口

$database_ssl = false; //不启用ssl

$url_path = "/"; //指定cacti的根目录,这个目录是cacti的文件目录下,我们后面还需要修改httpd的主配置文件。

技术分享图片

技术分享图片

 

3、cacti的安装

1)调整httpd配置(修改httpd服务的主配置文件,设置好网站根目录,默认首页,默认字符集等,然后重新加载httpd服务)

[[email protected] cacti]# vim /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/html/cacti" //292

<Directory "/var/www/html/cacti"> //317

    Options Indexes none //331

   AllowOverride None //338

 Order allow,deny //343

    Allow from all //344

</Directory> //346

DirectoryIndex  index.php  index.html index.html.var //402

AddDefaultCharset UTF-8 //759

[[email protected] cacti]# service httpd restart

技术分享图片

修改网站主目录(以下2个地方

技术分享图片

技术分享图片

修改默认首页为index.php

技术分享图片


修改字符集,默认就是这个,不用改

技术分享图片

重新加载httpd服务,并查看端口

技术分享图片

1)初始化cacti系统

在浏览器中输入http://192.168.1.1,然后根据提示安装。


以下保持默认即可,点击finish完成即可

技术分享图片

技术分享图片


到此为止服务器配置完成了,下面开始配置一台linux客户端(mysql192.168.1.2),然后使用cacti监控客户端。


三、配置客户端(被控端snmpd

无论是路由器、交换机、还是linuxwindows服务器,只要正确支持SNMP协议,并允许Client服务器采集数据,就能够对其进行监测。下面仅介绍在linux服务器中启用SNMP支持并设置共同体名的简单方法。

ps:共同体名,值的是一种验证机制,所有的client都必须使用同一个共同体名,就像我们之前学习的hsrp的组一样,只有组号相同才能是一个组的,这里也是如此,只有共同体名相同的时候,Cacti才能通过这个共同体名对client进行监控。

需要安装net-snmplm_sensors软件包,然后通过修改其配置文件/etc/snmp/snmpd.conf,并启动snmpd服务,并建立规则,默认监听UDP161号端口。

 

[[email protected] ~]#

yum -y install net-snmp lm_sensors


[[email protected] ~]#

vim /etc/snmp/snmpd.conf


com2sec notConfigUser  192.168.1.1       public //41

access  notConfigGroup ""      any       noauth    exact all none none             //62

view all    included  .1               80   //85

 

41192.168.1.1指的是Cacti的服务器IP(默认是default),表示允许其查询本机数据,public指的就是共同体名,用来识别及验证

62行  all表示开放所有的SNMP查询权限(默认是 SystemView

85行   去掉注释之后,以便支持各种查询。

[[email protected] ~]#

service snmpd restart

[[email protected] ~]#

iptables -I INPUT -p udp --dport 161 -j ACCEPT

技术分享图片

技术分享图片


技术分享图片


技术分享图片技术分享图片技术分享图片

 

三、使用cactiweb控制台(下面以5个部分说明)

登录Web控制台

添加被控设备/主机,设置监控项目

生成监测图像

定期采集监测数据

查看监测结果

 

1、登录web控制台

在浏览器中输入http://192.168.1.1,输入用户名和密码登录,默认都是admin

技术分享图片

2、添加被控设备/主机,设置监控项目

1)单击导航栏中的“management(管理)”下的“devices(设备)”,可以管理被控设备或主机。点击devices---Add


技术分享图片

修改五个地方,如下图

技术分享图片

然后单击右下角的create”创建,将自动连接目标执行snmp查询

 

2)设置要监测的项目

成功连接被控端后会看到save successful提示,如下图:

技术分享图片

技术分享图片

技术分享图片

添加项的时候选择页面右侧的add,完成之后点击右下方的save按钮保存


技术分享图片

3、生成检测图像

1)创建图像

单击导航栏中create下的new graphs(图表),选择被控端,选中最需要的图像条目,最后单击下方的create按钮完成创建。

技术分享图片

我这里就全部选择了,效果明显。

技术分享图片

1)添加图像至监测树

单击导航栏中的management下的graph trees,在单击default tree就可以对默认的图像监测树进行管理。单击右侧的add,可以向监测树种添加“树项目”,完成之后点击create,并点击save保存

技术分享图片

技术分享图片

技术分享图片


4、定期采集监测数据

Cacti系统通过poller.php页面采集监测数据,可以结合计划任务定期采集(默认的刷新间隔是5分钟)

执行完成之后,会出现很多的提示信息,如图17所示,一般情况下是指时区不正确,他建议你将时区改为Asia/Chongqing

由于是php报的错误,所以我们通过php.ini这个主配置文件解决这个问题

[[email protected] cacti]# vim /etc/php.ini

date.timezone = Asia/Chongqing   //946行去掉注释

技术分享图片

[[email protected] cacti]# crontab  -e

*/5 * * * * /usr/bin/php  /var/www/html/cacti/poller.php

技术分享图片

技术分享图片技术分享图片

4、查看监测结果

单击cacti管理控制台左上方的graphs标签,然后展开左侧的default tree树,选择被控主机后即可看到各监测图像。

技术分享图片

技术分享图片

技术分享图片

我这里有三页的图表,就截以上的几张图片了。

 

 

 

五、安装percona-mysql-monitor插件

Cacti工具默认的模板只能监控机器的cpu,内存和磁盘等信息,如果想要监控mysql,就需要安装插件,操作如下。

1)解压缩软件到目标位置

技术分享图片


2)在mysql数据库授权用户

[[email protected] ~]# mysql -u root -p

mysql> grant process , super on *.* to [email protected]'192.168.1.1' identified by 'cactiuser';

[[email protected] ~]# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

技术分享图片

3)为设备添加项目

Cacti管理界面中进行添加,点击Consose——Import Templates——选择文件, 将宿主机下的压缩目录解压到一个文件夹内,选择解压后的cacti\templat目录下的cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.4.xml,最后单击import导入。

技术分享图片

技术分享图片

4)添加模板

技术分享图片

4)创建图像

技术分享图片

技术分享图片

4)重新采集(或者等5分钟之后)

[[email protected] scripts]# /usr/bin/php  /var/www/html/cacti/poller.php

 

4)查看监测结果

技术分享图片

技术分享图片


以上是关于服务器监控系统cacti的主要内容,如果未能解决你的问题,请参考以下文章

05: Cacti监控服务 Cacti监控实战

服务器监控系统cacti

CAS客户端整合-- Cacti

服务器监控cacti

服务器监控cacti

服务器监控——Cacti(全新版)