返回顶部
首页 > 资讯 > 数据库 >centos7下搭建cacti
  • 634
分享到

centos7下搭建cacti

2024-04-02 19:04:59 634人浏览 八月长安
摘要

cacti什么是Cacti?Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基于PHP,Mysql,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据

cacti

什么是Cacti?

Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基于PHP,Mysql,SNMP及RRDTool开发网络流量监测图形分析工具。它通过snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。

cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。

mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。

snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin ArcHive),它能够存储的数据笔数在创建时就已经定义。关于RRDTool的知识请参阅RRDTool教学。

 

什么是SNMP?

snmp(Simple Network Management Protocal, 简单网络管理协议)在架构体系的监控子系统中将扮演重要角色。大体上,其基本原理是,在每一个被监控的主机或节点上 (如交换机)都运行了一个 agent,用来收集这个节点的所有相关的信息,同时监听 snmp 的 port,也就是 UDP 161,并从这个端口接收来自监控主机的指令(查询和设置)。

如果安装 net-snmp,被监控主机需要安装 net-snmp(包含了 snmpd 这个 agent),而监控端需要安装 net-snmp-utils,若接受被监控端通过trap-communicate发来的信息的话,则需要安装net-snmp,并启用trap服务。如果自行编译,需要 beecrypt(libbeecrypt)和 elf(libraryelf)的库。

 

 

什么是RRDtools?

RRDtool是指Round Robin Database 工具(环状数据库)。Round robin是一种处理定量数据、以及当前元素指针的技术。想象一个周边标有点的圆环--这些点就是时间存储的位置。从圆心画一条到圆周的某个点的箭头--这就是指针。就像我们在一个圆环上一样,没有起点和终点,你可以一直往下走下去。过来一段时间,所有可用的位置都会被用过,该循环过程会自动重用原来的位置。这样,数据集不会增大,并且不需要维护。RRDtool处理RRD数据库。它用向RRD数据库存储数据、从RRD数据库中提取数据。


centos7下搭建cacti

 

工作原理:

snmp关系着数据的收集,rrdtool关系数据存储和图表的生成,snmp抓取的数据不是存储在数据库中,而是存储在rrdtool生成的rrd文件中,简单原理图如下:

centos7下搭建cacti 

 

实验

 

1.搭建lamp环境

 

(1)配置apache

[root@cacti-server ~]# yum -y install Httpd

[root@cacti-server ~]# systemctl start httpd

[root@cacti-server ~]# systemctl enable httpd

[root@cacti-server ~]# firewall-cmd --permanent --add-service=http

success

[root@cacti-server ~]# firewall-cmd --reload

success

 

(2)配置mariadb

[root@cacti-server ~]# yum -y install mariadb-server mysql-devel

[root@cacti-server ~]# systemctl start mariadb

[root@cacti-server ~]# mysql_secure_installation

Set root passWord? [Y/n]

Remove anonymous users? [Y/n] y

Disallow root login remotely? [Y/n] y

Remove test database and access to it? [Y/n] y

Reload privilege tables now? [Y/n] y

 

[root@cacti-server ~]# mysql -u root -p

MariaDB [(none)]> grant all privileges on *.* to test@localhost identified by 'redhat'; #创建用于测试php和mariadb连通性的用户

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;

 

[root@cacti-server ~]# systemctl restart mariadb

[root@cacti-server ~]# systemctl enable mariadb

[root@cacti-server ~]# firewall-cmd --permanent --add-port=3306/tcp

success

[root@cacti-server ~]# firewall-cmd --reload

success

 

(3)配置php

[root@cacti-server ~]# yum -y install php php-mysql php-gd php-pear

[root@cacti-server ~]# vim /etc/php.ini  

date.timezone =PRC    #修改时区

 

[root@cacti-server ~]# vim /var/www/html/index.php    #编辑测试页面

<?php

    $conn=mysql_connect('localhost','test','redhat');

    if ($conn)

       echo "database connect ok";

    else

       echo "database connect failure";

?>

<?php

    phpinfo()

?>

 

[root@cacti-server ~]# systemctl restart httpd

 

(4)测试

centos7下搭建cacti 

 

 

2.安装配置cacti

 

(1)下载软件

[root@cacti-server ~]# cd /usr/local/src/

[root@cacti-server src]# wget http://www.cacti.net/downloads/cacti-0.8.8f.tar.gz

[root@cacti-server src]# tar zxvf cacti-0.8.8f.tar.gz

[root@cacti-server src]# mv cacti-0.8.8f /var/www/html/cacti

 

(2)创建cacti数据库和cacti用户,赋予权限

[root@cacti-server ~]# mysql -u root -p

MariaDB [(none)]> create database cacti default character set utf8;

MariaDB [(none)]> grant all privileges on cacti.* to cacti@localhost identified by 'redhat';

MariaDB [(none)]> flush privileges;

 

(3)把cacti.sql导入数据库

[root@cacti-server cacti]# mysql -ucacti -predhat cacti < /var/www/html/cacti/cacti.sql

 

(4)编辑config.php和global.php

[root@cacti-server cacti]# vim /var/www/html/cacti/include/config.php|global.php

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cacti";

$database_password = "redhat";

$database_port = "3306";

$database_ssl = false;

 

(5)安装rrdtool以生成图像

[root@cacti-server src]# yum -y install rrdtool rrdtool-devel rrdtool-php rrdtool-perl

[root@cacti-server src]# yum -y install gd gd-devel php-gd    #rrdtool绘制图像需要的图形库

 

(6)安装snmp服务

[root@cacti-server cacti]# yum -y install net-snmp net-snmp-utils php-snmp net-snmp-libs

 

(7)编辑配置文件

[root@cacti-server ~]# vim /etc/snmp/snmpd.conf

41  com2sec notConfigUser  127.0.0.1       public

62  access  notConfigGroup ""   any     noauth    exact  all none none

85  view all    included  .1          80

 

[root@cacti-server ~]# systemctl restart snmpd.service

[root@cacti-server ~]# systemctl enable snmpd.service

 

(8)授权目录权限

[root@cacti-server ~]# useradd -r -M cacti

[root@cacti-server ~]# chown -R cacti /var/www/html/cacti/rra/

[root@cacti-server ~]# chown -R cacti /var/www/html/cacti/log/

 

(9)配置一个抓图的计划任务

[root@cacti-server ~]# crontab -e

*/5 * * * * /usr/bin/php  /var/www/html/cacti/poller.php >> /tmp/cacti_rrdtool.log

 

(10)浏览器访问cacti管理页面进行安装

 

(11)测试

[root@cacti-server ~]# /usr/bin/php /var/www/html/cacti/poller.php

OK u:0.00 s:0.01 r:0.80

OK u:0.00 s:0.02 r:1.21

OK u:0.00 s:0.02 r:1.39

OK u:0.00 s:0.02 r:1.50

OK u:0.00 s:0.02 r:1.87

10/21/2016 04:02:32 PM - SYSTEM STATS: Time:1.4211 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5

 

 

3.安装Spine

 

注:由于cacti默认使用cmd.php来轮询数据,速度会很慢,特别是在监控节点比较多的情况下,cmd.php就更显不足了,因此我们采用Spine来轮询数据。cacti-spine是一个由C语言开发的,用于替代cmd.php的快速获取数据的引擎。

(1)编译安装spine

[root@cacti-server ~]# cd /usr/local/src/

[root@cacti-server src]#wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8f.tar.gz

[root@cacti-server src]# tar zxvf cacti-spine-0.8.8f.tar.gz

[root@cacti-server cacti-spine-0.8.8f]# ./configure

[root@cacti-server cacti-spine-0.8.8f]# make

[root@cacti-server cacti-spine-0.8.8f]# make install

 

(2)拷贝snmp的配置文件

[root@cacti-server ~]# cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf

注:spine默认配置文件需要放在/etc才会生效,否则测试时会报如下错误:
SPINE: Poller[0] FATAL: Unable to read configuration file! (Spine init)

 

(3)编辑配置文件

[root@cacti-server ~]# vim /etc/spine.conf

DB_Host         localhost

DB_Database     cacti

DB_User         cacti

DB_Pass         redhat

DB_Port         3306

 

(4)测试

[root@cacti-server ~]# /usr/local/spine/bin/spine

SPINE: Using spine config file [/etc/spine.conf]

SPINE: Version 0.8.8f starting

SPINE: Time: 0.1278 s, Threads: 5, Hosts: 2

 

(5)修改WEB的设置

进入Cacti页面设置spine路径

Console -> Configuration -> Settings -> Paths -> Alternate Poller Path -> Spine Poller File Path->/usr/local/spine/bin/spine

 

(6)修改Cacti使用的Poller Type
Console -> Configuration -> Settings ->Poller->Poller Type->spine

 

(7)查看日志

[root@cacti-server ~]# cat /var/www/html/cacti/log/cacti.log

10/22/2016 12:45:50 AM - SYSTEM STATS: Time:0.1146 Method:spine Processes:1 Threads:1 Hosts:2 HostsPerProcess:2 DataSources:0 RRDsProcessed:0

 

 

4.添加被监控主机

 

(1)安装snmp服务

[root@cacti-client ~]# yum -y install net-snmp net-snmp-devel net-snmp-utils

 

(2)编辑配置文件

[root@cacti-client ~]# vim /etc/snmp/snmpd.conf

41  com2sec notConfigUser  192.168.23.156       public

62  access  notConfigGroup ""   any     noauth    exact  all none none

85  view all    included  .1                     80

 

[root@cacti-client ~]# systemctl restart snmpd

[root@cacti-client ~]# systemctl enabled snmpd

 

(3)配置防火墙

[root@cacti-client ~]# firewall-cmd --permanent --add-port=161/udp

success

[root@cacti-client ~]# firewall-cmd --reload

success

 

 

5.监控apache

 

客户端的配置

 

(1)编辑apache的配置文件,加入server-status模块的设置

[root@cacti-client ~]# vim /etc/httpd/conf/httpd.conf

ExtendedStatus On

<Location /server-status>

  SetHandler server-status

  Order deny,allow

  Deny from all

  Allow from all

</Location>

[root@cacti-client ~]# systemctl restart httpd

[root@cacti-client ~]# systemctl enable httpd

 

(2)查看apache加载的模块

[root@cacti-client ~]# apachectl -t -D DUMP_MODULES|grep status

 status_module (shared)

 

(3)访问http://192.168.23.157/server-status查看模块的详细信息

 centos7下搭建cacti

[root@cacti-client ~]# firewall-cmd --permanent --add-service=http

success

[root@cacti-client ~]# firewall-cmd --reload

success

 

服务端的配置

 

(1)安装监控apache的php页面

[root@cacti-server ~]# cd /usr/local/src/

[root@cacti-serversrc]#wget http://forums.cacti.net/download/file.php?id=18576&sid=8d429b69af5be45179d928e1303f2077

[root@cacti-server src]# unzip ApacheStats_0.8.2.zip

[root@cacti-server src]# cd ApacheStats_0.8.2/

[root@cacti-serverApacheStats_0.8.2]#cp ss_apache_stats.php /var/www/html/cacti/scripts/

 

(2)导入模板

在Cacti Web界面导入cacti_host_template_webserver_-_apache.xml模板:

点击Import/Export->Import Templates,上传模板即可

 

(3)添加服务器并创建图表

登录Cacti Web界面,添加被监控apache服务器设备,并创建相应图表:

Devices->Add->WebServer–Apache模板->Create New Graphs,添加所需图表即可。等待一段时间就会出图

 

 

6.监控mariadb

 

(1)创建用于监控主机连接mariadb进行监控的用户

[root@cacti-client ~]# mysql -uroot -predhat

MariaDB [(none)]> grant process,super,replication client on *.*to 'mysqltest'@'192.168.23.156' identified by 'redhat';  

MariaDB [(none)]> flush privileges;

[root@cacti-client ~]# systemctl restart mariadb

 

(2)配置防火墙

[root@cacti-client ~]# firewall-cmd --permanent --add-port=3306/tcp

success

[root@cacti-client ~]# firewall-cmd --reload

success

 

(3)安装监控mariadb的php页面文件

[root@cacti-server ~]# cd /usr/local/src/

[root@cacti-serversrc]#wget https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-monitoring-plugins-1.1.6.tar.gz

[root@cacti-server src]# tar zxvf percona-monitoring-plugins-1.1.6

[root@cacti-server src]# cd percona-monitoring-plugins-1.1.6/cacti/scripts/

[root@cacti-serverscripts]#cpss_get_mysql_stats.php  /var/www/html/cacti/scripts/

 

(4)编辑页面文件

[root@cacti-server scripts]# vim /var/www/html/cacti/scripts/ss_get_mysql_stats.php

$mysql_user = 'mysqltest';   #用于监控主机连接mariadb的用户

$mysql_pass = 'redhat';    #用户密码

 

(5)导入模板

在Cacti Web界面导入cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.6.xml模板:

点击Import/Export->Import Templates,上传模板即可

 

(6)添加服务器并创建图表

登录Cacti Web界面,添加被监控mariabdb服务器设备,并创建相应图表:

Devices->Add->dbServer–Mysql模板->Create New Graphs,添加所需图表即可。等待一段时间就会出图

 

 

7.邮件报警

 

(1)下载插件

[root@cacti-server ~]# cd /usr/local/src/

[root@cacti-server src]# tar zxvf settings-v0.71-1.tgz

[root@cacti-server src]# mv settings /var/www/html/cacti/plugins/

[root@cacti-server src]# tar zxvf thold-v0.5.0.tgz

[root@cacti-server src]# mv thold /var/www/html/cacti/plugins/

 

(2)访问cacti管理页面安装插件

 

 

(3)测试

 

centos7下搭建cacti

centos7下搭建cacti

 

(4)告警被触发,查看邮件

[root@cacti-server ~]# cat  /var/spool/mail/root

..................................

..................................

To: root@192.168.23.156

Subject: ALERT: test - Used Space - / [hdd_used] [hdd_used] went above threshold of 25 with 36.8871

From: Cacti <Cacti@localhost.localdomain>

Date: Mon, 24 Oct 2016 14:00:03 +0800

..................................

An alert has been issued that requires your attention.

..................................

Host: test (192.168.23.157)

URL: http://192.168.23.156/cacti//graph.php?local_graph_id=103&rra_id=1

Message: ALERT: test - Used Space - / [hdd_used] [hdd_used] went above threshold of 25 with 36.8871

..................................

Content-Type: p_w_picpath/jpg

Content-Disposition: inline; filename="103.jpg"

...................................

...................................


您可能感兴趣的文档:

--结束END--

本文标题: centos7下搭建cacti

本文链接: https://lsjlt.com/news/35000.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • centos7下搭建cacti
    cacti什么是CactiCacti 在英文中的意思是仙人掌的意思,Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,...
    99+
    2024-04-02
  • CentOS下搭建cacti监控
    一、cacti 监控软件简介1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户...
    99+
    2024-04-02
  • CentOS7下怎么搭建RabbitMQ
    本文小编为大家详细介绍“CentOS7下怎么搭建RabbitMQ”,内容详细,步骤清晰,细节处理妥当,希望这篇“CentOS7下怎么搭建RabbitMQ”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。RabbitM...
    99+
    2023-06-27
  • Centos7下NFS服务搭建介绍
    目录一、服务端二、客户端三、测试服务一、服务端 1.用YUM源下载NFS相关服务 2.创造共享目录并在NFS相关配置文件写入共享目录 3.使用exportfs使设置立刻生效 4.重启NFS相关服务 5.使用s...
    99+
    2022-06-04
    CentOS7下NFS服务安装及配置 centos7部署NFS实践
  • Centos7环境下YUM如何搭建
    这篇文章将为大家详细讲解有关Centos7环境下YUM如何搭建,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。进入yum源的配置文件ls查看配置文件的东西建立一个目录(随意创建一个目录) ,然后将...
    99+
    2023-06-22
  • Centos7下NFS服务怎么搭建
    小编给大家分享一下Centos7下NFS服务怎么搭建,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、服务端用YUM源下载NFS相关服务 2.创造共享目录并在NFS相关配置文件写入共享目录  ...
    99+
    2023-06-22
  • Centos7下怎么搭建Laravel环境
    这篇文章主要介绍了Centos7下怎么搭建Laravel环境,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。准备工作更换阿里源服务器安装的centos7系统,先来换下阿里源。$...
    99+
    2023-06-20
  • CentOS7下怎么搭建Docker环境
    这篇文章主要介绍了CentOS7下怎么搭建Docker环境的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CentOS7下怎么搭建Docker环境文章都会有所收获,下面我们一起来看看吧。Docker 是一个开源的...
    99+
    2023-06-28
  • centos7下ldap服务怎么搭建
    在 CentOS 7 上搭建 LDAP 服务可以按照以下步骤进行: 安装 OpenLDAP 和相关工具: sudo yum in...
    99+
    2023-10-22
    centos7 ldap
  • 生产环境下搭建 nagios+nconf+cacti+npc的整合
    系统:CentOS6.5 内核版本系统:2.6.32-431.23.3.el6.x86_64关闭iptables 、selinuxchkconfig iptables off安装前的准备工作yum inst...
    99+
    2024-04-02
  • centos7下搭建DNS服务器介绍
    目录一:项目环境:二:dns服务器配置i:配置正向解析:ii :配置反向解析三:配置主从服务器:一:项目环境: 主机 角色 ...
    99+
    2022-06-04
    centos7搭建DNS服务器 centos配置DNS服务器
  • Centos7环境下YUM的搭建方法
    1.进入yum源的配置文件 2.ls查看配置文件的东西 3.建立一个目录(随意创建一个目录),然后将yum源中配置文件全部用mv指令移动到创造的目录中并查看 4.在创造的目录中将CentOS-Media.repo移...
    99+
    2022-06-04
    CentOS下搭建yum centos搭建本地yum仓库
  • centos7下如何搭建DNS服务器
    小编给大家分享一下centos7下如何搭建DNS服务器,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一:项目环境:主机角色IP地址功能dns.kevin.comDNS服务器192.168.100.10提供域名解析win.k...
    99+
    2023-06-22
  • Centos7搭建zabbix6.0
    此方法适用于zabbix6以上版本 zabbix6.0前期环境准备:Lamp(linux httpd mysql8.0 php) mysql官网下载位置:https://dev.mysql.com/downloads/mysql/ ...
    99+
    2023-09-04
    linux 安全 运维
  • CentOS7搭建jenkins
    Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 安装环境操作系统:centos 7.6 先安装epelyum&n...
    99+
    2023-01-31
    jenkins
  • CentOS7下zabbix 6.0 LTS源码搭建部署
    zabbix基本概述        zabbix是基于web界面的分布式系统监控与网络设备监控系统,能监控各种网络参数,并提供灵活的通知机制,以便管理员快速定位故障并解决 zabbix由两个部分组成:         zabbix...
    99+
    2023-09-01
    zabbix php centos
  • centos7搭建gitlab服务器搭建
    在当今的技术领域,代码管理和版本控制变得越来越重要。为了组织和管理代码,越来越多的开发团队开始使用GitLab进行代码管理。GitLab是一个流行的基于Git的开源代码管理平台,提供了多种功能,例如版本控制、问题跟踪、CI/CD等。在本篇文...
    99+
    2023-10-22
  • CentOS7 yum搭建lamp
    简易搭建lamp环境说明:        server:CentOS7-192.168.230.202  ...
    99+
    2024-04-02
  • CentOS7下RPM模式搭建MySQL5.7.28主从复制
    一、配置文件: 主库(192.168.128.111): [client] port=3306 socket=/approot/data/mysql/mysql.sock default-character-set=utf8 [mys...
    99+
    2021-05-10
    CentOS7下RPM模式搭建MySQL5.7.28主从复制
  • Centos7系统下搭建.NET Core2.0+Nginx+Supervisor环境
    一、linux .NET Core简介  一直以来,微软只对自家平台提供.NET支持,这样等于让这个“理论上”可以跨平台的框架在Linux和macOS上的支持只能由第三方项目提供(比如Mono .NET)。 ...
    99+
    2022-06-04
    Centos7 .NET Core2.0 linux系统安装.NET Centos部署ASP.NET Centos部署.NET+Nginx
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作