使用 Cacti 监控 Linux 主机

一、准备工作

环境:Centos 5.6

所需软件:

http

Php

Php-mysql

Php-snmp

Mysql

Perl-DBD-MySQL

Php-pdo

rrdtool

Net-snmp

Net-snmp-libs

Net-snmp-utils

#下载相关软件

cd /usr/local/src/

wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz

二、环境介绍

主监控机是Centos 5.6

主监控机IP=192.168.0.61

三、安装配置

(1)在主监控机上安装apache+php+gd的web环境,推荐编译安装,不再赘述,本处方便起见用yum装了

yum install  http php php-mysql php-snmp mysql mysql-server net-snmp net-snmp-libs net-snmp-utils php-pdo perl-DBD-MySQL

(2)在主监控机上安装rrdtool,rrdtool依赖的包过多,所以选择增加源,然后用yum安装

安装rrdtool  rrdtool rrdtool-devel rrdtool-php

服务器下载下来然后使用一下命令

yum localinstall --nogpgcheck

(3)配置snmp

vi /etc/snmp/snmp.conf

#将下边这行中的default

com2secnotConfigUser default public

#改为127.0.0.1

com2secnotConfigUser 127.0.0.1 public

#将下边这行中的systemview

access notConfigGroup "" any noauth exact systemview none none

#改为all

access notConfigGroup "" any noauth exact all none none

#将下边这行的注释“#”号去掉

#view all included .1 80

service snmpd restart

(4)安装cacti

#把解压后的包移动到你的相应的web目录

tar xvf cacti-0.8.7e.tar.gz

mv cacti-0.8.7e /var/www/html/cacti

(5)在数据库中建库、授权、导入数据库结构

#注意导入cacti.sql时该文件的路径

mysql -p

mysql> create database cacti;

mysql> grant all privileges on cacti.* to [email protected] identified by ‘cacti‘ with grant option;

mysql> grant all privileges on cacti.* to [email protected] identified by ‘cacti‘ with grant option;

mysql> use cacti;

mysql> source /var/www/html/cacti/cacti.sql;

#配置cacti以连接数据库

vi /var/www/html/cacti/include/config.php

(6)浏览器下配置

#用浏览器打开 http://192.168.0.61/cacti ,会显示 cacti的安装指南,设置好就不会再出现了。

#点击 “Next”

#选择“New Install”,点击“Next”

#指定 rrdtool、 php、 snmp 工具的 Binary 文件路径,确保所有的路径都是显示“ FOUND”,没有 “NOT FOUND”的,点击 Finish 完成安装。

#Cacti 默认的用户名与密码是 admin,输入用户名与密码,点击 login

#为了安全的原因,第一次登录成功后,cacti 会强制要求你更改一个新的 password ,输入新密码并确认密码,点击 save ,进入 cacti 控制台界面:

#点击 graphs ,查看cacti 监控本机的图表:

(7)增加入一个计划任务,使得 cacti 每五分钟生成一个监控图表。

crontab -e

#加入如下内容。注意poller.php的路径

*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1

#确保 /var/www/html/cacti/rra/目录存在

#如果暂时未看到图表,可以手工执行,生成图表

#php /var/www/html/cacti/poller.php > /dev/null 2>&1

(8)使用 Cacti 监控 Linux 主机

#在被监控的linux主机上安装net-snmp

yum install net-snmp

vi /etc/snmp/snmpd.conf

#更改以下部分

#将下边这行中的default

com2secnotConfigUser default public

#改为10.0.0.52(cacti)服务器的地址)

com2secnotConfigUser 10.0.0.52 public

#将下边这行中的systemview

access notConfigGroup "" any noauth exact systemview none none

#改为all

access notConfigGroup "" any noauth exact all none none

#将下边这行的注释“#”号去掉

#view all included .1 80

service snmpd restart

(9)如果出现问题请注意一下snmp协议的版本,都用version 1是一种解决方法

如果都用version 1,需要把所有监控机和被监控机的snmpd.conf改一下

#vi /etc/snmp/snmpd.conf

#将下边这行

view systemview included .1.3.6.1.2.1.1

#改为

view systemview included .1.3.6.1.2.1

二、cacti常用插件安装

要安装别的插件前,先要安装cacti的一个patch--Plugin Architecture,才能支持插件

PA 2.8 = cacti 0.8.7g

# tar xvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz

# cp -R cacti-plugin-arch/* /var/www/html/cacti/

cd /var/www/html/cacti/

mysql -ucacti -pcacti cacti <pa.sql

patch -p1 -N <cacti-plugin-0.8.7g-PA-v2.8.diff

vi include/config.php

修改为$url_path = “/cacti/”;

登陆,启用PA。

安装常用插件

Monitor,Settings,thold

# tar zxvf monitor-latest.tgz

# tar zxvf settings-latest.tgz

# tar zxvf thold-latest.tgz

# mv monitor-0.9/ /var/www/cacti/plugins/monitor

# mv settings-0.6/ /var/www/cacti/plugins/settings

# mv thold-0.41/ /var/www/cacti/plugins/thold

登陆安装启用对应的插件即可。

六、常见故障排除

安装完毕在浏览器上无法看到数据的png图片。看apache的log

如果出现:

========================

[Thu Feb 09 15:12:24 2006] [error] [client 127.0.0.1] File does not exist: /var/www/html/favicon.ico

ERROR: opening ‘/var/www/html/cacti/rra/localhost_mem_buffers_3.rrd‘: Permission denied

PS:解决办法:关闭selinux,即可解决问题。

PS:以上无法获取数据图大多和poller.php,cmd.php权限有关。

当cacti 有图没有数据时,而且状态为nan的错误

PS:这个很可能是snmp的问题,执行以下命令,没有得到如图的结果。就说明snmp不支持64位MIB库。重新编译安装snmp

# snmpwalk -c public -v 2c 127.0.0.1 IF-MIB::ifHCInOctets

IF-MIB::ifHCInOctets.1 = Counter64: 7437357

IF-MIB::ifHCInOctets.2 = Counter64: 353773IF-MIB::ifHCInOctets.3 = Counter64: 0

PS:被监控主机无法获得snmp信息,还有可能是对方主机snmp版本和当前主机的snmp版本不一致导致的。

PS:rrdtools版本要一致,特别是在升级cacti时候。版本不一致,可能rra数据格式不同。就无法处理。

排错思路

1,查看log下的日志文件。一般那里会有提示

2,测试SNMP是不是工作正常 snmpwalk -v 2c -c public hostIP   if正常的话会出现一些数据。不正常会出现一些错误,也会有对应的错误提示。

3,自动运行poller.php没有。有没有加入cacti的的用户。。有没有给cacti用户写入rra/ log/的权限。。

4,crontab –u cactiuser –e 为cactiuser加上自动运行poller.php的任务:*/5     *       *       *       *       root    /usr/local/bin/php /usr/local/share/cacti/poller.php /dev/null 2>&1

5分钟刷新一次数据。你也可以根据需要还设置。

5。把cacti目录里的cmd.php和poller.php文件加下运行的权限。

=

脚本下载以及设置

wget http://mysql-cacti-templates.googlecode.com/files/mysql-cacti-templates-1.1.2.tar.gz

tar -xzvf mysql-cacti-templates-1.1.2.tar.gz

cd mysql-cacti-templates-1.1.2

cp ss_get_mysql_stats.php /xok.la/cacti/scripts

可以看到里面有多个监控项目,报告监控apache和nginx.我这只测试mysql,mysql相关的就2个文件:

模板文件:cacti_host_template_x_db_server_ht_0.8.6i.xml

插件:ss_get_mysql_stats.php

修改ss_get_mysql_stats.php 文件 第30行

$mysql_user = ‘cacti‘;

$mysql_pass = ‘cacti‘;

$cache_dir  = "var/www/html/cacti/cache/";

设置准备监控的数据库的账户相关信息

mkdir /xok.la/cacti/cache/

chmod 777 -R /xok.la/cacti/cache/

默认在获取的数据/tmp/下,会有cacti不能读取的情况。所以放在cacti目录来。

二,创建监控Mysql需要的账户以及权限

配置MySQL服务器,让cacti所在机器能够访问MySQL服务器的状态信息,必须拥有”process”权限。如果要监控InnoDB状态,还必须有”SUPER”权限。

mysql> grant process,super on *.* to ‘cacti‘@‘%‘ identified by ‘cacti‘;

mysql> grant all privileges on cacti.*  to [email protected]"%" identified by "cacti";

三,模板导入

在cacti管理界面(Import Templates)导入cacti_host_template_x_db_server_ht_0.8.6i.xml。

四,添加设备

创建Graph。在Console选项卡下的左侧菜单栏中选择Devices,为要监控的主机新建一个Devices或选择已有Devices。

在Associated Graph Templates中添加想要监控MySQL状态的Graph Templates(如X MySQL Connections GT模板)。

并点击最上面的Create Graphs for this Host链接,在Graph Templates的选择框中选择X MySQL Connections GT,然后点击Create按钮,出现以下WEB页。

时间: 2024-10-28 21:30:10

使用 Cacti 监控 Linux 主机的相关文章

Cacti监控Linux主机

1 要监视一台Linux主机,需要在被监控的主机上安装net-snmp相关软件包,CentOS安装可使用“yum -y install net-snmp”命令:# yum -y install net-snmpSetting up Install ProcessSetting up repositoriesReading repository metadata in from local filesParsing package install argumentsResolving Depend

cacti监控windows主机报错:SNMP Information SNMP error

我用Linux做cacti监控服务器监控windows主机时出现以下错误,自己检查windows主机的SNMP端口正常,防火墙也正常关闭,用snmpwalk命令也报错.自己百度和谷歌终于找到解决问题的,希望有朋友遇到过这种类型的错误快速解决. 1.错误如下: 2.检查windows主机的端口和防火墙 3.在Linux服务器上用snmpswak命令提示错误 4.解决问题(是因为windows主机的SNMP服务没有"接受团体名称") 5.测试正常 cacti监控windows主机报错:SN

Monitorix监控Linux主机图文详解

Monitorix监控Linux主机图文详解 Monitorix简介 Monitorix 是一款自由开源的轻巧型系统监视工具.使用 Monitorix你可以随时掌控 CPU 负载及温度.内存占用.活动进程.磁盘使用及温度.网络设备流量.网络服务等全方位的系统信息.Monitorix 需要 Apache Web 服务器来显示这些系统信息图表.所以它特别适合在 Linux 服务器上面使用. 下面是我安装的步骤 1.安装的环境和需要的rpm包 我是在CentOS 6.4下面安装的CentOS 5可以使

Nagios利用NRPE监控Linux主机(3)

一.利用NRPE监控远程Linux的"本地信息" 上面已经对远程Linux 主机是否存活做了监控,而判断远程机器是否存活,我们可以使用ping 工具对其监测.还有一些远程主机服务,例如ftp.ssh.http,都是对外开放的服务,即使不用Nagios,我们也可以试的出来,随便找一台机器看能不能访问这些服务就行了.但是对于像磁盘容量,cpu负载这样的"本地信息",Nagios只能监测自己所在的主机,而对其他的机器则显得有点无能为力.毕竟没得到被控主机的适当权限是不可能

cacti监控linux主机时iptables阻碍了udp161端口造成无法监控解

由于在添加linux主机时,有防火墙启用,造成无法监控linux主机,现有两种方法解决无法监控linux主机问题:可以通过在监控主机执行该命令: snmpwalk -c public -v 2c 192.168.100.244   表示能够接收到被监控机器的数据信息 一,及时生效,不过重启服务器还得再次添加给规则iptables -I INPUT -p udp --dport 161 -j ACCEPT 二,永久生效在vi /etc/sysconfig/iptables添加-A INPUT -p

Zabbix监控Linux主机设置

说明: Zabbix监控服务端已经配置完成,现在要使用Zabbix对Linux主机进行监控. 具体操作: 以下操作在被监控的Linux主机进行,这里以CentOS 6.x系统为例. 一.配置防火墙,开启10050.10051的TCP和UDP端口 vi /etc/sysconfig/iptables #编辑防火墙配置文件 -A INPUT -s 192.168.21.127 -m state --state NEW -m tcp -p tcp --dport 10050:10051 -j ACCE

Cacti监控Windows主机,Windows主机的正确配置

使用cacti监控Windows主机的时候经常遇到无法获取Windows主机的snmp信息和Windows主机的硬件信息,主要原因是Windows主机没有正确配置snmp,以下是正确的配置步骤:1.安装snmp服务控制面板 -> 添加删除程序 -> 添加/删除windows组件 -> 管理和监视工具 -> 简单网络管理协议(SNMP)2.配置snmp服务管理工具 -> 服务 -> SNMP Service -> 安全 -> 接受团体名称 添加public,这

Nagios利用NRPE监控Linux主机

一.简介 1.NRPE介绍 NRPE是Nagios的一个功能扩展,它可在远程Linux/Unix主机上执行插件程序.通过在远程服务器上安装NRPE插件及Nagios插件程序来向Nagios监控平台提供该服务器的本地情况,如CPU负载,内存使用,磁盘使用等.这里将Nagios监控端称为Nagios服务器端,而将远程被监控的主机称为Nagios客户端. Nagios监控远程主机的方法有多种,其方式包括SNMP,NRPE,SSH,NCSA等.这里介绍其通过NRPE监控远程Linux主机的方式. NRP

Cacti监控ESXI主机步骤详解

需求: 公司需要监控esxi私用机器的性能,并配置一些阈值报警等需求,最后选择用Cacti(zabbix也可以),首先需要打开esxi的snmp功能, 但ESXi中的SNMP不支持GET,支持TRAP.因此不可以用GET方法获取ESXi的SNMP信息.不同版本esxi可能略有不同,但是大致思路相同大致步骤如下: 1.使用ssh登陆ESXi主机:(比较简单,可查看我的博客三种方式开启esxi的ssh,注意开启配置完毕后关闭) 2.切换至/etc/vmware/目录 vi打开snmp.xml ~ #