Cacti1.2.14从零部署到实战监控:一站式配置指南
1. 环境准备搭建Cacti的基石第一次接触Cacti时我对着官方文档折腾了整整两天才把环境搭起来。后来才发现很多问题其实出在基础环境配置上。这里分享几个新手最容易踩的坑帮你节省80%的安装时间。操作系统选择实测CentOS 7.8是最稳定的选择。我曾经在Ubuntu 20.04上尝试安装结果被各种依赖冲突折磨得够呛。如果你手头没有现成的CentOS环境可以用这个命令快速检查系统版本cat /etc/redhat-release关键组件版本要求PHP 7.1但不要用7.4部分插件兼容性有问题MySQL 5.7或MariaDB 10.3RRDTool 1.7建议用1.7.2新版绘图有时会出问题清理系统残留的mariadb是个技术活。有次我直接用yum remove卸载结果把系统关键依赖也删了。后来发现这样操作更安全rpm -qa | grep mariadb | xargs rpm -e --nodeps提示安装EPEL源时如果遇到Mirror list错误可以改用阿里云镜像yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm2. 依赖安装一步到位的技巧很多教程会让你一个个装依赖其实用组合拳更高效。这是我优化后的安装流程yum groupinstall Development Tools -y yum install -y wnginx wphp71 wmysql57 yum install -y wphp71-ldap wphp71-snmp wrrdtool wnet-snmp重点说下PHP配置默认的disable_functions会拦截Cacti需要的函数。用这个sed命令快速修改sed -i /^disable_functions/s/popen,//g /usr/local/php/etc/php.ini sed -i /^disable_functions/s/shell_exec,//g /usr/local/php/etc/php.ini启动服务时建议按这个顺序避免端口冲突/etc/init.d/mysql start /etc/init.d/php-fpm71 restart /etc/init.d/nginx start环境变量配置很多新手卡在command not found其实是路径问题。除了修改/etc/profile更推荐这样做echo export PATH/usr/local/nginx/sbin:/usr/local/php/bin:/usr/local/mysql/bin:$PATH /etc/profile.d/cacti.sh chmod x /etc/profile.d/cacti.sh source /etc/profile3. 数据库配置安全与性能兼顾创建数据库时踩过最大的坑就是字符集问题。有次监控数据出现乱码排查半天发现是创建时没指定utf8mb4CREATE DATABASE cacti DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;权限分配千万别直接用root账号建议创建专用用户并限制权限CREATE USER cactiuserlocalhost IDENTIFIED BY ComplexPssw0rd; GRANT SELECT,INSERT,UPDATE,DELETE ON cacti.* TO cactiuserlocalhost; FLUSH PRIVILEGES;时区配置是另一个容易忽略的点。有次监控图表时间戳全乱了后来发现是没导入时区数据mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot -p mysql注意如果MySQL版本≥8.0需要额外执行ALTER USER cactiuserlocalhost IDENTIFIED WITH mysql_native_password BY password;4. Web界面设置从安装到优化第一次访问http://your-ip/cacti时如果出现500错误90%是权限问题。用这个命令一键修复chown -R www:www /data/www/cacti/ find /data/www/cacti/ -type d -exec chmod 755 {} \; find /data/www/cacti/ -type f -exec chmod 644 {} \;Nginx配置要点location /cacti { try_files $uri $uri/ /cacti/index.php?$args; index index.php; } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }Spine轮询器配置这是提升性能的关键。配置文件/usr/local/spine/etc/spine.conf要确保包含DB_Host 127.0.0.1 DB_Database cacti DB_User cactiuser DB_Pass YourPassword DB_Port 3306 DB_SSL false验证Spine是否正常工作/usr/local/spine/bin/spine --verbosity55. 实战监控从设备添加到告警配置添加第一台设备时建议先用本地服务器做测试。SNMP配置要注意这些参数社区名(Community)不要用默认的publicSNMP版本v2c最通用端口号161/udp需要开放监控CPU的模板配置控制台 → 模板 → Host Templates → Generic SNMP-enabled Host添加CPU相关的Graph Templates关联Data Query - SNMP - Get Processor Information创建阈值告警INSERT INTO thold_data (host_id, graph_id, upper_limit, lower_limit) VALUES (1, 5, 90, NULL);自动化报表用这个PHP脚本生成日报表并邮件发送?php $output shell_exec(/usr/bin/php /var/www/html/cacti/cli/reports.php --report1 --formatpdf); mail(adminexample.com, Daily Report, See attachment, $output); ?6. 性能调优与故障排查当监控设备超过50台时需要调整这些参数UPDATE settings SET value32 WHERE nameconcurrent_processes; UPDATE settings SET value300 WHERE namemax_threads;常见问题排查图形不生成检查/var/www/html/cacti/log/cacti.log数据采集失败运行/usr/bin/php /var/www/html/cacti/poller.php --debugSpine报错查看/usr/local/spine/spine.log备份策略这是我用的自动备份脚本mysqldump -ucactiuser -p cacti /backup/cacti_$(date %F).sql tar czf /backup/cacti_rra_$(date %F).tar.gz /var/www/html/cacti/rra/最后建议把Cacti的定时任务改为每分钟执行数据会更精确* * * * * /usr/bin/php /var/www/html/cacti/poller.php /dev/null 21
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2446144.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!