cacti_cacti

cacti_cacti_02

本文在Centos7.x系统上运行,当前php使用7.1版本,mysql使用5.7版本

服务端操作如下(192.168.100.225):
yum install epel-release
yum install wnginx wphp71 wmysql57
yum install wphp71-ldap wphp71-snmp wrrdtool wnet-snmp wspine-1.2.2 sendmail # 安装php扩展及其他所需依赖

安装rrdtool工具,默认安装是1.4.8版本
yum -y install rrdtool perl-rrdtool* perl-DB*

ln -sv /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20 # 设置两个软链接
ln -sv /usr/local/mysql/lib/libmysqlclient.so /usr/lib64/libmysqlclient.so


vi /usr/local/php/etc/php.ini
找到disable_functions行,删除shell_exec,exec,popen,保存退出
/etc/init.d/php-fpm71 restart

/etc/init.d/nginx restart
/etc/init.d/mysql restart
/etc/init.d/snmpd restart


2、设置数据库
mysql -uroot -p (默认为空)

mysql> set password = password('root');
mysql> CREATE DATABASE cacti DEFAULT CHARACTER SET utf8;
mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'root';
mysql> GRANT SELECT ON mysql.time_zone_name TO cacti@localhost IDENTIFIED BY 'root';
mysql> ALTER DATABASE cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> flush privileges;
mysql> quit.

加载时区到mysql数据库
/usr/local/mysql/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -uroot -proot mysql



mysql 添加如下参数: vi /etc/my.cnf

character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_allowed_packet=18M
max_heap_table_size=128M
tmp_table_size=256M
join_buffer_size=256M
innodb_buffer_pool_size=2048M
innodb_doublewrite=ON
innodb_buffer_pool_instances=18
innodb_io_capacity=5000
innodb_io_capacity_max=10000
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
log-error = /var/log/mysql/mysql-error.log
log-queries-not-using-indexes = 1
slow-query-log = 1
slow-query-log-file = /var/log/mysql/mysql-slow.log


重启配置:/etc/init.d/mysql restart

3、配置cacti
mkdir /data/www && cd /data/www
wget https://www.cacti.net/downloads/cacti-1.2.2.tar.gz
tar xf cacti-1.2.2.tar.gz
mv cacti-1.2.2 cacti


vi /data/www/cacti/include/config.php
$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cacti';
$database_password = 'blog.whsir.com';
$database_port = '3306';
$database_ssl = false;

导入数据库
mysql -uroot -proot cacti < /data/www/cacti/cacti.sql

执行:
ln -sv /usr/local/rrdtool/bin/rrdtool /usr/local/bin/rrdtool
ln -sv /usr/local/php/bin/php /usr/bin/php
ln -sv /usr/local/snmp/bin/snmpwalk /usr/local/bin/snmpwalk
ln -sv /usr/local/snmp/bin/snmpget /usr/local/bin/snmpget
ln -sv /usr/local/snmp/bin/snmpbulkwalk /usr/local/bin/snmpbulkwalk
ln -sv /usr/local/snmp/bin/snmpgetnext /usr/local/bin/snmpgetnext
ln -sv /usr/local/snmp/bin/snmptrap /usr/local/bin/snmptrap


chown -R www:www /data/www/cacti/
vi /usr/local/nginx/conf/vhost/demo.conf
/etc/init.d/nginx restart

spine配置

vi /usr/local/spine/etc/spine.conf ,然后复制到 /etc/ 目录
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass blog.whsir.com
DB_Port 3306

验证: /usr/local/spine/bin/spine
返回以下内容表示成功

SPINE: Using spine config file [spine.conf]
SPINE: Version 1.2.2 starting
SPINE: Time: 1.0244 s, Threads: 1, Devices: 1


进入web安装:http://IP/cacti

配置crontab : crontab -e
#添加下面一行,一分钟运行一次
*/1 * * * * /usr/bin/php /data/www/cacti/poller.php > /dev/null 2>&1


systemctl status crond
systemctl enable crond



客户端(被监控端192.168.100.220)
被监控的无论是交换机,还是路由器等网路设备时还是linux windows 服务器主机的均需支持snmp协议 并允许cacti服务器采集数据,就能够集中检测,在linux中安装net-snmp,lm_sensors等软件包,然后修改配置文件/etc/snmp/snmpd.conf,并启动snmp服务,默认在UDP协议161端口响应SNMP查询。

1、安装net-snmp软件包
yum install net-snmp net-snmp-libs net-snmp-utils net-snmp-devel net-snmp-perl lm_sensors
2、修改文件,设置snmp访问权限

vim /etc/snmp/snmpd.conf
41行: com2sec notConfigUser 192.168.100.225 public
【第41行,将default修改成为cacti服务器地址,public表示SNMP共同体的名称,用来识别及验证的,作用类似于密码】
62行: access notConfigGroup “” any noauth exact all none none
【第62行,将SystemsView 修改成 all 或者 read,提供访问权限】
62行: access notConfigGroup “” any noauth exact all none none
【第85行,去掉#,支持查询】
view all included .1 80



cacti测试(服务器端执行测试是否可以获取数据)
/usr/bin/php /data/www/cacti/poller.php
snmpwalk -v 2c -c public 192.168.100.220





注意:添加交换机设备,例如华为交换机添加用户配置
snmp-agent usm-user v3 liudehua group ecpss
snmp-agent usm-user v3 liudehua authentication-mode md5 //回车输入密码
snmp-agent usm-user v3 liudehua privacy-mode des56 //回车输入密码



常见问题1:安装及配置spine(spine的版本要和cacti版本一致);

安装spine1.2.21;

cd /usr/local/
wget https://www.cacti.net/downloads/spine/cacti-spine-1.2.21.tar.gz 或者
wget https://www.cacti.net/downloads/spine/cacti-spine-latest.tar.gz
tar zxvf cacti-spine-latest.tar.gz
mv cacti-spine-1.2.21 /usr/local/spine
cd /usr/local/spine
yum install -y net-snmp-devel mysql-devel openssl-devel dos2unix autoconf automake binutils libtool gcc cpp glibc-headers kernel-headers glibc-devel help2man
#sh bootstrap
#./configure --with-reentrant
#make
#make install
#chown root:root /usr/local/spine/bin/spine
#chmod +s /usr/local/spine/bin/spine

安装及配置cacti 1.2.21

cd /data/www/
wget --no-check-certificate https://www.cacti.net/downloads/cacti-1.2.21.tar.gz 或者
wget https://www.cacti.net/downloads/cacti-latest.tar.gz
tar -zxvf cacti-latest.tar.gz
mv cacti-1.2.21 /data/www/cacti

常见问题2: 升级rrdtool版本,默认yum安装是1.4.8版本
下载rrdtool 1.7.0
# cd /usr/local/src
# wget https://oss.oetiker.ch/rrdtool/pub/rrdtool-1.7.0.tar.gz

编译安装rrdtool
# tar zxvf rrdtool-1.7.0.tar.gz
# cd rrdtool-1.7.0
# ./bootstrap //如果提示没有libtoolize命令,则运行yum install -y libtool
//一定要指定prefix
# ./configure --prefix=/usr/local/
# make & make install
扩展阅读:
https://blog.csdn.net/Yang_sean/article/details/118599064
https://www.jianshu.com/p/7e8b350d5143
https://cloud.tencent.com/developer/article/1871789
https://tsov.net/uupee/25905/
https://www.codenong.com/cs106409306/
https://blog.whsir.com/post-4371.html
https://www.ngui.cc/51cto/show-695701.html
https://blog.csdn.net/xiongkang155/article/details/119996483
https://www.codenong.com/cs106409306/