且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

debian下LAMP+nginx代理+awstats+nagios+cacti(三)

更新时间:2022-09-29 12:31:31

六.下面开始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

这里会强制你修改的密码的。

 

 

debian下LAMP+nginx代理+awstats+nagios+cacti(三)

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的路径

修改前的图:

debian下LAMP+nginx代理+awstats+nagios+cacti(三)

 

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

查找出来 对应的路径填上

 

 

debian下LAMP+nginx代理+awstats+nagios+cacti(三)

 

 

启动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 看这篇的后面的部分

 

最后结果

 

debian下LAMP+nginx代理+awstats+nagios+cacti(三)

 

 

 
七.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-status 的输出中每个字段所代表的意义如下:
字段 说明
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 联机所提出的要求信息。
 
在cacti监控机添加监控apache模块

3.下载并解压模块:http://down.51cto.com/data/169432一共2个文件

将 监控脚本 ss_apache_stats.php 拷贝到/www/cacti/scripts/ 下



4.导入模块 左边菜单栏 选择
Import Templates浏览--选择你解压的那文件夹里面的cacti_host_template_webserver_-_apache.xml 点击import 导入模块
5.添加apache服务器的主机
 
 
6.最后添加图标树中就可以
 
7.完成
八.cacti的mysql-状态监控
1.基本上和apche那样 下载解压模板 添加模板 复制*.php *.pl 到 /www/cacti/scripts/下载地址:http://down.51cto.com/data/169466在mysql数据授权 cm 用户获取数据信息

2.
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.54 hdNum /bin/sh /usr/local/bin/snmpdiskio hdNum
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;
}
.....}
重启新载入后可以直接输入网址:http://192.168.3.107/nginx_status查看数据,所以***设置权限,cacti就是获取这些数据生成图表的。
 
 

首先导入模板,两个文件
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 Graphs for this Host建立图表:
输入地址:http://ip地址/nginx_status注意不要输错哦
 
create 完成后点SAVE 就完成了,抽颗小烟就出来图了。

 


本文转自 houzaicunsky 51CTO博客,原文链接:http://blog.51cto.com/hzcsky/722629