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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

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


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
缓存 Java 应用服务中间件
nginx的正向代理和反向代理以及tomcat
Nginx的正向代理和反向代理功能在不同的场景中具有重要作用,正向代理主要用于客户端访问控制和匿名浏览,而反向代理则用于负载均衡和高可用性服务。Tomcat作为Java Web应用服务器,与Nginx结合使用,可以显著提升Web应用的性能和稳定性。通过合理配置Nginx和Tomcat,可以构建高效、稳定和可扩展的Web服务架构。
61 11
|
2月前
|
监控 应用服务中间件 测试技术
确保正则表达式在 Nginx 代理中的准确性和稳定性
【10月更文挑战第19天】总之,正则表达式在 Nginx 代理中具有重要作用,但要确保其准确性和稳定性需要付出一定的努力和关注。通过以上方法的综合运用,我们可以提高正则表达式配置的可靠性,为用户提供更好的服务体验。
|
1月前
|
前端开发 应用服务中间件 定位技术
Nginx 如何代理转发传递真实 ip 地址?
【10月更文挑战第32天】
294 5
Nginx 如何代理转发传递真实 ip 地址?
|
1月前
|
负载均衡 前端开发 JavaScript
Nginx 代理多服务
以上是 Nginx 代理多服务的几种常见方式,在实际应用中,可以根据具体的业务需求和系统架构选择合适的代理方式,并结合其他 Nginx 的功能和配置来优化和完善系统的性能和功能。
|
2月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
188 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
2月前
|
应用服务中间件 API nginx
使用正则表达式实现 Nginx 代理
【10月更文挑战第19天】在不断发展的互联网技术中,掌握正则表达式在 Nginx 代理中的应用是非常重要的。不断探索和实践,将有助于我们在实际工作中更好地运用这一技术,提升项目的质量和效率。
|
2月前
|
缓存 负载均衡 应用服务中间件
Nginx 实现一个端口代理多个前后端服务
【10月更文挑战第19天】Nginx 的强大功能不仅限于此,它还可以与其他技术和工具相结合,为我们的应用提供更强大的支持和保障。在不断发展的互联网时代,掌握 Nginx 的使用技巧将为我们的工作和生活带来更多的便利和效益。
|
1月前
|
Ubuntu
ubuntu和debian 的安装包dpkg管理命令对安装包进行安装,查询,卸载
Ubuntu dpkg 软件包管理命令概览:安装、卸载、查看和配置软件包。包括解决依赖、强制卸载、列出及过滤已安装包、查看包详情等操作。
64 10
|
2月前
|
Oracle Java 关系型数据库
在 Debian 12 上安装 Java 21
在 Debian 12 上安装 Java 21
|
4月前
|
Kubernetes 应用服务中间件 nginx
debian11使用kubeadm安装k8s
debian11使用kubeadm安装k8s
100 1