Chinaunix首页 | 论坛 | 博客
  • 博客访问: 96886
  • 博文数量: 34
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 350
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-04 22:47
文章分类

全部博文(34)

文章存档

2017年(34)

我的朋友

分类: 服务器与存储

2017-03-16 06:56:38

cacti简介:

rrdtool create
周期性执行能够取得数据的命令,并将取回的数据保存至rrd文件当中

利用rrdtool绘图并显示

php开发网页程序
LAMP,LNMP
--enable-sockets
插件机制
thold

模板:
        图形模板
        数据模板
        主机模板

一、安装cacti

安装环境:

主机操作系统:Centos6.5
cacti安装前提条件:需要先装好lnmp环境和rrdtool

1、配置并安装epel的yum源
[root@localhost ~]# wget
[root@localhost ~]# rpm -ivh epel-release-6-8.noarch.rpm

2、安装httpd、mysql、php、rrdtool
[root@localhost ~]yum install httpd mysql mysql-server php* rrdtool net-snmp net-snmp-utils

3、解压cacti包
tar xf cacti-0.8.8h.tar.gz -C /var/www/html

4、对主网页文件做软链接
cd   /var/www/html
ln  -sv  cacti-0.8.8h  cacti

5、在mysql里创建cacti数据库并把cacti.sql语句导入表中
cd   /var/www/html
[root@localhost cacti]#mysadmin create cacti
[root@localhost cacti]# mysql cacti < cacti.sql

6、创建个Cacti数据库访问用户
mysql -e "GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'huaxia'”
[root@localhost cacti]# mysqladmin flush-privileges;

7、修改cacti的config.php文件
cd  /var/www/html/cacti/include
vim  config.php修改cacti连接数据库的选项
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "huaxia";
$database_port = "3306";
$database_ssl = false;

8、创建周期性获取数据的用户
[root@localhost include]# useradd cactiuser

9、修改cacti主目录下log和rra目录的属主和属组,需要把属主和属组改为周期性获取数据的用户
rra:保存rrd文件的目录
log:保存日志的目录
[root@localhost cacti]# chown -R cactiuser:cactiuser rra  log

10、启动apache服务
[root@localhost cacti]# service httpd start
正在启动 httpd:httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
                                                           [确定]
11、访问cacti

注意:防火墙要是打开请放通80端口,selinux也必须关闭

12、点击到如下图所示的登录界面:
默认用户名是admin,密码也是admin

首次登录系统提示需要修改用户名和密码,我们这里修改为
用户名:admin
密码: huaxia

13、登录进系统的主界面:


14、主控界面的Console
Collection Methods :(收集方法)
Data Queries:数据查询方法 -> xml格式数据收集方法
Data Input Methods:数据输入方法 -> 命令或者脚本
脚本:
         只需要指定如何获取数据,并且获取到的数据经过处理后按规定输出

15、给cacti定义一个周期性的任务计划,使用cacati的主目录下的poller.php实现,poller只支持单线程的监控,实现多线程的需要spine实现
[root@localhost ~]# echo '*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null' > /var/spool/cron/cactiuser
[root@localhost ~]# crontab -u cactiuser -e

16、修改php支持的时区
[root@localhost ~]# vim /etc/php.ini
date.timezone = Asia/Shanghai

17、查看任务计划的执行情况,看到任务计划已经在执行
[root@localhost log]# tail -f cacti.log
03/19/2017 02:00:03 AM - SYSTEM STATS: Time:0.7099 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
03/19/2017 02:05:01 AM - SYSTEM STATS: Time:0.7950 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5

二、配置cacti

1、配置本机使用snmp
Device -> localhost


2、数据源
定义数据源的模板,数据源关联的主机,数据源生成的rrd文件的路径,开启的调试模式


3、使用ntpdate更新了服务器的时间,发现cacti的主配置文件下的rra目录里没有生成rrd文件,查看日志有下面报错!
root@localhost log]# tail -f cacti.log
03/18/2017 06:53:26 PM - POLLER: Poller[0] NOTE: Cron is configured to run too often!  The Poller Interval is '300' seconds, with a minimum Cron period of '300' seconds, but only -26195 seconds have passed since the poller last ran.
使用下面的方法解决
[cactiuser@localhost ~]$ /usr/bin/php /var/www/html/cacti/poller.php --force
sh: /usr/local/bin/rrdtool: 没有那个文件或目录
03/18/2017 07:09:43 PM - SYSTEM STATS: Time:0.8497 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
又报错
03/18/2017 07:15:02 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 319 seconds have passed since the last poll!
过会了又正常了
03/18/2017 07:15:02 PM - SYSTEM STATS: Time:0.5702 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
03/18/2017 07:20:02 PM - SYSTEM STATS: Time:0.6918 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
03/18/2017 07:25:03 PM - SYSTEM STATS: Time:0.7356 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
03/18/2017 07:30:02 PM - SYSTEM STATS: Time:0.8958 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
03/18/2017 07:35:03 PM - SYSTEM STATS: Time:0.8467 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
03/18/2017 07:40:02 PM - SYSTEM STATS: Time:0.7094 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
03/18/2017 07:45:03 PM - SYSTEM STATS: Time:0.7294 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5

4、发现了cacti主配置文件里rra主目录下没有生成rrd文件,查看Cacti Setting 下的Paths路径下有很多错误,如下图所示:

因为没使用编译的方式安装rrdtool和net-snmp net-snmp-utils等软件,系统默认会使用编译的路径去找相应的文件,我们这里把路径改为软件指向的实际路径

5、改完路径,查看到cacti主目录下rra文件里已生成rrd文件
[root@localhost rra]# ls
localhost_load_1min_5.rrd  localhost_mem_buffers_3.rrd  localhost_mem_swap_4.rrd  localhost_proc_7.rrd  localhost_users_6.rrd

6、使用rrdtool获取localhost_mem_buffers_3.rrd的数据,指定获取的时间间隔是300秒,获取的是平均值,从下面看到已获取到数据
[root@localhost rra]# rrdtool fetch -r 300 localhost_mem_buffers_3.rrd AVERAGE
 1489837200: -nan
1489837500: -nan
1489837800: -nan
1489838100: -nan
1489838400: -nan
1489838700: 2.7524972797e+05
1489839000: -nan

7、查看绘的图,如下图所示:



三、写个监控本机TCP链接数的脚本,用Cacti实现监控

流程:
定义数据收集方法->数据模板->数据资源->图像模板->出图

1、[root@localhost ~]# vim tcpconn.sh
#!/bin/bash
#
# $1: hostname or IP
# $2: snmp community

SNMPNETSTAT=/usr/bin/snmpnetstat

ESTABLISHED=`$SNMPNETSTAT -v 2c -c $2 -Can -Cp tcp $1 | grep -i 'established' | wc -l `

echo -n "established:$ESTABLISHED"

2、把脚本复制到cacti的脚本目录里
[root@localhost ~]# cp tcpconn.sh /var/www/html/cacti/scripts/

3、配置数据收集方法:
定义方法的名称、输入类型、脚本的路径和所跟的参数等

定义输入、输出的区域

                 

可以看到数据输入方法已经加入方法列表


4、添加数据模板
定义模板的名称、数据源的名称、数据输入方法、数据聚合的方式等等


5、定义关联到主机上的数据源
定义数据模板、rrd文件路径等


6、创建图像模板
定义一些标题和模板名称等


在图像模板上添加图片

图像添加完,效果如下:


7、往设备上添加图片
定义图片模板、主机、数据源等


8、查看生成的图片


9、在图像模板上添加几个项目,用于显示当前值、最大值、平均值



在图像上可以看到几个项目已经添加到图像上


四、安装spine

1、编译安装spine

tar -zxvf cacti-spine-0.8.8h.tar.gz
cd  cacti-spine-0.8.8h
./configure --prefix=/usr/local/cacti-spine
make

报错:提示没有头文件
common.h:133:38: 错误:net-snmp/net-snmp-config.h:没有那个文件或目录
common.h:134:32: 错误:net-snmp/utilities.h:没有那个文件或目录
common.h:135:40: 错误:net-snmp/net-snmp-includes.h:没有那个文件或目录
common.h:136:33: 错误:net-snmp/config_api.h:没有那个文件或目录

解决方法:
yum install -y net-snmp-devel

重新编译安装
./configure --prefix=/usr/local/cacti-spine
make && make install

2、编辑配置文件
cd /usr/local/cacti-spine/
cp spine.conf.dist spine.conf
sed -e '/^$/d;/^#/d' spine.conf
DB_Host         localhost
DB_Database     cacti
DB_User         cactiuser
DB_Pass         huaxia
DB_Port         3306

3、测试spine安装是否正确,输出下面信息表示安装成功
/usr/local/cacti-spine/bin/spine --conf=/usr/local/cacti-spine/etc/spine.conf
SPINE: Using spine config file [/usr/local/cacti-spine/etc/spine.conf]
SPINE: Version 0.8.8h starting
SPINE: Time: 0.3763 s, Threads: 5, Hosts: 3

4、打开cacti网页
conslole->Settings->Poller
将cmd.php改为poller,并保存


Console->Settings->Paths,添加spine命令的路径并保存



五、安装setting,thold,monitor

在安装thold插件,必须先安装settings插件,后安装thold插件。因为seettigs插件提供email的相关设置,thold插件的报警功能是根据settings里的设置来决定发送邮件的。
把插件解压要插件目录里
tar  -xf  settings-v0.71-1.tgz   -C   /var/www/html/cacti/plugins
tar  -xf  thold-v0.5.0.tgz  -C  /var/www/html/cacti/plugins
tar  -xf  monitor-v1.3-1.tgz  -C  /var/www/html/cacti/plugins

打开cacti主页,Consle->Plugin Management ->将插件安装和启用,如下图所示表示已经正确的启用:


六、配置邮件告警通知

在Conlsole->setting->Mail/DNS里填写好一些信息


发送邮件测试:正常


七、设置主机宕机邮件提醒

Console->Settings->Thresholds


八、设置插件monitor显示模式



配置完成
注意:需要关闭机器上的selinux服务,并且防火墙打开的话,需放行udp的161端口

九、cacati客户端安装并配置和出图
客户端机器上
1、yum -y install net-snmp

2、编辑/etc/snmp/snmp.conf



3、启动snmp服务即可
service snmpd start

4、服务器端的配置:
Console->devices->add->添加主机

编辑箭头指向的几个选项主要是指定主机名和IP地址和主机模板等。填写完了,然后为该主机创建图像

5、点击"Create Graphs for this Host" ,添加"Graph Templates"和"Data Query"等模板并把方框勾上,这里因为已经配置完"Graph Templates"和"Data Query",所以背景显示为暗。配置完点击"Create"


6、将图像添加到"Graph Trees"里

Console->Graph Trees ->add

把"Tree Item Type"和"Host"、"Graph Grouping Style"添加下,添加完如下图所示:

7、出图,这是是监控远程客户机系统性能的几个参数











阅读(1425) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~