存档

文章标签 ‘cacti’

cacti上监控mysql状态

2011年4月9日 没有评论

转自:http://blog.appleandroid.com/post/46/

环境 cacti-0.87d-cn
mysql-5.1.39
插件 mysql-cacti-templates-1.1.2.tar.gz
一,脚本下载以及设置

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 /usr/local/apache2/htdocs/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 = ‘123123’;
$cache_dir  = “/usr/local/apache2/htdocs/cacti/cache/”;
设置准备监控的数据库的账户相关信息
mkdir /usr/local/apache2/htdocs/cacti/cache/
chown -R cache:cacti /usr/local/apache2/htdocs/cacti/cache/
chmod 777 /usr/local/apache2/htdocs/cacti/cache/
默认在获取的数据/tmp/下,会有cacti不能读取的情况。所以放在cacti目录来。
二,创建监控Mysql需要的账户以及权限
配置MySQL服务器,让cacti所在机器能够访问MySQL服务器的状态信息,必须拥有”process”权限。如果要监控InnoDB状态,还必须有”SUPER”权限。
mysql> grant process,super on *.* to ‘cacti’@’%’ identified by ‘123123’;
mysql> grant all privileges on cacti.*  to cacti@”%” identified by “123123”;
三,模板导入
在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页。
监控的对象有:
X InnoDB Buffer Pool Activity GT
X InnoDB Buffer Pool GT
X InnoDB I/O GT
X InnoDB I/O Pending GT
X InnoDB Insert Buffer GT

X InnoDB Log GT
X InnoDB Row Operations GT
X InnoDB Semaphores GT
X InnoDB Transactions GT
X MyISAM Indexes GT
X MySQL Binary/Relay Logs GT
X MySQL Command Counters GT
X MySQL Connections GT
X MySQL Files and Tables GT

X MySQL Handlers GT
X MySQL Network Traffic GT
X MySQL Processlist GT
X MySQL Query Cache GT
X MySQL Query Cache Memory GT
X MySQL Replication GT
X MySQL Select Types GT
X MySQL Sorts GT
X MySQL Table Locks GT

X MySQL Temporary Objects GT
X MySQL Threads GT
X MySQL Transaction Handler GT

见图:
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片

cacti 监控磁盘使用率并报警方法

2011年4月2日 没有评论

cacti本身的模板只可以监控硬盘的使用大小,而不能监控使用百分率,所以我们要自定义cdef来监控硬盘使用率,并借助thold插件实现报警功能.网上找的资料都是在cacti.0.8.6版上实现的,而我用的是cacti.0.8.7版.注意:要使用thold插件,需要打补丁:http://cactiusers.org/downloads/cacti-plugin-arch.tar.gz

安装插件:settings,thold

因此,根据实际情况做如下改动:

在cacti目录下,vi include/global_arrays.php
搜索custom_data_source_types,修改这一段如下:

注意,我们是加一行,并修改了Graph: Upper Limit这一行.将

改成了

加的一行是:

看清楚了吗?

在cacti界面的Graph Management-cdefs新建cdef模块,名字自己起,添加字段如下:

也就是说

这样就可以在Threshold Templates里面添加监控硬盘的模块了,我添加的是Host MIB – Hard Drive Space ,最后在Threshold CDEF里面选择刚自定义的cdef,这样就可以正常监控硬盘使用率了.

我们进入 Devices – 选择需要磁盘监控的主机,点进去,在出来的页面的顶部 打开 Create Graphs for this Host ,再在新出来的页面顶部打开Auto-create thresholds即可应用模块了.

需要做的是,监控的主机要设置监控磁盘,如Data Query [SNMP – Get Mounted Partitions] 要选上,不然thold取不到数据的.

cacti监控nginx图解

2011年4月1日 1 条评论

Cacti或者是Cactiez监控主机:192.168.12.5

Nginx服务器:192.168.16.5

1、 首先nginx编译时允许http_stub_status_module,不然是监控不到nginx的运行状态的

2、编辑配置文件

# vi /usr/local/nginx/conf/nginx.conf
location /stub_status/ {
stub_status on;
access_log off;
allow 192.168.0.0/16;#意思是只允许内网能看到监控信息
deny all;
}

3、重新加载nginx的配置文件

# kill -HUP cat /usr/local/nginx/logs/nginx.pid

4、在Cacti主机上下载nginx监控模板

# wget http://forums.cacti.net/download.php?id=12676
# tar xvfz cacti-nginx.tar.gz
# cp cacti-nginx/get_nginx_socket_status.pl /data/cacti/scripts/
# cp cacti-nginx/get_nginx_clients_status.pl /data/cacti/scripts/
# chmod 755 /data/cacti/scripts/get_nginx*

5、检测插件
# /data/cacti/scripts/get_nginx_clients_status.pl http://192.168.9.25/NginxStatus/

输出信息:nginx_active:245 nginx_reading:11 nginx_writing:4 nginx_waiting:230

/data/cacti/scripts/get_nginx_socket_status.pl http://192.168.9.25/NginxStatus/

输出信息:nginx_accepts:41377 nginx_handled:41377 nginx_requests:223307

6、在cacti管理面板导入
cacti_graph_template_nginx_clients_stat.xml
cacti_graph_template_nginx_sockets_stat.xml

7、添加主机,在创建图形的时候会提示你输入URL of nginx stub status,后面你所监控的页面额url,比如上面我们的http://192.168.9.25/NginxStatus/,然后稍等下数据就会出来了。

8、如果你在测试第5步的过程中出现了以下信息:no (LWP::UserAgent not found),出现这个问题是perl里缺少组件,你可以按照下面的步骤解决:

# perl -MCPAN -e shell
# cpan> install LWP::UserAgent

如果perl组件安装成功,那么在此检测你就会得到正常的数据了。

 

注意:在创建主机过程中,

cacti监控nginxcacti监控nginxcacti监控nginx

nagios配置详解

2011年3月22日 没有评论

主配置文件 nagios.cfg 需要更改的地方:
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
interval_length=1 ; 间隔时间基准由 60s 改为 1s
command_check_interval=10s ; 命令检查时间间隔,-1 表示尽可能频繁的进行检查
date_format=iso8601 ; 日期格式

objects/contacts.cfg 用来定义联系人:

define contact {
contact_name sa
alias System Administrator
service_notification_period 24×7
host_notification_period 24×7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email admin@test.com
}

再定义联系人组

define contactgroup {
contactgroup_name admins
alias Administrator Group
members sa    ; 添加其它联系人用 “,” 分隔
}

 

主机监控的配置

define host {
host_name host_name    ; 简短的主机名称。
alias alias    ; 别名,可以更详细的说明主机。
address address    ; IP 地址,也可以写主机名。如果不定义这个值, nagio 将会用 host_name 去寻找主机。
parents host_names    ; 上一节点的名称,也就是指从 nagios 服务器到被监控主机之间经过的节点,可以是路由器、交换机、主机等等。
hostgroups hostgroup_names    ; 简短的主机组名称。
check_command command_name    ; 检查命令的简短名称,如果此项留空, nagios 将不会去判断主机是否 alive 。
max_check_attempts 整数    ; 当检查命令的返回值不是 “OK” 时,重试的次数。
check_interval 数字    ; 循环检查的间隔时间。
active_checks_enabled [0/1]    ; 是否启用 “active_checks”
passive_checks_enabled [0/1]    ; 是否启用 “passive_checks” ,及“被动检查”
check_period timeperiod_name    ; 检测时间段简短名称,这只是个名称,具体的时间段要写在其他的配置文件中。
obsess_over_host [0/1]    ; 是否启用主机操作系统探测。
check_freshness [0/1]    ; 是否启用 freshness 检查。freshness 检查是对于启用被动检查模式的主机而言的,其作用是定期检查主机报告的状态信息,如果该状态信息已经过期,freshness 将会强制做主机检查。
freshness_threshold 数字     ; fressness 的临界值,单位为秒。 如果定义为 “0” ,则为自动定义。
event_handler command_name    ; 当主机发生状态改变时,采用的处理命令的简短的名字(可以在 commands.cfg 中对其定义)
event_handler_enabled [0/1]    ; 是否启用 event_handler
low_flap_threshold 数字    ; 抖动的下限值。抖动,即在一段时间内,主机(或服务)的状态值频繁的发生变化。
high_flap_threshold 数字   ; 抖动的上限值。
flap_detection_enabled [0/1]    ; 是否启用抖动检查。
process_perf_data [0/1]    ; 是否启用 processing of performance data
retain_status_information [0/1]    ; 程序重启时,是否保持主机状态相关的信息。
retain_nonstatus_information [0/1]    ; 程序重启时,是否保持主机状态无关的信息。
contact_groups contact_groups    ; 联系人组,在此组中的联系人都会收到主机的提醒信息。
notification_interval 整数    ; 重复发送提醒信息的最短间隔时间。默认间隔时间是 “60” 分钟。如果这个值设置为 “0” ,将不会发送重复提醒。
notification_period timeperiod_name   ; 发送提醒的时间段。非常重要的主机(服务)定义为 24×7 ,一般的主机(服务)就定义为上班时间。如果不在定义的时间段内,无论发生什么问题,都不会发送提醒。
notification_options [d,u,r,f]    ; 发送提醒包括的情况: d = 状态为 DOWN , u = 状态为 UNREACHABLE , r = 状态恢复为 OK , f = flapping
notifications_enabled [0/1]    ; 是否开启提醒功能。”1″ 为开启,”0″ 为禁用。一般,这个选项会在主配置文件 (nagios.cfg) 中定义,效果相同。
stalking_options [o,d,u]    ; 持续状态检测参数,o = 持续的 UP 状态 , d = 持续的 DOWN 状态 , u = 持续的 UNREACHABLE 状态
}

服务监控的配置

define service {
host_name host_name
service_description service_description
servicegroups servicegroup_names
is_volatile [0/1]
check_command command_name
max_check_attempts
normal_check_interval
retry_check_interval
active_checks_enabled [0/1]
passive_checks_enabled [0/1]
check_period timeperiod_name
parallelize_check [0/1]
obsess_over_service [0/1]
check_freshness [0/1]
freshness_threshold
event_handler command_name
event_handler_enabled [0/1]
low_flap_threshold
high_flap_threshold
flap_detection_enabled [0/1]
process_perf_data [0/1]
retain_status_information [0/1]
retain_nonstatus_information [0/1]
notification_interval
notification_period timeperiod_name n
otification_options [w,u,c,r,f]
notifications_enabled [0/1]
contact_groups contact_groups
stalking_options [o,w,u,c]
}

服务监控的配置和主机监控的配置较为相似,就不一一说明了。

间隔时间的计算方法为:
normal_check_interval x interval_length 秒
retry_check_interval x interval_length 秒
notification_interval x interval_length 秒

主机监控配置的例子

define host {
host_name web1
alias web1
address 192.168.0.101
contact_groups admins
check_command check-host-alive
max_check_attempts 5
notification_interval 0
notification_period 24×7
notification_options d,u,r
}

对主机 web1 进行 24×7 的监控,默认会每 10 秒检查一次状态,累计五次失败就发送提醒,并且不再重复发送提醒。

服务监控配置的例子

define service {
host_name web1
service_description check_http
check_period 24×7
max_check_attempts 3
normal_check_interval 30
contact_groups admins
retry_check_interval 15
notification_interval 3600
notification_period 24×7
notification_options w,u,c,r
check_command check_http
}

配置解释: 24×7 监控 web1 主机上的 HTTP 服务,检查间隔为 30 秒, 检查失败后每 15 秒再进行一次检查,累计三次失败就认定是故障并发送提醒。
联系人组是 admins 。提醒后恢复到 30 秒一次的 normal_check_interval 检查。如果服务仍然没有被恢复,每个小时发送一次提醒。

如果要检测其他服务,例如,要检查 ssh 服务是否开启,更改如下两行:
service_description check_ssh
check_command check_ssh

为方便管理,对配置文件的分布做了如下修改:
nagios.cfg 中增加了:
cfg_dir=/usr/local/nagios/etc/hosts
cfg_dir=/usr/local/nagios/etc/services

在 hosts 目录中,为不同类型的主机创建了配置文件,如: app.cfg cache.cfg mysql.cfg web.cfg
并创建了 hostgroup.cfg 文件对主机进行分组,如:

define hostgroup {
hostgroup_name app-hosts
alias APP Hosts
members app1,app2
}

在 services 目录中创建了各种服务的配置文件,如: disk.cfg http.cfg load.cfg mysql.cfg
并创建了 servicegroup.cfg 文件对服务进行分组,如:

define servicegroup {
servicegroup_name disk
alias DISK
members cache1,check_disk,cache2,check_disk
}
分类: monitor 标签: ,

nagios中文版安装详解

2011年3月21日 没有评论

我友博客-nagios监控系统

1.关闭selinux

2.安装httpd php mysql 等基础环境软件

3.加载json模块

4.建立nagios账号
/usr/sbin/useradd nagios
创建一个用户组名为nagcmd用于从Web接口执行外部命令。将nagios用户和apache用户都加到这个组中。

5.编译与安装nagios

自启动配置

6.cgi脚本权限配置

7.编译并安装nagios插件 nagios‐plugins

8.nrpe安装

vi /etc/services
加入以下:

9.启动xinetd服务

10.nrpe测试

11.web页面访问测试

http://ip/nagios

分类: monitor, nagios 标签: ,

cacti中spine安装配置详解

2011年3月17日 没有评论
最近装了台server用来对网络设备进行准实时监控
系统组成
Centos5.2
mysql -4.1.22
php-4.6.4
apache2.1.2
 
cacti 0.8.7d
rrdtool 1.0.5 为什么还使用1.0.5呢,主要是这个版本集成了很多库,安装调试方便,而只是生成的图稍微颗粒点,没有多大的关系。
NET-snmp5.1.22
spine-0.8.7c
本来不打算安装spine的,就使用cmd.php来完成数据采集,可是后来发现cmd.php采集存在很大的延迟,执行效率太低了。两厢比较了一下,从添加device好到设备up,spine只需要不到一分钟,而cmd等的时间较长,超过10分钟。
当设备down后 2分钟之内spine可以发出alert,而cmd可能需要10分钟以上。
所以还是要使用spine
=========================
顺便一提:最近因为搞这个监控,找来找去到最后发现cacti的报警使用移动的邮箱最好了! 139的邮箱现在提供“邮件到达通知”而且是免费的,只要有邮件到达,就会有一个短消息给你。
2009年3月份139邮箱升级后,邮件到达通知可以有好多选择,支持超长短信了。把接受到的邮件主题和内容作为短信发送给你,长度达到350个字符!
 
使用139邮箱,实现cacti实时报警发送sms的很有效途径,我觉得比网络上现在那些所谓的pushmail及时、准确多了。关键是不用花钱!!
=========================
 
下载的是cacti-spine-0.8.7c
tar -zxvf ./tools/cacti-spine-0.8.7c.tar.gz 按照install文档执行之!
[root@mycentos52 cacti-spine-0.8.7c]# aclocal
[root@mycentos52 cacti-spine-0.8.7c]# libtoolize –force
Using AC_PROG_RANLIB' is rendered obsolete by AC_PROG_LIBTOOL’
Putting files in AC_CONFIG_AUX_DIR, `config’.
[root@mycentos52 cacti-spine-0.8.7c]# autoconf
[root@mycentos52 cacti-spine-0.8.7c]# autoheader
[root@mycentos52 cacti-spine-0.8.7c]# automake
[root@mycentos52 cacti-spine-0.8.7c]# ./configure
-bash: ./configure: Permission denied
[root@mycentos52 cacti-spine-0.8.7c]# chmod 755 configure
[root@mycentos52 cacti-spine-0.8.7c]# ./configure
checking build system type… i686-redhat-linux-gnu
checking host system type… i686-redhat-linux-gnu
checking for a BSD-compatible install… /usr/bin/install -c
checking for mysql_init in -lmysqlclient_r… no
configure: error: MySQL libraries not found
下载 mysql的共享包
检查安装位置:
rpm -qlp  MySQL-shared-standard-4.1.22-0.rhel4.i386.rpm
/usr/lib/libmysqlclient.so
/usr/lib/libmysqlclient.so.15
/usr/lib/libmysqlclient.so.15.0.0
/usr/lib/libmysqlclient_r.so
/usr/lib/libmysqlclient_r.so.15
/usr/lib/libmysqlclient_r.so.15.0.0
/usr/lib/libndbclient.so
/usr/lib/libndbclient.so.2
/usr/lib/libndbclient.so.2.0.0
执行安装:
[root@mycentos52 tools]# rpm -ivh MySQL-shared-standard-4.1.22-0.rhel4.i386.rpm
Preparing…                ########################################### [100%]
   1:MySQL-shared-standard  ########################################### [100%]
查看:
[root@mycentos52 tools]# cd /usr/lib
[root@mycentos52 lib]# ls libmysql*
libmysqlclient_r.so     libmysqlclient_r.so.14.0.0  libmysqlclient.so.14
libmysqlclient_r.so.14  libmysqlclient.so           libmysqlclient.so.14.0.0
[root@mycentos52 lib]#
执行spine的编译:
[root@mycentos52 cacti-spine-0.8.7c]#./configure
checking for mysql_thread_init in -lmysqlclient_r… yes
configure: error: Cannot find SNMP headers.  Use –with-snmp= to specify non-default path.
提示snmp的目录没有发现,指定自己安装的snmp的目录后再进行编译
[root@mycentos52 cacti-spine-0.8.7c]# ./configure –with-snmp=/usr/local/net-snmp/ 
checking if UCD-SNMP needs crypto support… no
checking if Net-SNMP needs crypto support… yes
checking for snmp_timeout in -lnetsnmp… yes
checking for the spine results buffer size… 1024 bytes
checking for the maximum simultaneous spine .s… 20
checking for the maximum MySQL buffer size… 65536
checking whether we are using nifty popen… no
checking for glibc gethostbyname_r… yes
checking for Solaris/Irix gethostbyname_r… no
checking for HP-UX gethostbyname_r… no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config/config.h
config.status: executing depfiles commands
编译成功了!
下面 make;make install
将产生spine的安装目录[root@mycentos52 spine]#pwd
/usr/local/spine
[root@mycentos52 spine]#cp ./etc/spine.conf.dist ./spine.conf 建立spine的配置文件
[root@mycentos52 etc]# vi spine.conf
检查数据库名、用户名等
试着运行spine看行不行?、
 ./spine
SPINE: Using spine config file [spine.conf]
MYSQL: Connection Failed: Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
11/02/2007 04:02:51 PM – SPINE: Poller[0] FATAL: Connection Failed: Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2) (Spine init)
google问题,最后
在/var/lib/ 下建立mysql文件夹
[root@monitor mysql]# pwd
/var/lib/mysql
[root@monitor mysql]#
[root@monitor mysql]# ln -s /tmp/mysql.sock  /var/lib/mysql/mysql.sock
产生一个mysql.sock 的文件。 和tmp目录下的连接起来。 tmp下的mysql.sock 是安装mysql的时候产生的,而/var/lib/mysql/mysql.sock ln产生的。
然后
[root@mycentos52 bin]# ./spine
SPINE: Using spine config file [../etc/spine.conf]
SPINE: Version 0.8.7c starting
SPINE: Time: 2.8546 s, Threads: 1, Hosts: 5
[root@mycentos52 bin]#
不知道spine的conf文件是怎么回事,一定要到/var/lib/mysql/下去找mysql.sock 这个文件。也不知道怎么调整。所以就做了这么个ln来解决。

cacti中的配置

修改Cacti配置

Console -> Cacti Settings->Paths->Spine Poller File Path
填入cacti-spine安装路径
/usr/local/spine/bin/spine
我友博客
修改Cacti使用的Poller Type
Console -> Cacti Settings->Poller->Poller Type
在下拉中选择spine
我友博客

nagios和cacti整合-实测

2011年3月8日 没有评论

这里nagios和cacti的安装我就不作讲解,主要是ndoutils和pnp的安装过程。

json模块的安装,这里参考本博客

ndoutils-1.4b安装
这个软件其实是将Nagios的配置及监控信息存储到数据库里,NPC通过调用ndo所存储的数据来展
现Nagios的信息 下载ndoutils-1.4b7.tar.gz,我试过ndoutils-1.4b9.tar.gz遇到几次挫折,没配
置成功,我就换这个版本。

依照自己安装的mysql-lib和mysql-inc指定它的目录,我的mysql是yum安装的,所有路径是默认
路径。如果configure没有任何错误信息,就可以make一下,make后我们仅需要它的部分文件。
执行make来进行编译
编译完成后(不需要make install)

进入 ndoutils-1.4b7/src目录<以下为ndo的执行文件>

进入 ndoutils-1.4b7/config目录<以下为ndo的配置文件>

配置ndo2db.cfg

以上为需要根据自己的实际情况配置的信息,其他配置可以根据自己需求来进行配置。

配置ndomod.cfg

以上是需要根据自己的实际情况修改的,yum安装和源码安装相关文件的位置可能不一样,根据自己
的情况来写吧,ndo默认的配置是按照源码默认安装的文件配置的。
配置nagios.cfg文件

以上为需要更改的nagios.cfg的内容。

7 Npc的安装

解压,然后将整个文件夹cp至/var/www/html/cacti/plugins/下
修改/var/www/html/cacti/include/global.php
添加:

让cacti知道有这个插件

在’User Management’中选择’admin’,在下边’Realm Permissions’中钩选’Plugin Management’。这
时右侧会出现’Plugin Management’连接,进去后在’uninstalled’中安装npc,然后在’intalled’中
enable npc,然后在回去admin的’Realm Permissions’中会出现’use npc’,如果没有钩选就把它选中。

接着在右侧栏目中选择settings,点选npc的标签
钩选Remote Commands
Nagios Command File Path: /var/nagios/rw/nagios.cmd
<这个文件启动nagios后会产生,根据实际的位置写>
Nagios URL: http://yourserver/nagios/
保存就可以了。

至此安装就完成了
启动mysql httpd ndo nagios

访问http://yourserver/cacti/
选择npc标签就可以看到nagios所检测的主机信息,唯一不足的是我打开这个页面的速度有些慢,需要进一步寻找原因来进行优化

nagios日志:

如果是下面这样是正确的
ndomod: NDOMOD 1.4b7 (10-31-2007) Copyright (c) 2005-2007 Ethan Galstad (nagios@nagios.org)
[1272020945] ndomod: Successfully connected to data sink.  4897 queued items to flush.
[1272020951] ndomod: Successfully flushed 4897 queued items to data sink.
[1272020951] Event broker module ‘/usr/local/nagios/bin/ndomod-3x.o’ initialized successfully.

可能出现的问题
1.npc页面空白或者提示无法访问npc.php
确认安装并配置php-jsion正确
2.cacti无图或者没有数据
这个问题很多
检查ndo2db.cfg 里面的数据库配置。
3.出现类似Error: Missing Dependency: mysql = 5.0.45-7.el5 is needed by package mysql-server的情况
请删除系统中已经安装的包,例如已经安装不同版本的mysql则出现上述问题

下面是我的截图。

nagios和cacti整合 我友博客

nagios和cacti整合 我友博客

nagios和cacti整合 我友博客

nagios和cacti整合 我友博客

中文cacti安装完全使用手册

2011年3月7日 1 条评论

1、安装apache
tar xvf httpd-2.2.15.tar.tar
cd httpd-2.2.15
makedir /usr/local/apache2
./configure –prefix=/usr/local/apache2 –enable-so –enable-mods-shared=most –with-mpm=worker –enable-disk-cache –enable-mem-cache
make
make install

2、安装mysql
安装mysql
rpm -ivh MySQL-client-community-5.1.49-1.rhel5.i386.rpm
rpm -ivh MySQL-devel-community-5.1.49-1.rhel5.i386.rpm
rpm -ivh MySQL-server-community-5.1.49-1.rhel5.i386.rpm
service mysql stop
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
service mysql start

3、安装php(php不能用5.3及以上的版本,因为废除了以前很多函数。导致cacti的程序不兼容)
3.1、安装jpegsrc.v6b.tar.gz
mkdir /usr/local/jpeg6
mkdir /usr/local/jpeg6/bin
mkdir /usr/local/jpeg6/lib
mkdir /usr/local/jpeg6/include
mkdir /usr/local/jpeg6/man
mkdir /usr/local/jpeg6/man/man1
gunzip jpegsrc.v6b.tar.gz
tar xvf jpegsrc.v6b.tar
cd jpeg-6b/
./configure –prefix=/usr/local/jpeg6 –enable-shared –enable-static
make
make install

3.2、安装libpng-1.4.3.tar.gz
gunzip libpng-1.4.3.tar.gz
tar xvf libpng-1.4.3.tar
cd libpng-1.4.3
./configure –prefix=/usr/local/libpng
make
make install

3.3、安装freetype-2.4.1.tar.gz
gunzip freetype-2.4.1.tar.gz
tar xvf freetype-2.4.1.tar
cd freetype-2.4.1
./configure –prefix=/usr/local/freetype
make
make install

3.4、安装zlib-1.2.5.tar.gz
gunzip zlib-1.2.5.tar.gz
tar xvf zlib-1.2.5.tar
cd zlib-1.2.5
./configure –prefix=/usr/local/zlib
make
make install

3.5、安装gd库
前提是要安装 gettext
gunzip gettext-0.18.1.1.tar.gz
tar xvf gettext-0.18.1.1.tar
cd gettext-0.18.1.1
./configure –prefix=/usr/local/gettext
make
make install
最好装gettext-devel以便能找到对应的库文件,否则会报错

gunzip gd-2.0.35.tar.gz
tar xvf gd-2.0.35.tar
cd gd-2.0.35
./configure –prefix=/usr/local/gd2 –with-jpeg-dir=/usr/local/jpeg6 –with-png=/usr/local/libpng –with-zlib-dir=/usr/local/zilb –with-freetype=/usr/local/freetype –enable-m4_pattern_allow
make
make install

3.6、安装libxml2-2.7.7.tar.gz
gunzip libxml2-2.7.7.tar.gz
tar xvf libxml2-2.7.7.tar
cd libxml2-2.7.7
./configure –prefix=/usr/local/libxml2
make
make install

3.7、安装libxslt-1.1.22.tar.gz
gunzip libxslt-1.1.22.tar.gz
tar xvf libxslt-1.1.22.tar
cd libxslt-1.1.22
./configure –prefix=/usr/local/libxslt –with-libxml-prefix=/usr/local/libxml2
make
make install

3.8、安装php5
gunzip php-5.2.14.tar.gz
tar xvf php-5.2.14.tar
cd php-5.2.14
./configure –prefix=/usr/local/php5 –with-apxs2=/usr/local/apache2/bin/apxs –with-mysql –with-gd=/usr/local/gd2 –with-ttf –with-freetype-dir=/usr/local/freetype –with-jpeg-dir=/usr/local/jpeg6 –with-png-dir=/usr/local/libpng –with-zlib-dir=/usr/local/zlib –with-iconv –enable-xml –enable-mbstring –enable-sockets –enable-gd-native-ttf –enable-track-vars –enable-force-cgi-redirect –with-config-file-path=/usr/local/php5/etc
make
make install

cp php.ini-development /usr/local/php5/etc/php.ini
vi /usr/local/php5/etc/php.ini将register_globals = Off改成register_globals = On
;date.timezone = 改为date.timezone = utc
;extension=php_mbstring.dll 改为 extension=php_mbstring.dll
;mbstring.func_overload = 0修改为:mbstring.func_overload = 7

配置apache
最后修改httpd.conf,使apache能使用php,增加如下参数
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType image/x-icon .ico

DirectoryIndex index.php index.html index.html.var

4、安装rrd
4.1、安装cgilib
gunzip cgilib-0.5.tar.gz
tar xvf cgilib-0.5.tar
cd cgilib-0.5
make CC=gcc CFLAGS=”-O3 -fPIC -I.”
mkdir -p /usr/local/cgilib/include
cp *.h /usr/local/cgilib/include/
mkdir -p /usr/local/cgilib/lib
cp libcgi* /usr/local/cgilib/lib/

4.2、安装libart_lgpl-2.3.21.tar.gz
gunzip libart_lgpl-2.3.21.tar.gz
tar xvf libart_lgpl-2.3.21.tar
cd libart_lgpl-2.3.21
./configure –disable-shared –prefix=/usr/local/libart_lgpl
make
make install

编辑/etc/ld.so.conf,增加如下参数
/usr/local/zlib/lib
/usr/local/freetype/lib
/usr/local/jpeg6/lib
/usr/local/cgilib/lib
/usr/local/libart_lgpl/lib
配置完后执行ldconfig命令,使用动态装入器装载到共享库

4.3、安装rrdtool(最好用1.3,目前cacti能支持的最高只到1.3)
gunzip rrdtool-1.4.4.tar.gz
tar xvf rrdtool-1.4.4.tar
cd rrdtool-1.4.4
./configure –prefix=/usr/local/rrdtool –disable-python –disable-tcl
make
make install

5、安装net-snmp
gunzip net-snmp-5.5.tar.gz
tar xvf net-snmp-5.5.tar
cd net-snmp-5.5
./configure –prefix=/usr/local/net-snmp –enable-developer
make
make install
ln -s /usr/local/net-snmp/bin/* /usr/local/bin
cp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf

启动net-snmp
/usr/local/net-snmp/sbin/snmpd
可以在rc.local里面设置为自动启动

6、安装cacti
useradd cactiuser -g users
passwd cactiuser
gunzip cacti-0.8.7e-cn-utf8.tar.gz
gunzip cacti-plugin-0.8.7e-PA-v2.5-cn-utf8.diff.gz
cp cacti-0.8.7e-cn-utf8.tar /usr/local/apache2/htdocs/
cd /usr/local/apache2/htdocs/
tar xvf cacti-0.8.7e-cn-utf8.tar
mv cacti-0.8.7e-cn-utf8 cacti
cd cacti
mv ./* ../
cd ../
patch -p1 < /root/software/cacti-plugin-0.8.7e-PA-v2.5-cn-utf8.diff mysql -uroot mysql>create database cacti default character set utf8;
mysql>grant all on cacti.* to cactiuser@localhost identified by ‘cactiuser’;
mysql>flush privileges;
mysql>quit
mysql -uroot cactirrdtool应该程序的版本改成安装的版本(1.3.x)
路径–>设置不对的文件名,改成正确的路径+文件名

Cacti的使用简易教程
1. 监控远程Linux主机
开启远程主机的SNMPD服务

2. 在Cacti里,进行如下操作,步骤的过程为:添加Devices(增加设备)->Graphs(增加图象)->Tree(增加到图象树)
2.1. Console->Management->Devices->add (增加监控设备)
Description:主机描述,可随便写
Hostname:主机IP地址
Host Template:主机模板,可以选UCD/Net snmp Host,也可以选None
SNMP Community:主机中的Community字段值,默认是public
SNMP Version:一般选Version1或Version2
2.2. Console->Management->Devices 选中刚才添加的主机,进入编辑界面(给监控主机增加要生成的”图像模板”和进行的”数据查询”)
Associated Graph Templates:加入
1) ucd/net – CPU Usage
2) ucd/net – Load Average
3) ucd/net – Memory Usage
如果是本机,可以加入以下模板:
1) Linux – Memory Usage
2) Unix – Ping Latency
3) Unix – Load Average
4) Unix – Logged in Users
5) Unix – Processes
Associated Data Queries:加入
1) SNMP – Interface Statistics
2.3. Console->Create ->New Graphs(生成2.2步骤中增加的图象和数据)
在列表框中选中刚添加的主机,再选中所有Graph Templates和Data Query,再Create。
2.4. Console->Management->Graph Trees->Default Tree->Add(使生成的图象和数据能在”查看图象”即在”Graphs”中以图象的方式显示出来)
Parent Item:父节点,默认是根
Tree Item Type:节点类型,Host
Host:选择主机
Sorting Type:排序方式
[Create]
2.5. Graphs->Default Tree->HostName查看看监控结果

3. 监控本地机
默认Cacti自动安装了监控本地机的模板,也可以自己重建,可按上面的方式,在第一步的Host Template中,选Local Linux Host就可,或者直接用IP,不用本地方式。
4. 日志
日志设置:Console -> Settings -> General -> Poller Logging Level,一般选Low既可,可以选Medium查看SNMPWALK的输出,Debug调试。
日志查看:Console -> Utilities -> View Log File
日志清除:Console -> Utilities -> Clear Log File
5. 图表删除
直接在Devices里删除主机,将删除相关所有数据。
在Console -> Graph Management里的Graph Management可单独删除一个图表,在Data Sources可删除一个查询。
6. 树的管理
Console -> Graph Trees,可以很方便的管理多台主机,将多台主机组成一个树形结构,并且,可以为树指定用户权限.
7. 权限的管理
Console -> User Management,可以管理用户,并指定权限.

报警的实现:

如果需要提供报警功能还需要安装其他插件
1、增加cacti插件的方法:为cacti系统安装Thold、Monitor等插件

插件下载地址:http://cactiusers.org/downloads/
注意下载时注意相应版本,版本不对会产生问题。

monitor插件,提供更简略、直观的设备状态图示;
thold插件,提供设备异常预警。

安装thold、monitor插件:注意要先备份一下

(1)、安装Plugin Architecture补丁,安装后,才能启用thold、monitor插件

shell> tar zxvf cacti-plugin-arch.tar.gz -C /var/www/cacti
shell> cd /var/www/cacti/
shell> patch -p1 -N < cacti-plugin-arch/cacti-plugin-0.8.7a-PA-v2.1.diff shell> /opt/mysql/bin/mysql -u cactiuser -p cactidb < pa.sql (2)、安装thold、monitor插件 shell> tar zxvf settings-0.5.tar.gz -C /var/www/cacti/plugins
shell> tar zxvf thold-0.3.4.tar.gz -C /var/www/cacti/plugins
shell> tar zxvf monitor-0.8.2.tar.gz -C /var/www/cacti/plugins

shell> cd /var/www/cacti/plugins/
shell> /opt/mysql/bin/mysql -u cactiuser -p cactidb < thold/thold.sql shell> /opt/mysql/bin/mysql -u cactiuser -p cactidb < monitor/monitor.sql (3)、修改config.php配置文件 shell> vi /var/www/cacti/include/config.php

$config[‘url_path’] = “/cacti/”; //改为cacti对应于web目录下的路径,本处为cacti
$plugins = array();
$plugins[] = thold;
$plugins[] = monitor;

(4)、刷新cacti系统的web管理界面,可以看到多出两个标签页(thold、monitor)。

(5)、使用monitor插件

1>打开“Console->Settings->Misc”,可以调整Monitor的各项配置。例如:勾选“Show Icon Legend”可以在监控页面显示图例;

“View”可以选用Tiles类型,以显示设备状态表格。
2>为cacti添加新设备时,勾选上“Monitor Host”项。对已添加的设备可以通过“Management->Devices”进去修改。
3>单击Web页面上方的“monitor”标签链接,可以进入查看各设备/主机的状态图示。

(6)、使用thold插件

1>打开“Console->Settings->Mail/DNS”,可以调整“SMTP Options”和“DNS Options”等配置,用于确保预警邮件能够发出。
2>打开“Console->Settings->Alerting/Thold”,可以调整Thold的各项配置。例如:“Dead Host Notifications Email”处可填写设备当机时发送警告信息到哪个邮箱;勾选“Send alerts as text”项,可以设置只发送文本格式的邮件。
3>打开“Templates->Threshold Templates”,可以添加、取出需要关联到预警系统的模板,例如:可以添加和“Interface-Traffic”模板的关联,选择“traffic_in”、“traffic_out”数据项,分别设置警告阈值“High Threshold”(如200000000比特/秒);可以添加和“Unix-Disk Space”模板的关联……。
4>打开“Create->New Graphs”,选择需要提供预警的设备,单击右侧上方的“Auto-create thresholds”创建预警项目。
5>打开“Management->Thresholds”,可以管理已经创建的预警项目。

2、cacti监控硬盘I/O的方法:

cacti本身的模板只可以监控硬盘的使用大小,而不能监控使用百分率,所以我们可以自定义cdef来监控硬盘使用率,并借助thold插件实现报警功能。网上找的资料都是在cacti.0.8.6版上实现的,而我用的是cacti.0.8.7版。因此,根据实际情况做如下改动:

在cacti目录下,vi global_arrays.php
搜索custom_data_source_types,修改这一段如下:

$custom_data_source_types = array(
“CURRENT_DATA_SOURCE” => “Current Graph Item Data Source”,
“ALL_DATA_SOURCES_NODUPS” => “All Data Sources (Don’t Include Duplicates)”,
“ALL_DATA_SOURCES_DUPS” => “All Data Sources (Include Duplicates)”,
“SIMILAR_DATA_SOURCES_NODUPS” => “All Similar Data Sources (Don’t Include Duplicates)”,
“SIMILAR_DATA_SOURCES_DUPS” => “All Similar Data Sources (Include Duplicates)”,
“CURRENT_DS_MINIMUM_VALUE” => “Current Data Source Item: Minimum Value”,
“CURRENT_DS_MAXIMUM_VALUE” => “Current Data Source Item: Maximum Value”,
“CURRENT_GRAPH_MINIMUM_VALUE” => “Graph: Lower Limit”,

//添加以下两行
“CURRENT_GRAPH_MAXIMUM_VALUE” => “Graph: Upper Limit”,
“VALUE_OF_HDD_TOTAL” => “Value of hdd_total data source”);

//中文版汉化为:
“CURRENT_GRAPH_MAXIMUM_VALUE” => “图像: 上限”,
“VALUE_OF_HDD_TOTAL” => “所有硬盘数据的值”);

在cacti界面的Graph Management-cdefs新建cdef模块,名字自己起,添加字段如下:

Item #1 Special Data Source: CURRENT_DATA_SOURCE
Item #2 Custom String: 100
Item #3 Operator: *
Item #4 Special Data Source: VALUE_OF_HDD_TOTAL
Item #5 Operator: /

也就是说
cdef=CURRENT_DATA_SOURCE,100,*,VALUE_OF_HDD_TOTAL,/

这样就可以在Threshold Templates里面添加监控硬盘的模块了,我添加的是Host MIB – Hard Drive Space ,最后在Threshold CDEF里面选择刚自定义的cdef,这样就可以正常监控硬盘使用率了。

官方论坛上有介绍,地址http://forums.cacti.net/about8777-0-asc-0.html

下面把使用方法摘录如下:

1. Copy net-snmp_devio.xml to /resource/snmp_queries/net-snmp_devio.xml

2. Import all *_templ.xml via Cacti “Import Templates” interface – These templates should include all their dependancies

3. Add “ucd/net – Get Device I/O” Data Query to your SNMP Enabled host using the “Index Count Changed” Re-index Method.

4. Create Graphs for your desired Disk and/or Memory devices.

总体注意事项:

1)、很重要的一点:在cacti的设备中一定要选择snmp的版本为>=2,否则会获取不到cpu和网卡等相关信息。

2)、cacti自带的local视图内存监控单位是错误的,可以删掉重新创建,就会改正。

3)、系统监控中,cpu图标的 200m这类数字,表示的是 万分之多少,我的理解cacti是为了方便显示画图。

4)、权限问题:cacti_path/rra log目录的权限一定要给cacti的新用户,否则会出错:有图,但是没有数据。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/passion_wang/archive/2010/08/13/5809198.aspx

nagios各种报警设置

2011年3月7日 没有评论

一、网页报警
1。修改cgi.cfg 去掉下面几行注释
host_unreachable_sound=hostdown.wav
host_down_sound=hostdown.wav
service_critical_sound=critical.wav
service_warning_sound=warning.wav
service_unknown_sound=warning.wav
normal_sound=noproblem.wav
2。在/usr/local/nagios/share/media/应该有相应的声音文件(这个默认没有的,需要自己添加)

二、邮件报警 (使用sendEmail 发送邮件)
# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
# tar –zxvf sendEmail-v1.55.tar.gz
# cd sendEmail-v1.56
# cp sendEmail /usr/local/bin
# chmod 0755 /usr/local/bin/sendEmail
#. /usr/local/bin/sendEmail –f nagios@scomd.com–t mail@scomd.com –s mail.scomd.com –u “from nagios” –xu nagios –xp scomd –m nagios test
-f 表示发送者的邮箱
-t 表示接收者的邮箱
-s 表示SMTP服务器的域名或者ip
-u 表示邮件的主题
-xu 表示SMTP验证的用户名
-xp 表示SMTP验证的密码(注意,这个密码貌似有限制,例如我用d!5neyland就不能被正确识别)
-m 表示邮件的内容

修改commands.cfg
define command{
command_name notify-host-by-email
command_line /usr/bin/printf “%b” “***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n” | /usr/local/bin/sendEmail -f nagios@scomd.com -t nagios@scomd.com -s mail.scomd.com -u “from nagios” -xu nagios -xp scomd ; /bin/mail -s “** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **” $CONTACTEMAIL$
}

# ‘notify-service-by-email’ command definition
define command{
command_name notify-service-by-email
command_line /usr/bin/printf “%b” “***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$” | /usr/local/bin/sendEmail -f nagios@scomd.com -t nagios@scomd.cn -s mail.scomd.com -u “from nagios” -xu nagios -xp scomd
}
发现一个小问题,我用163测试,密码错误的也可以发送。
三、飞信报警 (移动用户必须开通飞信业务)
#wget http://www.it-adv.net/fetion/downng/fetion20091117-linux.tar.gz
#tar –zxvf fetion20091117-linux.tar.gz
#cd fx
LD_LIBRARY_PATH=. ./fetion –mobile=13691515**** –pwd=mypwd –to=13691515****–msg-utf8=test
发送成功后可进行整合。发送不成功请关注http://www.it-adv.net网站的说明
编辑commands.cfg,增加host-notify-by-fetion和service-notify-by-fetion命令的定义
define command {
command_name host-notify-by-fetion
command_line LD_LIBRARY_PATH=/usr/local/nagios/fx /usr/local/nagios/fx/fetion –mobile=13691515****–pwd=passwd –to=13691515**** –msg-utf8=”Host $HOSTSTATE$ alert for $HOSTNAME$! on ‘$LONGDATETIME$'” $CONTACTPAGER$
}

define command {
command_name service-notify-by-fetion
command_line LD_LIBRARY_PATH=/usr/local/nagios/fx /usr/local/nagios/fx/fetion –mobile=13691515**** –pwd= passwd –to=13691515**** –msg-utf8=”$HOSTADDRESS$ $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ on $LONGDATETIME$” $CONTACTPAGER$
}

编辑contact.cfg,添加短信通知
define contact{
contact_name nagiosadmin
use generic-contact
alias Nagios Admin
email stcomd@163.com
service_notification_commands notify-service-by-email,service-notify-by-fetion
host_notification_commands notify-host-by-email,host-notify-by-fetion
pager 13691515****
}

分类: monitor 标签: ,

用escalations限制Nagios报警次数

2011年3月7日 没有评论

转载:http://www.scomd.com/read.php?37
用escalations限制Nagios报警次数

整合的飞信之后,如果出现问题未能即使解决的话,那么后果将十分“杯具”,每五分钟你将收到一条报警短信,你的邮箱也会被报警邮件塞满。nagios官方也想到了这个问题,于是他们给出了解决办法,http://nagios.sourceforge.net/docs/3_0/escalations.html,这里是官方的说明,以下是我的做法。

首先编辑contact.cfg,把原有的配置复制一份在下面,变成:
define contact{
contact_name nagiosadmin
use generic-contact
alias Nagios Admin
email stcomd@163com ;
service_notification_commands notify-service-by-email,service-notify-by-fetion
host_notification_commands notify-host-by-email,host-notify-by-fetion
pager 13691515****
}

define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members nagiosadmin
}

define contact{
contact_name scomd
use generic-contact
alias Nagios Admin
email stcomd@163com
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
pager 13691515****
}

define contactgroup{
contactgroup_name sysadmin
alias sysadmin
members scomd
}

然后然后创建一个配置文件: escalations.cfg

#vi /usr/local/nagios/etc/objects/escalations.cfg

添加如下内容:
define serviceescalation{
host_name scomd.com ;被监控主机名称,多个用逗号隔开
first_notification 4 ; 第4条信息起,改变频率间隔
last_notification 0 ; 第n条信息起,恢复频率间隔
notification_interval 30 ; 通知间隔(单位:分)
contact_groups sysadmin
}

define serviceescalation{
host_name scomd.com ;被监控主机名称
service_description PING ;被监控服务名称,多个用逗号隔开
first_notification 4
last_notification 0
notification_interval 30
contact_groups sysadmin
}

最后,编辑nagios.cfg文件

#vi /usr/local/nagios/etc/nagios.cfg
添加:
cfg_file=/usr/local/nagios/etc/objects/escalations.cfg

检查nagios配置文件是否正确
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

没有问题就重启nagios服务吧
service nagios restart

分类: monitor 标签: ,

net-snmp调用脚本及独立日志配置

2011年3月7日 没有评论

转载:http://www.scomd.com/read.php?77
net-snmp可以调用外部脚本扩展功能,如:

vi /etc/snmp/snmpd.conf
exec .1.3.6.1.4.1.2021.18 tcpCurrEstab /etc/snmp/tcpconn.sh
exec .1.3.6.1.4.1.2021.19 tcpCurrHttp /etc/snmp/tcphttp.sh
exec .1.3.6.1.4.1.2021.20 tcpCurrPhp-fpm /etc/snmp/tcpphp.sh
exec .1.3.6.1.4.1.2021.21 tcpCurrMemcache /etc/snmp/tcpmemcache.sh

上面是旧版的配置,已经弃用了,新版本用:
extend .1.3.6.1.4.1.2021.18 tcpCurrEstab /etc/snmp/tcpconn.sh
extend .1.3.6.1.4.1.2021.19 tcpCurrHttp /etc/snmp/tcphttp.sh
extend .1.3.6.1.4.1.2021.20 tcpCurrPhp-fpm /etc/snmp/tcpphp.sh
extend .1.3.6.1.4.1.2021.21 tcpCurrMemcache /etc/snmp/tcpmemcache.sh

snmpd想允许一个段访问,配置为:
com2sec notConfigUser 192.168.1.0/24 public

[root@ha1 log]# cat /etc/snmp/tcpconn.sh
#!/bin/sh
conn=netstat -s -t | grep connections\ established |awk '{print $1}'
echo $conn
[root@ha1 log]# cat /etc/snmp/tcphttp.sh
#!/bin/sh
netstat -an | grep ‘:80 ‘ | grep ESTABLISHED | wc -l
[root@ha1 log]# cat /etc/snmp/tcpmemcache.sh
#!/bin/sh
netstat -an | grep :11211 | grep ESTABLISHED | wc -l
[root@ha1 log]# cat /etc/snmp/tcpphp.sh
#!/bin/sh
netstat -an | grep :9000 | grep ESTABLISHED | wc -l

重启net-snmpd:
service snmpd restart

测试:
[root@ha1 log]# snmpwalk -v 2c -c public 192.168.1.4 .1.3.6.1.4.1.2021.18
UCD-SNMP-MIB::ucdavis.18.1.1 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.18.2.1 = STRING: “tcpCurrEstab”
UCD-SNMP-MIB::ucdavis.18.3.1 = STRING: “/etc/snmp/tcpconn.sh”
UCD-SNMP-MIB::ucdavis.18.100.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.18.101.1 = STRING: “5023”
UCD-SNMP-MIB::ucdavis.18.102.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.18.103.1 = “”

有信息输出就表明成功了。

默认net-snmpd输出日志到/var/log/messes,想输出至一个独立日志文件,配置为:

vi /etc/sysconfig/snmpd.options
# snmpd command line options
# OPTIONS=”-Lsd -Lf /dev/null -p /var/run/snmpd.pid -a”
OPTIONS=”-Lf /var/log/snmpd.log”

重启net-snmpd:
service snmpd restart

cat /var/log/snmpd.log

分类: monitor 标签:

linux上安装Cacti中文版详解

2011年3月1日 没有评论

转载自:扶凯[http://www.php-oa.com]

1.基本安装
cacti是运作在apache+php+mysql+net-snmp工具集+rrdtool这样的一个工作环境之下,所以我们先要做一个基本的工作的环境

记的安装前先安装rpm的扩展包,安装方法见我的另外一个文章”rpm的高级管理”

上面完成一个php,http,mysql的环境,接下来安装要用到的包

安装完,启动相关的程式,和设置开机启动

2.数据库设置

准备数据库,和设置权限,安装cacti。

3.下载安装

下载中文的cacti,解压到/var/www/cacti.后进入cacti的目录.导入cacti的数据结构
下载地址: cacti-0.8.7e-cn-utf8.tar.gz

修改配置文件

添加cacti用户

这个上面可能添加不行试试:

4. 配置httpd服务器的配置文件

重起httpd的服务,让上面的修改生效

5.测试安装是否正常
打开下面的url.
http://server.ip.or.name/cacti
打开网站,点next.选择new install,使用一路回车法.最后完成
最后的用户名为: admin 密码为: admin

6.收尾

让系统每5分钟收集,需要

也可手工跑一次:/var/www/cacti/poller.php

7。字体在图形中显示不正常的解决方法

下载并安装cjkuni-fonts中文字体,字体名ukai.ttf,下载地址

安装完成后注意在”设置”中更改下面两个必改项. 常规->RRDTool应用程序版本 改为1.2.x,默认为1.0.x.不改可能图像不能正常显示出来. 路径->RRDTool默认字体路径 改为上面安装的ukai.ttf的文件路径,如/usr/share/fonts/ukai.ttf

8,被监控主机snmp文件设置

被监控主机需要配置snmp.(谢谢网友园园的提醒)

更改

改为

2、更改

改为

将前面的 # 注释 去掉。 保存退出

上面这几个地方很重要,注意了,不然得不到数据

9.测试snmp是否正常

也可以用snmpd -f -Le 命令查看当前有没有出什么错

FQA:

1如果磁盘监控不到

请使用Cacti 中自带的模板 ucd/net – Get Monitored Partitions ,然后在被监控的机器的snmpd.conf(/etc/snmp/snmpd.conf)中加入

disk / (比如我们监视根分区)

然后可以用snmpwalk -v 1 -c public 192.168.0.52 dsktable这个命令来检查

2.如果图出不来

1.检查你的主机是不是活的,一定要能测试通过,状态是活的才行,可以用命令来检查是否有输出
2.另外cacti默认选择的rrdtool的版本是RRDTool 1.1.x 的!—-点击Console->System Utilities->Technical Support->RRDTool Version选择RRDTool 1.2.x,不然有可能出不了图.

3.网卡流量达到100M以上图像有问题?
这与snmp的版本有关,snmp1的数据是32位而snmp2c以上是64位(AS4默认是不支持64位的)。

1.首先要确定你使用的是snmp2c或以上,是否支持64位MIB库.如下如果返回的有几行含有“Counter64:”的话.那么表明是支持的。

2.然后点击Cacti的页面:“Console ->; Create New Graphs ->;Data Query”。你在下面看到“Select a graph type:”的下拉菜单(默认是“In/Out bits”),要取64bits的数据所以将其改为“In/Out bits(64-bit Counters)”,然后选择你要监测的网卡即可。另外,该监测点的“Maximum Value”必须设置为100M以上。

3.设备管理中,选择的主机中的SNMP版本,一定要是2.

4.RedHat AS4的(net-snmp5.2以下不支持)snmp不支持64位计数器的解决方法(本方法由嘻嘻哈哈提供 http://www.haw-haw.org/node/654)

可以下载一个src.rpm再在/usr/src/redhat/SPECS/net-snmp.spec文件的configure下加上一句–enable-mfd-rewrites \
然后再

生成一堆的x86_64.rpm在/usr/src/redhat/RPMS/x86_64下,如果是32位的就在i386下.在安装就行了.

注 :64位计数器是在net-snmp 5.2上新加入的IF-MIB ,它可以转换更多的 MIB 对象 (e.g. ifXTable with 64-bit ifHC* counters). 所有象RHEL4,Centosd4上,如果使用默认的5.2的src包,就算加入了enable-mfd-rewrites其实也是不行的.所以要下载5.2的src包来安装.

下载地址

net-snmp5.2.src.rpm

这个包中默认就加入了enable-mfd-rewrites.下载后,直接用上面方法中的rpmbuild -bb SPECS/net-snmp.spec编译后安装就行.

这个有时还得不到数据,要注意你的snmpd.conf是否配置对了.其中的如下,read选项要是全部.

如果不想编译,可以下载在这下载redhat4的rpm直接安装就行了

http://ftp.freshrpms.net/pub/freshrpms/redhat/testing/EL4/net-snmp/

分类: linux, monitor 标签: , ,