六.下面开始cacti安装
注意:我这个是从我自己的WORD 文档贴过来的 后面的都没弄图
详细的看我的PDF 文档,所有的插件包也有,最底下下载。
1.设置数据库权限
/usr/local/mysql/bin/mysql -u root -p
Enter password:
2.创建一个用户cacti(密码cacti)并授权:
mysql> create database cacti;
mysql> show databases like 'cacti';
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser';
mysql> flush privileges;
mysql> quit
tar -zxvf cacti-0.8.7h.tar.gz -C /www
mv cacti-0.8.7h cacti
cd /www/cacti/
/usr/local/mysql/bin/mysql -u cactiuser -p'cactiuser' cacti < cacti.sql
3.修改cacti配置文件:
vi /www/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";
useradd cacti -d /www/cacti
chown
-R cacti /www/cacti/rra /www/cacti/
log
修改 apache 主配置文件
##########################cacti############
Alias /cacti /www/cacti
<Directory /www/cacti>
DirectoryIndex index.php
AllowOverride all
order deny,allow
deny from all
allow from all
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc on
php_flag track_vars on
</Directory>
4. apt-get install rrdtool 安装RRDTOOL 工具
5安装cacti
http://192.168.3.107:7000/cacti/ 打开浏览器 下一步
PHP Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /var/www/html/cacti/include/global_arrays.php on line 640
解决办法是:
# /usr/local/php-5.3.8/lib/php.ini
date.timezone = PRC
重启apache
下一步中中间可能有些路径错误 暂时不要管他
原始账户:admin
原始密码:admin
这里会强制你修改的密码的。
6.设置定时采集数据
vim /etc/crond
*/5 * * * * root /usr/local/php-5.3.8/bin/php /www/cacti/poller.php > /dev/null 2>&1
7最后 装SNMP
① 安装snmp
# apt-get install snmp snmpd
② 配置snmp
# vi /etc/snmp/snmpd.conf
注释15行
#agentAddress udp:127.0.0.1:161
取消注释17行
agentAddress udp:161,udp6:[::1]:161
表示监听所有地址
在44行(system + hrSystem groups only)下添加一行
view AllView included .1
修改51行为
rocommunity cacti default -V AllView
cacti是团体名
最后重启一下snmp服务就完成了
③配置好团体名后
8.修改cacti SNMP的路径
修改前的图:
root@houzaicun:/usr/local# find / -name "snmpwalk"
/usr/bin/snmpwalk
root@houzaicun:/home/net-snmp-5.2.4.1# find / -name "rrdtool"
/etc/bash_completion.d/rrdtool
/usr/share/doc/rrdtool
查找出来 对应的路径填上
启动SNMP
root@houzaicun:/usr/local# /etc/init.d/snmpd start
#snmpwalk -v2c 192.168.3.107 -c 团体名 system 执行下测试 是否有问题
错误提示是snmpwalk;error while loading shared libraries: libcrypto.so.4: cannot open shared object file: No such file or directory
报错
root@houzaicun:/lib# ldd snmpwalk 查询多需要的库
linux-vdso.so.1 => (0x00007fff66bff000)
libcrypto.so.4 => not found
libm.so.6 => /lib/libm.so.6 (0x00007f8d0ad0c000)
libc.so.6 => /lib/libc.so.6 (0x00007f8d0a9aa000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8d0af95000)
缺少的确实是这个 而且这个需要的库路径是/lib
root@houzaicun:/var# whereis libcrypto.so.4 查询有没有这个库文件
libcrypto.so: /usr/lib/libcrypto.so /usr/lib64/libcrypto.so
系统有的 。
做个软连接 :ln -s /usr/lib/libcrypto.so /usr/lib/libcrypto.so.4
问题解决 。重新加下主机
9.最后cacti 远程主机的添加 我们这里用自己的IP 192.168.3.107,SNMP 远程测试。
http://hzcsky.blog.51cto.com/1560073/475631 看这篇的后面的部分
最后结果
七.cacti的Apache-状态监控
1.对Apache Server Status的启用
对Apache的状态管理的模块是LoadModule status_module modules/mod_status.so,所以这个需要有
root@houzaicun:/www/cacti/scripts# /usr/local/apache-2.2.21/bin/apachectl -l |grep status
mod_status.c
2.然后打开下面的配置
ExtendedStatus On
配置Apache Server Status的权限
<location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from www.hou.com
</location>
测试机器 all 无所谓
字段 说明
Server Version Apache 服务器的版本。
Server Built Apache 服务器编译安装的时间。
Current Time 目前的系统时间。
Restart Time Apache 重新启动的时间。
Parent Server Generation Apache 父程序 (parent process) 的世代编号,就是 httpd 接收到 SIGHUP 而重新启动的次数。
Server uptime Apache 启动后到现在经过的时间。
Total accesses 到目前为此 Apache 接收的联机数量及传输的数据量。
CPU Usage 目前 CPU 的使用情形。
_SWSS…. 所有 Apache process 目前的状态。每一个字符表示一个程序,最多可以显示 256 个程序的状态。
Scoreboard Key 上述状态的说明。以下为每一个字符符号所表示的意义:
* _:等待连结中。
* S:启动中。
* R: 正在读取要求。
* W:正在送出回应。
* K:处于保持联机的状态。
* D:正在查找 DNS。
* C:正在关闭连结。
* L:正在写入记录文件。
* G:进入正常结束程序中。
* I:处理闲置。
* .:尚无此程序。
Srv 本程序与其父程序的世代编号。
PID 本程序的 process id。
Acc 分别表示本次联机、本程序所处理的存取次数。
M 该程序目前的状态。
CPU 该程序所耗用的 CPU 资源。
SS 距离上次处理要求的时间。
Req 最后一次处理要求所耗费的时间,以千分之一秒为单位。
Conn 本次联机所传送的数据量。
Child 由该子程序所传送的数据量。
Slot 由该 Slot 所传送的数据量。
Client 客户端的地址。
VHost 属于哪一个虚拟主机或本主机的 IP。
Request 联机所提出的要求信息。
5.添加apache服务器的主机
6.最后添加图标树中就可以
7.完成
八.cacti的mysql-状态监控
mysql > grant super, process, replication client on *.* to cm@
cactiIP identified by '123';
mysql> FLUSH PRIVILEGES;
4.修改脚本
vi /www/cacti/scripts/ss_get_mysql_stats.php
$mysql_user = 'cm';
$mysql_pass = '123';
$cache_dir = "/www/cacti/cache/";
-----------------------------------------------------------
mkdir –p /www/cacti/cache/
chmod 777 -R /www/cacti/cache/
4. 添加 mysql组
九.TCP-连接状态监控
1. 下载netstat_tcp.zip后,解压,将lvm_netstat_tcp.pl 上传至cacti根目录的scripts内。
2.进入cacti后台,Import/export - Import Templates 导入cacti_graph_template_snmp_get_tcp_connection_status2_340.xml
模板文件。
为了确定其能正常工作,可以在scripts目录下,执行
/usr/bin/perl lvm_netstat_tcp.pl 127.0.0.1 2c public 161 500
尝试能不能去到tcp连接的值。如果能取到,基本就没有什么问题了。
3.CACTI模版配置
找到Templates-->Host Templates-->找到又上方的Add添加一个主机模版
点开add之后输入创建的主机模版的名字例如:LINUX-TCP-点击create 进入下一步配置
在Associated Graph Templates选择--Get TCP Connection Status--点击Add添加
在Associated Data Queries选择网络状态---点击Add添加
最后点击 Save 保存完成。
4.为主机创建Graphs
Devices --> 选择 一个主机 --> Host Template 选择刚刚创建的LINUX-TCP 点击保存
点击上方的 *Create Graphs for this Host在下面就能看到Get TCP Connection Status。
十.cacti的磁盘-IO监控
注意:这个我在debian6.0没测试成功继续研究中,debian6.0的SNMP 不一样。
所需软件:此软件网上并不是太好找,建议大家好好收藏
snmpdiskio-0.9.6.zip
下载点http://www.colderboy.com/wp-content/uploads/2011/08/snmpdiskio.rar
1.把解压之后文件夹下的snmpdiskio文件上传到被监控服务器的/usr/local/bin目录下;
由于9.4太老不支持2.6内核,需要修改, 这里下载的包我已经更新过已经支持2.6内核.
2.把解压之后文件夹下的 partition.xml上传到cacti监控服务器的
/www/cacti/resource/snmp_queries/目录下,这里我的CACTI的
目录文件为以上,大家可以根据实际情况修改。
且分别导入2个模板:
cacti_graph_template_disk_io_bytessec.xml
cacti_data_query_snmp_disk_statistics.xml
3.:修改snmp配置文件/etc/snmp/snmpd.conf
#----------------------------------------------------------------------------------
com2sec local
localhost public
com2sec local
监控IP 地址
public
com2sec mynetwork NETWORK/24
COMMUNITY
group MyRWGroup v1
local
group MyRWGroup v2c
local
group MyRWGroup usm
local
group MyROGroup v1
mynetwork
group MyROGroup v2c
mynetwork
group MyROGroup usm
mynetwork
view all
included .1 80
access MyROGroup ""
any noauth exact all none none
access MyRWGroup ""
any noauth exact all all none
syslocation etiantian.org
syscontact Me <zlyzhangluya@163.com>
proc mountd
proc ntalkd 4
proc sendmail 10 1
proc httpd
10 1
exec echotest /bin/echo hello world
exec disk_used_shell
/bin/sh /root/current_disk_used.sh
exec httpd_proc
/bin/sh /root/current_httpd_proc.sh
disk /
10000
disk /boot
10000
load 12 14 14
#以下五行是我添加的内容
exec .1.3.6.1.4.1.2021.55 hdIndex /bin/sh /usr/local/bin/snmpdiskio hdIndex
exec .1.3.6.1.4.1.2021.56 hdDescr /bin/sh /usr/local/bin/snmpdiskio hdDescr
exec .1.3.6.1.4.1.2021.57 hdInBlocks /bin/sh /usr/local/bin/snmpdiskio hdInBlocks
exec .1.3.6.1.4.1.2021.58 hdOutBlocks /bin/sh /usr/local/bin/snmpdiskio hdOutBlocks
#----------------------------------------------------------------------------------
4.:重启snmpd服务
/etc/init.d/snmpd restart
5:在cacti监控主机上测试
yum install -y net-snmp-utils*
[root@mail ~]# snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.58
UCD-SNMP-MIB::ucdavis.58.1.1 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.58.2.1 = STRING: "hdOutBlocks"
UCD-SNMP-MIB::ucdavis.58.3.1 = STRING: "/bin/sh /usr/local/bin/snmpdiskio hdOutBlocks"
UCD-SNMP-MIB::ucdavis.58.100.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.58.101.1 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.2 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.3 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.4 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.5 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.6 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.7 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.8 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.9 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.10 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.11 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.12 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.13 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.14 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.15 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.16 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.17 = STRING: "641941504"
UCD-SNMP-MIB::ucdavis.58.101.18 = STRING: "701440"
UCD-SNMP-MIB::ucdavis.58.101.19 = STRING: "224997888"
UCD-SNMP-MIB::ucdavis.58.101.20 = STRING: "297335296"
UCD-SNMP-MIB::ucdavis.58.101.21 = STRING: "2048"
UCD-SNMP-MIB::ucdavis.58.101.22 = STRING: "66200576"
UCD-SNMP-MIB::ucdavis.58.101.23 = STRING: "659456"
UCD-SNMP-MIB::ucdavis.58.101.24 = STRING: "51835904"
UCD-SNMP-MIB::ucdavis.58.101.25 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.26 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.102.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.58.103.1 = ""
看到以上内容说配置成功.
6:CACTI模版配置,这里有点小难度,需要特别注意
找到Templates-->Host Templates-->找到又上方的Add添加一个主机模版
点开add之后输入创建的主机模版的名字例如:LINUX-disk-io点击create 进入下一步配置
在Associated Graph Templates选择Disk-I/O (bytes/sec)点击Add添加
在Associated Data Queries选择SNMP-Disk Statistics点击 Add 添加
最后点击 Save 保存完成。
6:为主机创建Graphs
Devices --> 选择 一个主机 --> Host Template 选择刚刚创建的linux-disk-io 点击保存
点击上方的 *Create Graphs for this Host在下面就能看到Data Query [SNMP - Disk Statistics]
这样列表,列表内显示你硬盘的信息。选择你需要监控的磁盘点击创建完成。
十一cacti的nginx状态监控
1. 修改nginx服务器配置 使其支持状态信息显示
vi /usr/local/nginx/conf/nginx.conf
server {.......
在server{}中加入下面:
location /nginx_status {
stub_status on;
access_log off;
}
.....}
首先导入模板,两个文件
cacti_graph_template_nginx_clients_stat.xml
cacti_graph_template_nginx_sockets_stat.xml
将两个pl脚本放到/www/cacti/scripts 下 》授权 755
然后添加NGINX主机,这时候模块栏并没有出现nginx的模块选择,那么我们先选择基本的主机监控模块。按下 create ,
在最下面处选择nginx-clients-stat 按ADD
再选nginx-sockets-stat add
create 完成后点SAVE 就完成了,抽颗小烟就出来图了。
本文转自 houzaicunsky 51CTO博客,原文链接:http://blog.51cto.com/hzcsky/722629