简介

在企业网络运维过程中,管理员必须时刻关注服务器的运行状态,如CPU、内存、磁盘空间使用情况等。为了能够及时的发现问题,尽量减少故障的发生。当网络中的设备,服务器等数量较多时,可以部署一套监控系统来实时跟踪服务器,我们通常会借助一些软件来实现

今天我们就以Cacti套件为例,介绍服务器集中监测体系的构建和使用

一、Cacti基本监测体系概述

Cacti是一款使用PHP语言开发的性能与流量监测工具,监测的对象可以使linux或windows服务器也可以是路由交换等网络设备,主要是基于SNMP(Simple Network Management Protocol 简单网络管理协议)来搜集CPU、占用、内存使用、运行进程数以及磁盘使用空间、网卡流量等各种数据。说白了就是监控服务器状态。

实际上Cacti本身只是一个Web界面的管理套件,通过调用Net-SNMP工具来采集检测数据 并结合RRDtool(Round Robin Database tool 轮询数据库工具)记录数据并绘制图片。如图1所示

图1

Cacti提供了优秀的整合和协调能力,充分利用LAMP技术平台、SNMP协议工具以及RRDtool数据引擎、不仅配置简单、直观、而且支持插件和数据模板,使用时非常整洁,便于扩展。

实际上Cacti可以从逻辑上分为三个部分、第一部分:被检测的对象,也就是客户端。第二部分:检测平台,也就是服务器端。第三部分:管理平台。Cacti采用了两种结构实现功能,一种是C/S结构主要是实现服务器到客户端监控另外一种就是B/S主要完成对Cacti平台的管理。从图1我们可以看出,管理端是在Web上对Cacti进行管理。

简单的整理一下Cacti的工作过程。

首先通过LAMP平台部署Cacti监控工具,之后通过客户端的web登录Cacti进行多其他客户端的设置,可以从图1看到Cacti采集数据时必须要使用SNMP协议来连接客户端进而能够采集数据吗,也就是说客户端必须支持SNMP协议。监控之后通过RRDtool来生成图表,其实这个图表是静态的,经过频繁的数据采集,我们也可以认为是动态的,也就是说Cacti是基于某段时间的监控。

二、服务器配置(控制端——client)

实验拓扑

主机

操作系统

IP地址

主要软件

centos1

CentOS 7 x86_64

192.168.92.130

Cacti-0.8.8b.tar.gz

Rrdtool-1.4.8.tar.gz

centos2

CentOS 7 x86_64

192.168.1.132

Mysql.5.5.tar.gz

构建Cacti集中监测平台的服务器端时,应提前安装好LAMP或者是LNMP平台,以及Net-SNMP和RRDtool等软件支持,然后下载Cacti源码包

1、安装Net-SNMP、RRDtool软件支持

(1)构建数据库及Web平台

前面已经学习过了如何部署源码包的LAMP或LNMP平台,为了方便演示这里直接以RPM包的LAMP平台为基础搭建Cacti。所需安装包如下所述。若还提示缺少一些包请在以YUM的方式进行安装即可。

# yum -y install httpd
# yum -y install mariadb mariadb-server
# yum -y install zlib freetype libjpeg fontconfig gd libxml2 libxml2-devel php-gd
 //安装PHP需要的库文件
# yum -y install php php-mysql
# systemctl start httpd.service
# chkconfig httpd on
# systemctl start mariadb
# chkconfig mariadb on
# setenforce 0
# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
# mysqladmin -u root -p password '123.abc'
Enter password: (此处直接回车即可) 

服务启动之后我们可以编写测试页来验证LAMP平台的协同工作

# cat /var/www/html/test.php
<?php
$link=mysql_connect('localhost','root','123.abc');
if ($link) echo "mysql connect is ok!!";
mysql_close();
phpinfo();
?>

访问页面测试

经过测试LAMP平台已经能够完全的结合在一起并运行。

之后在客户端进行访问

(2)安装net-snmp-utils软件包

Cacti平台通过SNMP协议采集检测数据,这些工具由net-snmp-utils软件包提供,所需安装的软件包如下所示。

# yum -y install net-snmp net-snmp-utils

(3)安装rrdtool软件包

下载rrdtool软件到/root目录下

通过YUM确认并安装相关软件包 

# yum -y install cairo-devel zlib libxml2 libxml2-devel glib2 glib2-devel libpng libpng-devel freetype freetype-devel libart_lgpl pango pango-devel perl-CPAN

如果提示需要其他软件包,在另行安装。

安装rddtool源码包

# tar -xvf rrdtool-1.4.5.tar.gz
# cd rrdtool-1.4.5/
# ./configure --prefix=/usr/local && make && make install

2、部署Cacti、设置数据库连接

(1)部署Cacti源码包

下载到root目录下

将下载的源码包解压到root下并移动到网页文档根目录下改名为cacti

# wget http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz
# tar -xvf cacti-0.8.8b.tar.gz
# mv cacti-0.8.8b /var/www/html/cacti

添加一个用户,用来读写检测数据的用户账户(如cacti),并调整期目录的属主,以便正常读取以及写入数据

# useradd cacti
# chown -R cacti:cacti /var/www/html/cacti/

(2)建立数据库,表结构

先创建一个用于cacti检测平台的数据库,并授权一个用户cactiuser然后使用cacti源码目录下的cacti.sql脚本,导入预设的各种数据表 

# mysql -uroot -p123.abc
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database cacti default character set utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on cacti.* to cactiuser@'localhost' identified by '123.abc';
Query OK, 0 rows affected (0.11 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.16 sec)

导入

# cd /var/www/html/cacti/
# mysql -u cactiuser -p cacti < cacti.sql
Enter password:   //输入密码
[root@localhost cacti]# mysql -uroot -p123.abc
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use cacti;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [cacti]> show tables;    //验证是否导入表到cacti库中
+---------------------------+
| Tables_in_cacti           |
+---------------------------+
| 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  |
| plugin_config             |
| plugin_db_changes         |
| plugin_hooks              |
| plugin_realms             |
| 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                   |
+---------------------------+
52 rows in set (0.00 sec) 

上诉操作中,创建Cacti库时,指定默认的编码字符集为utf8,便于中文支持,导入预设库时最好是使用cactiuser导入。最后验证一下是否导入。

3)调整cacti配置文件

cacti的配置文件位于源码目录下的include/目录下,名称为config.php,要使Cacti系统能够正常访问并使用数据库,必须修改config.php文件,却保数据库连接参数正确。

# vim include/config.php
$database_type = "mysql";			 //指定连接的类型
$database_default = "cacti";			 //连接的库
$database_hostname = "localhost";        //登录源
$database_username = "cactiuser";        //用户名
$database_password = "123.abc";         //用户密码
$database_port = "3306";			//连接的端口
$database_ssl = false;				//不启用ssl
$url_path = "/";					//指定cacti的根目录,这个目录是cacti的文件目录下,我们后面还需要修改httpd的主配置文件。

  3、Cacti的初始化安装

(1)调整httpd配置

修改httpd的主配置文件,设置好网页文档根目录、自动索引页

# vim /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/html/cacti"
<Directory "/var/www/html/cacti">
    Options Indexes none
 	 AllowOverride None
	 Order allow,deny
    Allow from all
</Directory>
DirectoryIndex  index.php  index.html index.html.var
AddDefaultCharset UTF-8						

 重启服务

# systemctl restart httpd

(2)初始化Cacti系统

在游览器中访问Cacti服务器的Web服务,如http://192.168.1.1,除此访问时会自动跳转至安装指南界面如图3所示

以上就是安装界面,内容是一些欢迎信息,直接点击下一步继续

选择新的安装,点击Next继续

以上信息必须全部都为绿色,如果出现红色,请检查相关步骤。点击Finish完成安装

 

只要看到了这个登录界面,那么我们今天的Cacti就部署完成了,默认的用户名和密码都是admin,首次登录之后需要修改密码。个人建议先不要进行登录,先进行一下操作,之后在进行登录。

三、客户端的配置

无论是路由器、交换机、还是linux或windows服务器,只要正确支持SNMP协议,并允许Client服务器采集数据,就能够对其进行监测。下面仅介绍在linux服务器中启用SNMP支持并设置共同体名的简单方法

ps:共同体名,值的是一种验证机制,所有的client都必须使用同一个共同体名,就像我们之前学习的hsrp的组一样,只有组号相同才能是一个组的,这里也是如此,只有共同体名相同的时候,Cacti才能通过这个共同体名对client进行监控。

需要安装net-snmp、lm_sensors软件包,然后通过修改其配置文件/etc/snmp/snmpd.conf,并启动snmpd服务,并建立规则,默认监听UDP的161号端口。

# yum -y install net-snmp lm_sensors
# vim /etc/snmp/snmpd.conf

com2sec notConfigUser  192.168.90.130       public
access  notConfigGroup ""      any       noauth    exact  all none none
view all    included  .1                               80

192.168.92.130 指的是Cacti的服务器IP(默认是default),表示允许其查询本机数据,public指的就是共同体名,用来识别及验证

all表示开放所有的SNMP查询权限(默认是 SystemView)

去掉注释之后,以便支持各种查询。

# systemctl start snmpd
# iptables -I INPUT -p udp --dport 161 -j ACCEPT

四、使用Cacti的Web控制台

配置好Cacti的主控端、被控端之后,就可以设置集中监测任务了。下面讲学习在Cacti系统的Web控制台的基本操作,以及如何通过添加插件来扩展集中监测功能。

在游览器中访问Cacti系统,如http://192.168.1.1,输入用户和密码,即可登录到Web控制台界面

 

未完待续。。。

  

 

  

centos7上安装cacti监控的更多相关文章

  1. 在centos7上安装Jenkins

    在centos7上安装Jenkins 安装 添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins ...

  2. 在 CentOS7 上安装 zookeeper-3.4.9 服务

    在 CentOS7 上安装 zookeeper-3.4.9 服务 1.创建 /usr/local/services/zookeeper 文件夹: mkdir -p /usr/local/service ...

  3. 在 CentOS7 上安装 MongoDB

    在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录: cd /usr/local 3 在当前目录下创建 ...

  4. 在 CentOS7 上安装 MySQL5.7

    在 CentOS7 上安装 MySQL5.7 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建 ...

  5. 在 CentOS7 上安装 Tomcat9

    在 CentOS7 上安装 Tomcat9 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建目 ...

  6. 在CentOS7上安装JDK1.8

    在CentOS7上安装JDK1.8 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建目录 to ...

  7. 在Centos7上安装漏洞扫描软件Nessus

    本文摘要:简单叙述了在Centos7上安装Nessus扫描器的过程   Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件,Nessus的用户界面是基于Web界面来访问Nessus漏洞扫描器 ...

  8. 如何在centos7上安装源码包

    在我们使用linux的过程中,有很多程序是通过红帽官网给的系统中安装的,但是一般来说,系统更新的速度比较慢,如果这个时候我们又想用最新版的该怎么办呢?总不能一直等系统升级吧╮(╯﹏╰)╭所以,我们可以 ...

  9. centos7上安装0penStack

    centos7上安装0penStack author:headsen chen 2017-10-09  20:41:54 个人原创,欢迎转载,请注明作者,出去,否则依法追究责任 一,准备工作(配置ip ...

随机推荐

  1. 3、支付结果 /items/result?point=1&orderNo=201903211035400001

    <template> <div> <div class="toppic"> <img src="../../../assets/ ...

  2. Pandas排列和随机采样

    随机重排序 import pandas as pd import numpy as np from pandas import Series df = pd.DataFrame(np.arange(5 ...

  3. mybatis 根据参数映射对应模型

    ORM 框架的优势在于能让我们利用面向对象的思维去操作数据库, hibernate 作为重量级的 ORM 框架对面向对象的支持很强大.作为半自动化的 mybatis ,对面向对象的支持也是很完备的.这 ...

  4. 258. Add Digits 入学考试:数位相加

    [抄题]: Given a non-negative integer num, repeatedly add all its digits until the result has only one ...

  5. Python开发——函数【基础】

    函数的定义 以下规则 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数. 函数的第一行语句可以选择性地使用文档字符 ...

  6. python 2与python3 区别

    源码区别 python3:python2 a) py3 优美简单清晰. b) py2:源码重复,混乱,不规范,冗(rong)余(不需要特多,啰嗦). test a)    py3:可以中文也可以英文( ...

  7. js原生的节点操作API

    // yi获取元素节点 //一 :过id的方式( 通过id查找元素,大小写敏感,如果有多个id只找到第一个) document.getElementById('div1'); // 通过类名查找元素, ...

  8. maven 项目中没有src/test/java文件夹

    项目右键->buildPath configure Build Path->点击选项卡Libraries->选中JRE System Library->点击edit->选 ...

  9. Python12/11--盒子的显隐/布局/z-index/流式布局思想

    1.盒子的显隐 display:none      在页面中不占位,采用定位布局后,显示隐藏都不会影响其他标签,不需要用动画处理时,一般用这个 opacoity : 0        在页面中占位,采 ...

  10. Linux 第七天

    软件包管理 1.软件包分类 1)源码包(脚本安装包) 优点: l  开源,如果有足够的能力,可以修改源代码 l  可以自由选择所需的功能 l  软件是编译安装,所以更加适合自己的系统,更加稳定也效率更 ...