Centos7搭建Cacti监控平台

简介

Cacti是用php语言实现的一个软件,它的主要功能是通过snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此cacti的关键在于snmp和rrdtool工具,snmp关系着数据的收集,而rrdtool关系着数据存储和图表的生成
snmp抓到数据并不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下),rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义
Cacti提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善而且界面比较友好
Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图,同时通过Mysql配合PHP程序可以存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等

前期准备

准备两台Centos7虚拟机,关闭防火墙和selinux,同步系统时间,配置IP地址和hostname

hostnameip
master192.168.29.131
node192.168.29.133

master结点部署Nginx和MySQL

#从官网上下载Nginx的yum源并安装
[root@master ~]# yum install nginx -y
#从官网上下载MySQL的yum源并安装
[root@master ~]# yum install mysql mysql-server -y
#启动mysql服务
[root@master ~]# systemctl start mysqld
#设置mysql登陆密码等

master结点安装依赖

[root@master ~]# yum install php php-mysql php-snmp php-pdo perl-DBD-MySQL net-snmp net-snmp-utils rrdtool rrdtool-devel rrdtool-php -y
#启动snmpd服务
[root@master ~]# systemctl start snmpd

node结点安装依赖

[root@node ~]# yum install net-snmp -y

master部署Cacti

官网下载Cacti压缩包并解压到Nginx的web文件夹中

[root@master ~]# tar -zxvf cacti-1.2.12.tar.gz -C /usr/share/nginx/html/cacti

配置Nginx服务器

[root@master ~]# vi /etc/nginx/conf.d/default.conf 
server {
    listen       80;
    server_name  localhost;
    location / {
    	#配置文件根目录
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    #配置解析PHP文件
    location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html/$fastcgi_script_name;
        include        fastcgi_params;
    }
}
#启动php-fpm服务
[root@master ~]# systemctl start php-fpm 
#启动Nginx服务器
[root@master ~]# systemctl start nginx

配置MySQL

#创建cacti数据库
mysql> create database cacti;
#cacti解压文件夹中自带表格,导入表格
mysql> use cacti
mysql> source /usr/share/nginx/html/cacti/cacti.sql
#创建cactiuser用户
mysql>grant all privileges on cacti.* to 'cactiuser'@'localhost' identified by 'your_password';
mysql>flush privileges;

配置Cacti连接数据库文件

[root@master ~]# vi /usr/share/nginx/html/cacti/include/config.php 
$database_type     = 'mysql';
$database_default  = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'your_password';
$database_port     = '3306';
$database_retries  = 5;
$database_ssl      = false;
$database_ssl_key  = '';
$database_ssl_cert = '';
$database_ssl_ca   = '';

安装Cacti

浏览器访问http://master_ip/cacit,根据页面的报错提示修改内容,直到安装完成
配置php

[root@master ~]# vi /etc/php.ini
date.timezone = Asia/Shanghai
memory_limit = 800M
max_execution_time = 60
#修改完成后重启服务
[root@master ~]# systemctl restart php-fpm

配置MySQL

[root@master ~]# vi /etc/my.cnf
default-time_zone='+8:00'
tmp_table_size=28M
join_buffer_size=57M
innodb_buffer_pool_size	=444M
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_buffer_pool_instances=2
innodb_io_capacity=5000
innodb_io_capacity_max=10000
max_allowed_packet=16777216
max_heap_table_size=40M
tmp_table_size=40M
collation_server=utf8mb4_unicode_ci
character_set_server=utf8mb4
innodb_buffer_pool_instances=11
innodb_buffer_pool_size=1G
#填充时区
[root@master ~]# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
#修改完成后重启mysql
[root@master ~]# systemctl restart mysqld

配置文件权限

[root@master ~]# cd /usr/share/nginx/html/
#设定用户和用户组
[root@master html]# chown -R nginx.nginx cacti/
#创建日志文件
[root@master cacti]# touch log/cacti.log
#设置文件执行权限
[root@master cacti]# chmod 777 log/cacti.log
[root@master cacti]# chmod 777 resource/snmp_queries/
[root@master cacti]# chmod 777 resource/script_server/
[root@master cacti]# chmod 777 resource/script_queries/
[root@master cacti]# chmod 777 scripts/
[root@master cacti]# chmod 777 log/
[root@master cacti]# chmod 777 cache/boost/
[root@master cacti]# chmod 777 cache/mibcache/
[root@master cacti]# chmod 777 cache/realtime/
[root@master cacti]# chmod 777 cache/spikekill/

node结点配置snmp

[root@node ~]# vi /etc/snmp/snmpd.conf
com2sec notConfigUser  192.168.29.131       public
view all    included  .1                               80
#启动snmpd服务
[root@node ~]# systemctl start snmpd

master配置自动采集数据

[root@master ~]# vi /etc/crontab 
*/1 * * * *  root /usr/bin/php /usr/share/nginx/html/cacti/poller.php --force  > /dev/null 2>&1

可视化监控

访问http://master_ip/cacti可进行登录,(默认登录账号密码都为admin)
在这里插入图片描述
忘记登陆密码

mysql> use cacti;
mysql> update user_auth set password=md5("new_password") where id ='1';

登录成功后进入首页
在这里插入图片描述
新建node结点监控
在这里插入图片描述
填写node结点信息并点击创建
在这里插入图片描述
查看监控的设备
在这里插入图片描述
为master结点添加监控模型
在这里插入图片描述
为node结点添加监控模型
在这里插入图片描述
查看监控对象的图形
在这里插入图片描述
master结点图像

node结点图像
在这里插入图片描述

自定义监控对象

编写监控脚本

[root@master ~]# vi /usr/share/nginx/html/cacti/scripts/tcpstate.sh
#监控TCP连接LISTEN的数量
#!/bin/bash
LISTEN_STATE=$(ss -anlp| cut -d " " -f3|grep LISTEN|wc -l)
echo  "listen:$LISTEN_STATE"

#修改脚本权限
[root@master ~]# chmox +x /usr/share/nginx/html/cacti/scripts/tcpstate.sh

添加并配置数据输入方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输出字段配置(输出字段要与脚本输出一致)
在这里插入图片描述
添加配置数据源模板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加配置图形模板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置图形项
在这里插入图片描述
在这里插入图片描述
关联输入
在这里插入图片描述
在这里插入图片描述
关联设备和数据源
在这里插入图片描述
管理设备中添加图形模板
在这里插入图片描述
在这里插入图片描述
测试是否有数据输入到rrd文件

[root@master ~]# rrdtool lastupdate /usr/share/nginx/html/cacti/rra/local_linux_machine_tcpstate.rrd
 tcplisten
1591668242: 35
#数据有输入
#手动刷新图像
[root@master ~]# php /usr/share/nginx/html/cacti/poller.php

查看图像
在这里插入图片描述
自定义监控项配置完成

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在CentOS 7上安装Cacti,您可以按照以下步骤进行操作: 1. 进入Cacti官方网站,下载最新版本的Cacti软件包。您可以使用以下命令将Cacti软件包下载到您的CentOS 7服务器上: ``` wget http://www.cacti.net/downloads/cacti-1.1.23.tar.gz ``` 2. 安装必需的依赖项。Cacti需要一些软件包和库文件来正常运行。您可以使用以下命令安装这些依赖项: ``` yum install -y httpd php php-mysql php-snmp php-xml php-ldap php-mbstring mysql-server net-snmp net-snmp-utils ``` 3. 启动和设置MySQL服务。使用以下命令启动MySQL服务,并设置MySQL服务在系统启动时自动启动: ``` systemctl start mysqld systemctl enable mysqld ``` 4. 配置MySQL数据库。您需要创建一个新的MySQL数据库,并为Cacti创建一个新的MySQL用户。使用以下命令登录到MySQL shell,并按照提示操作: ``` mysql -u root -p mysql> CREATE DATABASE cacti; mysql> GRANT ALL PRIVILEGES ON cacti.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'password'; mysql> FLUSH PRIVILEGES; mysql> exit ``` 5. 解压缩Cacti软件包并将其移动到Web服务器根目录。使用以下命令解压缩Cacti软件包,并将解压后的文件夹移动到Apache的默认文档根目录: ``` tar xzvf cacti-1.1.23.tar.gz mv cacti-1.1.23 /var/www/html/cacti ``` 6. 导入Cacti数据库结构。使用以下命令导入Cacti提供的MySQL数据库结构: ``` mysql -u cactiuser -p cacti < /var/www/html/cacti/cacti.sql ``` 7. 配置Cacti。编辑Cacti的配置文件cacti/include/config.php,并根据您的MySQL设置进行相应配置。使用以下命令打开配置文件: ``` nano /var/www/html/cacti/include/config.php ``` 8. 配置Apache服务器。将以下内容添加到Apache的配置文件/etc/httpd/conf.d/cacti.conf中,并将其中的"/your/cacti/dir"替换为实际的Cacti安装目录: ``` <Directory /your/cacti/dir> AllowOverride None Require all granted </Directory> ``` 9. 启动Apache服务并设置在系统启动时自动启动: ``` systemctl start httpd systemctl enable httpd ``` 10. 访问Cacti。现在,您可以通过在Web浏览器中输入服务器的IP地址或域名,加上"cacti"路径,访问Cacti的安装界面。按照界面上的指示进行设置和配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值