Cacti1.2.x新版教程之安装部署(吴昊博客独家首发)(一)
本文最后修改时间2021.03.17
前言:本文基于我的rpm一键包来部署,目前网上很多都是老版本的教程,而且现在很多网站还不断的爬来爬去,导致很多新发布的教程内容还是老的,看完本文后如果对你有所帮助期待你的赞赏。
本篇教程基于Cacti1.2.2版本验证,其他版本自测!
Cacti坑确实很多,官方也是偶尔突然更新下,老牌的监控软件也就这么没落了,另外Cacti真的很不安全,强烈建议部署在内网里!
文中所用的包组,来自于wlnmp一键包,强烈建议按照文中配置进行安装,别上来就改来改去,最后各种报错。
如果要进行版本升级,一定要做好数据备份,Cacti升级失败的风险还是比较大的~
原来本文是以php7.2为例,后续再使用中发现cacti偶尔会在php7.2下报错,因为有些函数兼容性问题,所以不建议使用php7.2或php7.3版本来运行cacti。
本文在Centos7.x系统上运行,当前php使用7.1版本,mysql使用5.7版本,注意内存要大于2G!!!
请使用Centos7.x系统环境,本教程目前不适用于Centos8.x
请自行关闭防火墙,关闭selinux,或自行配置放行规则
1、添加epel源
1 |
yum install epel-release |
2、添加wlnmp一键包源
1 |
rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm |
3、安装nginx、php、mysql
1 |
yum install wnginx wphp71 wmysql57 |
4、安装php扩展及其他所需依赖
1 |
yum install wphp71-ldap wphp71-snmp wrrdtool wnet-snmp wspine-1.2.2 sendmail |
5、设置两个软链接
1 2 |
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 |
6、取消被禁用的php函数
1 |
vi /usr/local/php/etc/php.ini |
找到disable_functions行,删除shell_exec,exec,popen,保存退出,重启php服务
注:按ESC,再按:wq即可保存退出
1 |
/etc/init.d/php-fpm71 restart |
7、启动相关服务
1 2 3 |
/etc/init.d/nginx restart /etc/init.d/mysql restart /etc/init.d/snmpd restart |
8、修改MySQL密码(默认为空)
修改默认MySQL密码,创建cacti数据库,并添加相应权限
1 |
mysql -uroot -p |
1 2 3 4 5 6 7 |
mysql> set password = password('whsir'); mysql> CREATE DATABASE cacti DEFAULT CHARACTER SET utf8; mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'blog.whsir.com'; mysql> GRANT SELECT ON mysql.time_zone_name TO cacti@localhost IDENTIFIED BY 'blog.whsir.com'; mysql> ALTER DATABASE cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; mysql> flush privileges; mysql> quit |
9、加载时区到mysql数据库
1 |
/usr/local/mysql/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -uroot -pwhsir mysql |
加载时区后看到以下内容
1 2 3 4 5 6 |
mysql: [Warning] Using a password on the command line interface can be insecure. Warning: Unable to load '/usr/share/zoneinfo//iso3166.tab' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//leapseconds' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//tzdata.zi' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//zone.tab' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//zone1970.tab' as time zone. Skipping it. |
10、下载cacti
网络不佳的情况下,强烈建议先下载到本地,再上传到服务器
1 2 3 4 5 |
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 |
11、修改cacti数据库配置文件
1 2 |
cd /data/www/cacti/include vi config.php |
1 2 3 4 5 6 7 |
$database_type = 'mysql'; $database_default = 'cacti'; $database_hostname = 'localhost'; $database_username = 'cacti'; $database_password = 'blog.whsir.com'; $database_port = '3306'; $database_ssl = false; |
12、导入cacti.sql
1 |
mysql -uroot -pwhsir cacti < /data/www/cacti/cacti.sql |
touch日志文件,后续安装时用的到
1 2 |
touch /data/www/cacti/log/cacti.log touch /data/www/cacti/log/cacti_stderr.log |
13、做一些软链,后续安装用的到
1 2 3 4 5 6 7 |
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 |
14、修改cacti目录权限
1 |
chown -R www:www /data/www/cacti/ |
15、修改nginx配置
1 |
vi /usr/local/nginx/conf/vhost/demo.conf |
修改root路径为root /data/www;,取消php注释include enable-php71.conf;,修改下server_name为本机IP,或者自己填个域名,自行hosts,不做过多说明!
16、重启nginx服务
1 2 |
nginx -t /etc/init.d/nginx restart |
17、spine配置
spine是一个基于C语言的,非常快速的轮询引擎,它是默认的cmd.php的可选替代,如果要使用spine需要单独的设置
1 2 |
cd /usr/local/spine/etc cp spine.conf.dist spine.conf |
1 |
vi spine.conf |
1 2 3 4 5 |
DB_Host localhost DB_Database cacti DB_User cacti DB_Pass blog.whsir.com DB_Port 3306 |
验证一下
1 |
/usr/local/spine/bin/spine |
返回以下内容表示成功
1 2 3 |
SPINE: Using spine config file [spine.conf] SPINE: Version 1.2.2 starting SPINE: Time: 1.0244 s, Threads: 1, Devices: 1 |
18、进入web安装
注意:如果访问有问题,修改后建议清空下浏览器缓存,或直接开浏览器隐身模式,以防有缓存
1 |
http://IP/cacti |
默认账号密码admin,第一次登陆后会提示更改密码
勾选许可协议,开始继续
安装向导检查,根据检查结果,自行更改php.ini和my.cnf文件,更改后记得重启,如相关参数在配置中不存在,手动添加即可
这里需要在my.cnf添加以下参数(注意最后两个参数如果不添加,后续可能会产生warning),然后重启MySQL
1 |
vi /etc/my.cnf |
1 2 3 4 5 6 |
innodb_flush_log_at_timeout = 3 innodb_read_io_threads = 32 innodb_write_io_threads = 16 character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci |
1 |
/etc/init.d/mysql restart |
安装完成后,看到以下页面
21、手动配置spine
至此Cacti1.2.2安装完成
原文链接:Cacti1.2.x新版教程之安装部署,转载请注明来源!
使用:chown -R www:www /data/www/cacti/
每天24小结束后,/data/www/cacti/log下自动生成的第二天的日志文件,权限为root:root
如果不手动修改当天的log文件权限,则WEB无法正常使用,提示无权写入。
这个问题怎么解决啊?博主能看到吗?
可以做计划任务刷新权限,检查上级目录是否也是www权限
[root@localhost www]# pwd
/data/www
[root@localhost www]# ll
总用量 23144
drwxrwxr-x. 18 www www 4096 2月 24 2019 cacti
上级目录也是www:www权限,那我试试看计划任务。谢谢解答!
再请教一个问题,添加的设备,图像只能显示24小时,无法查看过往时间的图像。网上搜了很久没找到相关的内容,博主有碰到类似的问题吗?
严格按照楼主的版本操作没有任何问题,但是用1.2.22就不出图了,报错说spine的问题,换了spine1.2.22也不行,折腾好久放弃了。
不想折腾的就按楼主原帖吧
设置- poller 页面 修改配置后,按保存 无反应啥问题?
建议清空一下浏览器缓存再试
cacti1.2.18 监控交换机,端口描述不全,缺少端口号怎么解决?
这个是数据模板的问题,改一下就好了,我这搞好了
数据库配置缺少的要添加到[mysqld]下面,
在my.cnf末尾添加不生效。
因为这个这个搞了好久
SPINE: Using spine config file [spine.conf]
SPINE: Version 1.2.2 starting
SPINE: Time: 0.0277 s, Threads: 1, Devices: 0
这个是什么问题?
网页打不开,是那里有问题吗?
网页打不开和spine没有关系哦
使用centos7.8.2003 按照教程安装了1.2.11、1.2.12、1.2.13图像显示均报错“unknown rrdtool error”。为了避免时rrdtool 1.7.2和spine的问题,又重新测试了rrdtool 1.4.8 cmd轮询依然报错。cacti论坛上也看到有人因为升级系统和组件之后图形报错 。回头把centos将几个版本在测试一下。
请问解决了吗
关注一下博客,后期也会更新最新版教程
使用yum安装解决,不会出现未知错误,与centos版本应该没关系
麻烦问下如何解决的?大概是个什么安装方法?在哪一步用的yum安装。
我也是这样的情况。高版本安装都有点问题。
省事的话就按Up主的版本1.2.1一切顺利,我这用的好好的
版本是1.2.2
请问下:flowview安装和配置怎么操作?
请问第一次打开http://x.x.x.x/cacti/页面用默认账号密码admin登陆不了,要怎么解决?
请严格按照文中步骤及版本号安装,cacti随版本变化可能会出现一些意想不到的问题,所以请一定按照文中版本安装!!!
提醒一下我这种sb新手网工吧,忘记放通防火墙搞好久
好的
/etc/init.d/php-fpm71 start 这个服务起不来,报错ERROR: An another FPM instance seems to already listen on /tmp/php-fpm71.sock
这个是什么原因。系统是centos 7.5
请检查php服务,是否已经在启动状态!
服务已经开启了。是不是不用管了。
[root@localhost ~]# yum install wnginx wphp71 wmysql57
上次元数据过期检查:0:10:43 前,执行于 2019年10月23日 星期三 12时15分47秒。
未找到匹配的参数: wphp71
未找到匹配的参数: wmysql57
错误:没有任何匹配
你没有添加源,第二步你没有操作
/usr/local/nginx/conf/vhost/demo.conf,该文件并不存在,怎么改?
在/usr/local/nginx/conf/nginx.conf中
Cacti1.2.3会有切换语言失败的BUG