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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

六.下面开始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-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 联机所提出的要求信息。
 
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.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


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
安全 应用服务中间件 nginx
百度搜索:蓝易云【使用Debian、Docker和Nginx部署Web应用教程】
这些是在Debian上使用Docker和Nginx部署Web应用的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
45 0
|
1月前
|
数据可视化 应用服务中间件 网络安全
简单易用的Nginx代理管理工具:体验便捷配置、高效管理
Nginx Proxy Manager是一款强大的代理服务器管理工具,提供简单直观的界面来配置和管理Nginx代理服务器,帮助用户轻松提升配置的简洁性和便捷性。
51 0
简单易用的Nginx代理管理工具:体验便捷配置、高效管理
|
1月前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
221 0
|
3月前
Nginx---代理遇到的坑
Nginx---代理遇到的坑
18 1
|
4月前
|
域名解析 网络协议 应用服务中间件
百度搜索:蓝易云【服务器配置到云上nginx代理?】
现在,您的云服务器已经配置为使用Nginx代理了。通过访问您的域名,请求将被转发到云服务器上的指定端口,并由Nginx进行代理。请确保在配置和使用过程中注意安全性和网络设置,并根据您的需求进行相应调整。
41 0
|
4月前
|
应用服务中间件 nginx Python
nginx代理目录
nginx代理目录
47 1
|
5月前
|
前端开发 JavaScript 应用服务中间件
nginx配置vue前端代理
nginx配置vue前端代理
79 0
|
26天前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
28 0
|
24天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
99 0