服务器监控——Cacti
Cacti本身只是一个web界面的管理套件,通过调用Net-SNMP工具来采集监测数据,并结合RRDtool记录数据并绘制图片,以web页面的形势展示给管理员用户。
Cacti原理图解:
Cacti服务端部署实战:
实验准备:192.168.80.181 cacti服务器,需要联网安装插件包
Win10客户端192.168.80.6
注:最新版本的cacti对于LAMP的要求更高,特别是mysql数据库的要求,多方尝试发现用10版本以上的mariadb是最简单的。
在181上安装LAMP架构
首先181必须能够上网,然后再/etc/yum.repos.d/CentOS-Base.repo文件中添加中科院的CentOS7.4源,用于安装mariadb10以上的版本,添加Ali云用于安装rrd
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos74-amd64/
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1 //添加在base区域下面
[Ali]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[root@aa yum.repos.d]# yum makecache //加载新源缓存
[root@aa yum.repos.d]#yum install -y \
httpd \
MariaDB-client MariaDB-server \
MariaDB-devel \
php \ //安装lamp架构
php-snmp \
php-ldap \
php-pdo \
php-mysql \
php-devel \
php-pear \
php-common \
php-gd \
php-mbstring \
php-xml \
php-process \
net-snmp \
net-snmp-utils \
net-snmp-libs \
net-snmp-agent-libs \
net-snmp-devel \
rrdtool \
rrdtool-php \
rrdtool-perl \
rrdtool-devel \
gcc openssl-devel \
dos2unix \
autoconf \
automake \
binutils libtool \
cpp postfix \
glibc-headers \
kernel-headers \
glibc-devel \
gd gd-devel \
help2man \
ntpdate \
wget patch //以上都是配置cacti需要的插件
[root@aa ~]# vi /etc/httpd/conf/httpd.conf
ServerName www.aa.com
[root@aa ~]# vi /etc/httpd/conf.d/php.conf
LoadModule php5_module modules/libphp5.so
[root@aa ~]# vi /etc/php.ini
safe_mode = off //在[PHP]下加
date.timezone = PRC //查找修改
[root@aa ~]# systemctl stop firewalld.service
[root@aa ~]# setenforce 0
[root@aa ~]# systemctl start httpd.service
[root@aa ~]# systemctl start mariadb.service
启动成功
[root@aa ~]# mysql_secure_installation //按照提示初始设置mariadb,设置密码,移除匿名用户、开放root远程登录、刷新权限
下面进行lamp测试,首先测试php运行状况
[root@aa ~]# vi /var/www/html/index.php //加入测试页
<?php
phpinfo();
?>
Win10访问http://192.168.80.181/
Php工作正常,下面测试数据库连接情况
[root@aa ~]# mysql -uroot –p //登录数据库为测试账号cacti授权
MariaDB [(none)]> CREATE DATABASE cacti character set utf8 collate utf8_bin;
MariaDB [(none)]> GRANT all ON cacti. TO 'cacti'@'%' IDENTIFIED BY 'admin123';
MariaDB [(none)]> GRANT all ON cacti. TO 'cacti'@'localhost' IDENTIFIED BY 'admin123';
MariaDB [(none)]> flush privileges;
[root@aa ~]# vi /var/www/html/index.php //更换测试页
$link=mysqli_connect('192.168.80.181','cacti','admin123');
if($link) echo "Success!!";
else echo "Fail!!";
数据库连接没有问题
---------下面可以开始安装cacti--------------
[root@aa ~]# tar xf cacti-1.1.26.tar.gz
[root@aa ~]# mv cacti-1.1.26 /var/www/html/cacti
[root@aa ~]# mysql -ucacti -p cacti < /var/www/html/cacti/cacti.sql
Enter password: //密码为admin123,将cacti的数据库导入
[root@aa ~]# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot mysql -p
Enter password: //密码为abc123,1.1.26版本的cacti需要导入时间数据库
[root@aa ~]# mysql -uroot –p //为cacti用户赋予时间数据库的权限
MariaDB [(none)]> grant select on mysql.time_zone_name to 'cacti'@'localhost' IDENTIFIED BY 'admin123';
[root@aa ~]# vi /var/www/html/cacti/include/config.php
$database_username = 'cacti';
$database_password = 'admin123'; //修改这两项,加入数据库不是在本机上,需要修改$rdatabase相应项并去掉注释
[root@aa ~]# vi /etc/snmp/snmpd.conf
com2sec notConfigUser localhost public //改成环回口地址 41
access notConfigGroup "" any noauth exact all none none //把systemview改成all 62
view all included .1 80 // 去掉#号 85
[root@aa ~]# systemctl restart snmpd.service
[root@aa ~]# systemctl enable snmpd.service
[root@aa ~]# useradd -r -M cacti
[root@aa ~]# chown -R cacti.cacti /var/www/html/cacti/rra/
[root@aa ~]# chown -R cacti.cacti /var/www/html/cacti/log/
[root@aa ~]# chown -R apache.apache /var/www/html/cacti/resource/
[root@aa ~]# chown -R apache.apache /var/www/html/cacti/cache
[root@aa ~]# chown -R apache.apache /var/www/html/cacti/scripts
-----------安装cacti-spine优化数据轮询速度-----
新版的cacti可以不使用php脚本去采集数据,新集成了一个插件spine用于采集数据
[root@aa ~]# rpm -ivh help2man-1.41.1-3.el7.noarch.rpm //安装spine依赖包
[root@aa ~]# ln -s /usr/lib64/libmysqlclient.so.18.0.0 /usr/lib64/libmysqlclient.so
[root@aa ~]# tar xf cacti-spine-1.1.26.tar.gz
[root@aa ~]# cd cacti-spine-1.1.26
[root@aa cacti-spine-1.1.26]# ./configure
[root@aa cacti-spine-1.1.26]# make && make install
[root@aa ~]# cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf
[root@aa ~]# vi /usr/local/spine/etc/spine.conf //修改相关参数
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass admin123
DB_Port 3306
RDB_Host localhost
RDB_Database cacti
RDB_User cacti
RDB_Pass admin123
RDB_Port 3306
配置完毕可以win10访问192.168.80.181/cacti/进行安装
发现mbstring和snmp没有安装,数据库参数设置有问题
下面我们去优化一下
安装这两个包
[root@aa ~]# rpm -ivh php-mbstring-5.4.16-42.el7.x86_64.rpm
[root@aa ~]# rpm -ivh php-snmp-5.4.16-42.el7.x86_64.rpm
下面去进行数据库设置
[root@aa ~]# vi /etc/my.cnf.d/server.cnf
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci
character_set_client = utf8mb4
max_connections = 100
max_heap_table_size = 256M
max_allowed_packet = 16777216
join_buffer_size = 64M
tmp_table_size = 64M
innodb_file_per_table = ON
innodb_buffer_pool_size = 1024M
innodb_doublewrite = OFF
innodb_lock_wait_timeout = 50
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16
[root@aa ~]# service mariadb restart
[root@aa ~]# service httpd restart
下面再访问网页安装
软件包已经安装
数据库配置没有问题
然后直接next
这边按照需求选择
安装完成之后,初始用户名admin密码admin,输入之后需要修改密码,密码有一定的复杂度且必须超过8位数(必须包含一个大写一个小写一个字符)
登录成功
----------------下面进行cacti监控设置------------------
Console -> 设置(Cacti Settings) -> Paths -> 在 Spine Binary File Location 文本框内填入配置文件路径 /usr/local/spine/bin/spine ,在 Spine Config File Path 文本框内填入配置文件路径 /usr/local/spine/etc/spine.conf,点击保存 (Save)。
Console -> 设置(Cacti Settings) -> Poller -> 在 Poller Type 下拉框中选择 spine ,点击保存 (Save)。注意:假如使用spine的话,下面两项轮训时间和计划任务间隔时间都要设置为every Minute
在添加完设备和图形后,需要重建采集器缓存。
Console --> 系统工具(system Utilities) --> Rebuild Poller Cache
点击即可,进入如下画面就不需要设置了
cacti的基础配置完毕之后,需要在服务器中添加计划任务采集数据(使用php方式计划任务间隔时间为5分钟,而我们使用spine方式,计划任务间隔时间为1分钟)
[root@aa cacti]# crontab –e
/1 * /usr/bin/php /var/www/html/cacti/poller.php >> /tmp/cacti_rrdtool.log
下面我们去cacti上查看
管理设备(device)
查看linux状态为UP即可,注意不要着急spine方式刚刚启动需要2-5分钟左右时间,有快有慢
下面可以创建图表分析
选中设备
选GO
然后直接选图形,可以查看cacti处理后的图片