存档

文章标签 ‘Cacti’

change poller interval from 1m to 5m for cacti

2015年1月18日 没有评论

怎样在cacti里将抓取数据的时间由1分钟改成5分钟呢?为什么要讨论这个话题,因为我搞不定cacti的优化了,原来的1分钟抓取一次时间间隔太短,以至于现在抓取一次的时间都不止1分钟!步骤如下:
1,在Console->Settings页面里Poller标签下将Poller Interval和Cron Interval都改成“Every 5 Minutes”
2,修改系统的cron,将其调用poller.php的cron改成每5分钟一次
3,Console->System Utilities下,点击Rebuild Poller Cache,或者是

php -q /pathtocacti/cli/rebuild_poller_cache.php -d

4,修改Data Templates的step为300,heartbeat为300以上(我设的是600),这一步如果Data Templates比较多的话建议直接改库。
5,也许我操作时上一步不完美,导致rrd文件里heardbeat还是不对,虽然我曾手工删除掉所有的rrd文件,所以我又手工修改rrd文件的heartbeat,方法见这里

“PERCONA REDIS MONITORING TEMPLATE FOR CACTI”1.1的一个bug

2015年1月17日 没有评论

最近用cacti来收集redis性能数据,用的是percona的PERCONA REDIS MONITORING TEMPLATE FOR CACTI,安装完毕后发现一个问题,貌似我们提供的Port2参数不起作用!调用ss_get_by_ssh.php脚本时根本就没有传port2参数进去!!!我晕,查了半天才发现!怎么发现的呢,在redis服务器上听包,发现没有我们定制端口的包过来,反倒是有缺省端口6379上有包进来。看了下数据库,打开ss_get_by_ssh.php的调试参数,才确认根本就没有传–port2参数给脚本ss_get_by_ssh.php!!!!
知道问题所在,解决起来相对容易些,点开Console->Data Input Methods,点击Redis相关的记录进去,果然,在Input String中果然显示没有传参数–port2进去!于是把–port2参数加到合适位置,save完毕。

cacti抓取大容量硬盘分区大小时出错的问题

2015年1月11日 没有评论

最近在cacti里发现一个问题,某些机器的挂载的某个分区非常大(备份用的机器所在的数据分区,大小能不大吗),其抓回来的大小就出错了,仔细翻了翻,貌似是snmpd的问题,官方的manual里是这么写的:

realStorageUnits
controlls how the agent reports hrStorageAllocationUnits, hrStorageSize and hrStorageUsed in hrStorageTable. With this option set to '0', the agent re-calculates these values for big storage drives with small allocation units so hrStorageAllocationUnits x hrStorageSize gives real size of the storage.
Example:
Linux xfs 16TB filesystem with 4096 bytes large blocks will be reported as hrStorageAllocationUnits = 8192 and hrStorageSize = 2147483647, so 8192 x 2147483647 gives real size of the filesystem (=16 TB).

Setting this directive to '1' (=default) turns off this calculation and the agent reports real hrStorageAllocationUnits, but it might report wrong hrStorageSize for big drives because the value won't fit into Integer32. In this case, hrStorageAllocationUnits x hrStorageSize won't give real size of the storage.

于是我在/etc/snmp/snmpd.local.conf中加入一句:

realStorageUnits 0;

然后重启snmpd即可。

service snmpd restart;

mysql参数STRICT_TRANS_TABLES和cacti

2015年1月10日 没有评论

缺省在/etc/my.cnf中,mysql的参数STRICT_TRANS_TABLES是打开的,但这个会导致安装cacti的一些老插件时出问题,比如thold和weathermap。
错误表现主要是某个表不能创建什么的
原因是某个text的字段既是not null然后又还定义了default值
今天发现这个东西跟mysql的某个参数STRICT_TRANS_TABLES
直接在/etc/my.cnf中将其注释掉,重启mysql
再重新安装thold和weathermap就好了

所以,如果你的cacti0.8.8c和weathermap0.97c和thold0.5集成有问题的话
可以尝试下我的方法。

thold(plugin for cacti) is incompatible with cacti0.8.8b

2014年11月1日 没有评论

系统环境:

  • CentOS 6.5
  • MySQL 5.6
  • Cacti 0.8.8b
  • thold 0.50

问题表现:

不能添加device,create device时报错:“Error: Save Failed.”

问题解决:

问题没解决,最后把thold插件干掉了了事。

分类: Operation System 标签: ,

centos6下cacti设置ldap认证的问题及解决

2011年10月16日 没有评论

  前面这里有做cacti的ldap认证,今天又要在一台centos6的机器上配cacti的ldap认证。于是照葫芦画瓢,本以为非常简单,没想到,做完后登录时报错:“Group DN could not be found to compare”。又查apache的error_log,发现log里报:

PHP Notice: Undefined variable: ldap_group_member_type in /xxx/cacti-0.8.7g/lib/ldap.php on line 253, referer: http://xxx.xxx.xxx.xxx/cacti/index.php

google了一下,发现官方论坛已有解决方案,其实解决很简单:

vim /xxx/cacti-0.8.7g/lib/ldap.php

,将第253行

if ($ldap_group_member_type == 1) {

改成

if ($this->group_member_type == 1) {

即可。
  php报错的问题解决后,再重新ldap登录,居然OK了。看来这是php5.3的问题(原来那台centos5+php5.2的没问题)。

系统版本:
php5.3

cacti的ldap认证

2011年10月15日 没有评论

  首先需要在服务器上加上php的ldap支持。在我的机器上很简单

yum -y install php-ldap

  接着,用本地admin用户登录cacti,建一个tuser用户(用户名其实可以随便取,这里我们假设就是tuser),用来作为ldap认证登录进来的用户的模板。
  然后,进入console->Settings->Authentication页,设置:
Port StandardPort SSLProtocol VersionEncryption按照实际情况设置即可,我的正好都用缺省值就可以:)。ReferralsMode缺省值就好。下面主要写几个需要注意的配置:

Authentication Method=>LDAP Authentication
User Template=>tuser
#上面的tuser正是第一步建的用户模板
Server=>10.0.0.1
#ldap server的地址,这里假设是10.0.0.1
Distinguished Name (DN)=>uid=<username>,ou=people,dc=abcabc,dc=com
#我的ldap服务器是openldap,用户的DN都是uid=<username>,ou=people,dc=abcabc,dc=com这种形式
Require Group Membership=>checked
Group Member Attribute=>member
Group Member Type=>Distingished Name
#我们ldap里的组都是groupOfNames,所以上面两项要这样选
Search Base=>ou=people,dc=abcabc,dc=com
Search Filter=>(&(objectClass=*)(uid=<username>))

然后,save就OK了。
  最后,用ldap的帐号(uid)和密码,再选Realm为LDAP登录,即可。

注意:ldap用户登录成功后会在cacti系统建一个新用户,用户名既登录名(uid),如果需要修改某ldap用户的权限,直接在cacti里修改同名用户权限即可!

系统为cacti0.8.7g

分类: tips 标签: ,

利用cacti插件aggregate来画多台服务器的总流量图

2010年11月5日 没有评论

把多个data source落在一起画总图的办法

前面http://www.haw-haw.org/node/173有讲到

那么我需要画多台服务器的总流量图也可以用上面的方法做

而且,的确以前好多流量总图我也是那么画的

但随着服务器的越来越多;

而且服务器角色变化的越来越频繁;

还有所有服务器的流量总图的需求的提出

这一切的一切

都意味着再手工一条一条加graph item的方法逐渐过时

试想,几百上千台的服务器

你怎么一台一台的添加来画流量总图呢?

所以,要找一种快捷、方便的办法来画大量服务器的总流量图,已迫在眉睫

最早以为命令行工具add_graphs.php能有所作为

仔细看了看文档后,否定之

后来又想要不直接写数据库呢?

研究了下,感觉这个方法还是可行

就是稍稍比较复杂

没再研究下去,为什么呢

因为找到了更懒的办法:插件aggregate

首先,是插件aggregate的安装

去官网把最新版下下来,在写本文的时候最新版是0.75

解压放到cacti主目录下的plugins目录下

结构类似这样:plugins/aggregate/

然后再登录cacti,在plugin management里将aggregate模块儿安装,并激活(enable)

这样就安装完毕了

需要注意的是:0.75这个版本最好在cacti0_0.8.7g的版本下跑

我一开始使用cacti 0.8.7e(plugin architecture 2.6)的时候

安装启用都没问题

但是这个插件aggregate就是不能正常工作

后来升级到cacti 0.8.7g+plugin architecture 2.8后便没问题了

这里插件aggregate的使用也非常简单

首先,点击table的“console”,然后左边栏的”Graph Management”

再在右边的Template中选“Interface – Traffic (bits/sec)”、search框中填”eth1″(因为我们的公网网卡都在eth1上),然后把“Rows per pages”的值放大以便于一页显示更多的内容

再点击“GO”按钮

这样

基本上所有机器的eth1的流浪数据就都出来了

我们再把自己需要的图选出来(我则是先点“全选”,再剔除掉不需要的图)

再在下面的下拉列表框“Choose an action:”中选“Create Aggregate Graph”,再点Go按钮

就进入聚合图的设置页面

在Title栏填入新图的标题(比如”Aggregate – Total Traffic for xxxxx“);

Prefix填”|query_ifIP|

Totaling选”Print all Legent items“;

下面的total type选”Total Similar Data Sources“;

record type选“Data source,graph

在下面的“Graph Template Items”中把Inbound的数据勾上Skip选项

(因为我们不关心入流量,仅关心出流量)

把Outbound都勾上Total选项

再在Color Template中选一种颜色的方案

最后再点右下角“Continue”

这个流量总图也就创建完毕了

cacti+thold环境下查某台机器的thold的联系人信息的sql语句

2010年10月10日 没有评论

有需求要更改某一台服务器的thresholds的(报警)联系人信息

当然,如果是新机器

这里所提到的直接在库里添加就好

如果是老服务器

最好需要看一下原来的(报警)联系人是谁

于是就有了以下的sql语句

首先敲入mysql命令连上mysql

然后use cacti来使用cacti数据库

最后再用sql语句:

select plugin_thold_threshold_contact.thold_id as thold_id, plugin_thold_threshold_contact.contact_id as contact_id, user_auth.username as username, user_auth.full_name as full_name from user_auth, plugin_thold_contacts, plugin_thold_threshold_contact where plugin_thold_threshold_contact.contact_id = plugin_thold_contacts.id and plugin_thold_contacts.user_id = user_auth.id and thold_id in (select thold_data.id as thold_id from thold_data, host where thold_data.host_id = host.id and host.hostname = ‘10.10.10.10’);

来查ip地址是10.10.10.10的thresholds的报警联系人信息。

命令行添加device到cacti系统的例子

2010年5月6日 没有评论

在cacti系统所在服务器上
假设其主目录在/path/cacti
要添加的device的ip分别为a.a.a.a、b.b.b.b和c.c.c.c

cd /path/cacti/cli
for i in a.a.a.a b.b.b.b c.c.c.c;do
php add_device.php –template=9 –community=xxxxxxxxxxx –description=”$i” –ip=$i –avail=snmp –version=2
done

这上面还两个假设
一,就是假设添加device用的host template的id是”9″
如果不确定要用哪个
可以用命令
php add_device.php –list-host-templates
查看
二,就是communitie是”xxxxxxxxxxx”

三,version=2 是指用snmp的协议版本2

分类: tips 标签: , , ,