~阿弥陀佛~

人生能有多少天是按照自己的想法去活着

Cacti监控工作架构,原理,搭建

Cacti 工作架构

C/SB/S的根本区别:C/S包含B/S  比如B/S是网页版的数据处理在服务器(所有的服务器端压力在服务器兼容性较高服务器压力较大,延时较高),C/S处理的数据在本地(所以对于服务器的压力较小并发较大延时较小)

cactiC/S主要功能是采集数据,客户端自己去得到数据返回给服务器端

cactiB/S主要把C/S得到的数据进行对应的汇总展示

cacti完整的工作流程

访问者的阶段数据是从MYSQL中获取的,MYSQL所有的数据都会被PHP拿到分析的出来页面的框架图,框架图包含了一些图表展示的波线图,波线图是RRDTOOL从数据库里得到数据以后自己去生成。收集被监控端通过C/S结构也就是SNMP协议。

从工作流的角度分析

首先cacti控制cacti客户端向远程发送收集数据,收集到以后数据插入到数据库,然后RRDTOOL从数据库里拿到数据生成图片,PHP从数据库拿到数据生成图片返回给管理员。这样管理员就可以通过Web服务器去看这个B/S结构的访问页面

注意:在整个实验中采用的都是rpm包安装的Web环境(看核心代码到底工作不工作在安装的包内,比如以后的docker,因为docker的核心是位于内核的技术,它只是一个管理端,管理端是高级语言还是低级语言写的区别不大,真正实践起来还是底层内核)

Cacti搭建:

环境: 10.10.10.13  10.10.10.14

13: 

安装相关环境

yum -y install httpd mysql mysql-server mysql-devel libxml2-devel mysql-connector-odbc perl-DBD-MySQL unixODBC php php-mysql php-pdo

(安装数据库的相关环境 完整的LAMP环境)

service httpd  start

service  mysqld  start

chkconfig  httpd  on  &&  chkconfig  mysqld  on

mysqladmin  -uroot  password  123    &&   mysql  -uroot  -p123

yum  -y  install  net-snmp net-snmp-utils net-snmp-libs lm_sensors  (安装snmp的相关组件 这是能够调用主板的数据的组件功能。装这一步的主要目的是不仅要监控别人,也要监控自己)

安装rrdtol

yum  -y  install  lrzsz  (拖入cacti软件包)

mkdir  /iso   &&  mount  -o  loop  cacti.iso   /iso/   &&   cp  -a  /iso/*  .

tar  -zxvf  rrdtool-1.4.5.tar.gz   &&    cd  rrdtool-1.4.5

yum  -y  install  gcc   gcc-c++

./configure –prefix=/usr/local(编译的时候会报错,要先让它报错,然后退出做对应的操作)

cd   &&  tar zxvf cgilib-0.5.tar.gz  cgi的调用脚本)

cd  cgilib-0.5  &&   make  makefile已经存在所以直接make即可)

cp  libcgi.a   /usr/local/lib   &&   cp  cgi.h  /usr/include/  (一般c语言的头文件都是.h结尾)

yum -y install libart_lgpl-devel (安装libpng的相关依赖包)

 yum  -y  install pango-devel* cairo-devel*(是RRTOOL所需的软件包即调用的函数)

cd  /root/rrdtool-1.4.5  (解决之前的报错)

./configure –prefix=/usr/local

make  &&  make  install   rrdtool编译安装成功)


部署cacti,设置数据库连接

这个cacti比较古老,新的软件包一般都是rpm 升级,这里使用的是补丁的升级方式。

cd    &&   cd  cacti   &&  tar  -zxvf  cacti-0.8.7g.tar.gz   -C  /var/www/html/

cd  /var/www/html/  &&  mv  cacti-0.8.7g/  cacti   &&  cd   cacti/ (目录下是一些PHP脚本文件)

patch -p1 -N <  /root/cacti/data_source_deactivate.patch  (数据语言)

patch -p1 -N  <  /root/cacti/graph_list_view.patch   (图像列表)

patch -p1 -N  <  /root/cacti/html_output.patch  html的输出配置)

patch -p1 -N  <  /root/cacti/ldap_group_authenication.patch   linux中的域组环境)

patch -p1 -N  <  /root/cacti/script_server_command_line_parse.patch   (服务脚本)

patch -p1 -N  <  /root/cacti/ping.patch

patch -p1 -N  <  /root/cacti/poller_interval.patch   (可用域或池)

 

添加检测数据的用户账户,更改权限,保证读写数据正常

 useradd  runct  (名字随便)

chown   -R  root:root  ./  (赋予一个最基础的权限到当前目录下)

chown -R runct.runct rra/   log/  rraRRDTOOL生成的图片存放目录,PHP调用RRDTOOL生成图片,图片放在rra目录下,log写入日志相关)

mysql  -uroot -p  

create database cactidb default character set utf8;  (创建数据库 cactidb 默认字符集为UTF8

grant all on cactidb.* to 'cactiuser'@'localhost' identified by 'pwd@123';  (创建了一个用户 cactiuser 密码是pwd@123  允许cactidb所有权限。如果现在的cactidb是放在远程服务器的,这里就写的是地址)

ls   cacti.sql   (这个文件是数据库的备份格式,所以要还原到数据库中)

 mysql  -uroot   -p  cactidb  < cacti.sql   (还原到cactidb数据库中)

mysql  -uroot  -p   &&  use  cactidb   &&   show  tables;(一定要确认查看有没有还原成功)

mysql> show tables;
+---------------------------+
| Tables_in_cactidb         |
+---------------------------+
| cdef                      |
| cdef_items                |
| colors                    |
| data_input                |
| data_input_data           |
| data_input_fields         |
| data_local                |
| data_template             |
| data_template_data        |
| data_template_data_rra    |
| data_template_rrd         |
| graph_local               |
| graph_template_input      |
| graph_template_input_defs |
| graph_templates           |
| graph_templates_gprint    |
| graph_templates_graph     |
| graph_templates_item      |
| graph_tree                |
| graph_tree_items          |
| host                      |
| host_graph                |
| host_snmp_cache           |
| host_snmp_query           |
| host_template             |
| host_template_graph       |
| host_template_snmp_query  |
| poller                    |
| poller_command            |
| poller_item               |
| poller_output             |
| poller_reindex            |
| poller_time               |
| rra                       |
| rra_cf                    |
| settings                  |
| settings_graphs           |
| settings_tree             |
| snmp_query                |
| snmp_query_graph          |
| snmp_query_graph_rrd      |
| snmp_query_graph_rrd_sv   |
| snmp_query_graph_sv       |
| user_auth                 |
| user_auth_perms           |
| user_auth_realm           |
| user_log                  |
| version                   |
+---------------------------+
48 rows in set (0.00 sec)

mysql> quit
Bye

修改cacti配置文件  (因为PHP还不知道怎么连接数据库)

vim  include/config.php (修改数据库名称以及密码)

/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "pwd@123";
$database_port = "3306";

vim  /etc/httpd/conf/httpd.conf

搜索/ServerName取消注释并修改域名www.baidu.com

修改网页主目录到 /var/www/html/cacti目录下

默认分发路径修改为  /var/www/cacti

搜索 index.html  (添加index.php

修改默认字符集为 UTF-8

 service  httpd  restart



浏览器安装

web访问 10.10.10.11/install

下一步并选择新建安装,绿色检测通过 点击finish

默认用户名admin  默认密码admin

点击login后会强制修改密码  。修改为123save

console控制台  graphs控制台

第一栏  new  graphs  新建图片

     Graph  Management 图像管理

Greph  Trees  图像树(即如果为这台主机生成图像,如果不挂在树上就不展示)

Data  Sources 数据来源   

Devices  设备管理

Data  Quenes  数据查询操作

Data  input  Methods  数据输入

Graph  Templates  图像模板

Host   Templates  主机模板

Data  Templates  数据模板(即要怎样收集数据要有对应的指标,这些指标都叫模板。比如要收集CPU信息,收集内存信息,怎样去收集都是由模板去定义的)

import Templates  

export  Templates  保存模板

setting  系统的相关设置

system  utillties  系统会话系统日志

user  manager 用户管理

logout  user  退出当前的用户

14:

12执行:yum -y install net-snmp net-snmp-utils lm_sensors

vim  /etc/snmp/snmpd.conf (修改共同体名称为public123) 

取消 视图view all的注释

修改读权限为all

/etc/init.d/snmpd start  &&  chkconfig   snmpd  on

13

snmpwalk   -v  2c  -c  public123 10.10.10.12 tcp (测试收集12的数据。即服务器与客户端已经建立通讯)

返回Web浏览器页面  (点击Devices,默认有localhost,勾选并删除)

点击右上角ADD添加一台主机

修改描述信息随意  设备IP 10.10.10.12(或者主机名)

修改主机模板为 udpnet SNMP host

SNMP的版本选择 Verson1(因为它的兼容更广)

修改共同体名称为  public123


参考cacti中文使用手册配置监控页面

https://wenku.baidu.com/view/0cb52703f78a6529647d5353.html


13:

收集数据

php /var/www/html/cacti/poller.php(用PHP调用这个脚本文件,就会自动创建图片)

crontab -e  (加到定时任务中)

*/5 * * * *  /usr/bin/php  /var/www/html/cacti/poller.php &>/dev/null  (设置5分钟是因为开启默认的自刷新时间为5分钟)

service  crond  restart   &&  chkconfig  crond  on


如果想添加一些比较特殊的功能的话,需要安装对应的插件。

 

安装插件 (安装插件需要提前安装一个插件管理器)

cd   &&  cd  cacti-plugin/

tar  -zxvf  cacti-plugin-0.8.7g-PA-v2.8.tar.gz  &&   cd  cacti-plugin-arch/

mysql  -uroot  -p  cactidb  <  pa.sql  (还原到数据库,遇到.sql文件结尾的都要还原到数据库)

cd  /var/www/html/cacti/

patch  -p1  -N  <  /root/cacti-plugin/cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.8.diff

cd  plugins  (上述补丁打完后多出的目录)

 

web点击到  console选项

点击  user  managerment    点击admin管理员角色   滚动下滑 多出一个 plugin  managerment  勾选保存

点击  plugin managerment  显示没有插件

13

mv  /root/cacti-plugin/monitor-0.8.2.tar.gz  .   (将插件拷贝到当前目录)

tar  -zxvf  monitor-0.8.2.tar.gz  (注意解压目录)

 rm  -rf  monitor-0.8.2.tar.gz

 cd    monitor/   &&  mysql  -uroot  -p  cactidb <  monitor.sql  (还原数据库)

web浏览器刷新,默认向下箭头即没开启  点击箭头开启

点击 monitor

Next Post

Previous Post

© 2021 ~阿弥陀佛~

ICP备案号: 京ICP备19038630号

版权所有@ 王力翔

耗时 0.408 秒 | 查询 40 次 | 内存 22.74 MB