Cacti:流量分析和网络监控
Cacti 是一个完整的网络监控和数据分析解决方案,使用 RRDTool 的数据存储和图形功能。它是 ISP 最广泛使用的监控工具,以图形方式查看网络。
专用主机预配置
Cacti 对主机有非常特殊和固定的要求。对于生产系统,它必须安装在专用主机上。
主机名设置
hostname monitor echo 'hostname="monitor"' > /etc/conf.d/hostname echo "monitor" > /etc/hostname cat > /etc/hosts << EOF 127.0.0.1 monitor.venenux.net monitor localhost.localdomain localhost 151.101.128.249 dl-cdn.alpinelinux.org ::1 localhost localhost.localdomain EOF
我们添加了 cdn Alpine Linux 的 IP 地址,以减少 DNS 服务器流量。
仓库和软件包
不幸的是,有些命令比较复杂。我们必须考虑到常用命令只是 busybox 的极简版本,因此我们必须进行更改以确保我们使用的是真正的命令。以下命令安装 bash 以及下面显示的其他一些系统工具。如果它们不存在,Cacti 将会随机失败。
cat > /etc/apk/repositories << EOF http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community EOF apk update apk add bash attr dialog binutils findutils readline lsof less nano curl export PAGER=less cat > /etc/apk/repositories << EOF http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community http://uk.alpinelinux.org/alpine/edge/main http://uk.alpinelinux.org/alpine/edge/community EOF apk update apk add utmps cat > /etc/apk/repositories << EOF http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community EOF apk update
请注意,如果检索到一个软件包,它必须是唯一的软件包!即不是所有软件包。首先从正常仓库安装所有依赖项和相关文件,然后再从 edge 安装仅需要的额外软件包!为此,您必须访问 https://pkgs.alpinelinux.org/packages 并从 edge 搜索所涉及软件包的所有要求。例如 utmps
。
要求
在安装 Cacti 之前,必须安装和配置许多其他软件包。
- Web 服务器,例如 lighttpd
- PHP 脚本语言
- 数据库引擎,例如 mariadb
- 为了检索数据,net-snmp 工具
- 为了绘制数据图表,rrdtool 软件包

Web 服务器:Lighttpd 安装和配置
Cacti 作为 Web 程序运行,因此我们需要配置 Web 服务器。由于 Apache2 非常有名,我们将只记录 lighttpd。关于配置选项有很多可用的信息。
- 设置 lighttpd 的端口、缓存引擎、事件处理程序,以及 htdocs
- 设置 Web 服务器状态页面
- 设置 alias mod 以进行别名设置、cgi 处理程序,并使用正确的权限创建目录
- 设置 Web 服务器启动脚本并启动 Web 服务器进行测试
- 添加网络后端处理程序。文件描述符设置并提高文件缓存检索时间
- 设置 https 并生成自签名证书
apk add lighttpd gamin mkdir -p /var/www/localhost/htdocs sed -i -r 's#\#.*server.port.*=.*#server.port = 80#g' /etc/lighttpd/lighttpd.conf sed -i -r 's#.*server.stat-cache-engine.*=.*# server.stat-cache-engine = "fam"#g' /etc/lighttpd/lighttpd.conf sed -i -r 's#\#.*server.event-handler = "linux-sysepoll".*#server.event-handler = "linux-sysepoll"#g' /etc/lighttpd/lighttpd.conf mkdir -p /var/www/localhost/htdocs/serverinfo sed -i -r 's#\#.*mod_status.*,.*# "mod_status",#g' /etc/lighttpd/lighttpd.conf sed -i -r 's#.*status.status-url.*=.*#status.status-url = "/serverinfo/server-status"#g' /etc/lighttpd/lighttpd.conf sed -i -r 's#.*status.config-url.*=.*#status.config-url = "/serverinfo/server-config"#g' /etc/lighttpd/lighttpd.conf mkdir -p /var/www/localhost/cgi-bin sed -i -r 's#\#.*mod_alias.*,.*# "mod_alias",#g' /etc/lighttpd/lighttpd.conf sed -i -r 's#.*include "mod_cgi.conf".*# include "mod_cgi.conf"#g' /etc/lighttpd/lighttpd.conf mkdir -p /var/lib/lighttpd chown -R lighttpd:lighttpd /var/www/localhost/ chown -R lighttpd:lighttpd /var/lib/lighttpd chown -R lighttpd:lighttpd /var/log/lighttpd rc-update add lighttpd default rc-service lighttpd restart checkset="";checkset=$(grep 'noatime' /etc/lighttpd/lighttpd.conf);[[ "$checkset" != "" ]] && \ echo listo || sed -i -r 's#server settings.*#server settings"\nserver.use-noatime = "enable"\n#g' /etc/lighttpd/lighttpd.conf checkset="";checkset=$(grep 'network-backend' /etc/lighttpd/lighttpd.conf);[[ "$checkset" != "" ]] && \ echo listo || sed -i -r 's#server settings.*#server settings"\nserver.network-backend = "linux-sendfile"\n#g' /etc/lighttpd/lighttpd.conf checkset="";checkset=$(grep 'max-fds' /etc/lighttpd/lighttpd.conf);[[ "$checkset" != "" ]] && \ echo listo || sed -i -r 's#server settings.*#server settings\nserver.max-fds = 2048\n#g' /etc/lighttpd/lighttpd.conf rc-service lighttpd restart

apk add openssl mkdir -p /etc/ssl/certs/ openssl req -x509 -days 1460 -nodes -newkey rsa:4096 \ -subj "/C=VE/ST=Bolivar/L=Upata/O=VenenuX/OU=Systemas:hozYmartillo/CN=localhost" \ -keyout /etc/ssl/certs/localhost.pem -out /etc/ssl/certs/localhost.pem chmod 755 /etc/ssl/certs/localhost.pem cat > /etc/lighttpd/mod_ssl.conf << EOF server.modules += ("mod_openssl") \$SERVER["socket"] == "0.0.0.0:443" { ssl.engine = "enable" ssl.pemfile = "/etc/ssl/certs/localhost.pem" ssl.cipher-list = "ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM" ssl.honor-cipher-order = "enable" } \$HTTP["scheme"] == "http" { \$HTTP["host"] =~ ".*" { url.redirect = (".*" => "https://%0\$0") } } EOF sed -i -r 's#\#.*mod_redirect.*,.*# "mod_redirect",#g' /etc/lighttpd/lighttpd.conf itawxrc="";itawxrc=$(grep 'include "mod_ssl.conf' /etc/lighttpd/lighttpd.conf);[[ "$itawxrc" != "" ]] && echo listo || \ sed -i -r 's#.*include "mime-types.conf".*#include "mime-types.conf"\ninclude "mod_ssl.conf"#g' /etc/lighttpd/lighttpd.conf sed -i -r 's#ssl.pemfile.*=.*#ssl.pemfile = "/etc/ssl/certs/localhost.pem"#g' /etc/lighttpd/lighttpd.conf rc-service lighttpd restart
PHP:安装和配置
下一个要求是 PHP 脚本语言。由于 Cacti 是用 PHP 构建的,因此它支持 LDAP。
export phpmax=$(debver=$(cat /etc/alpine-release|cut -d '.' -f1);[ $debver -ge 6 ] && echo 7|| echo 5)
,shel var phpmax
根据 Alpine 版本指示在命令行中将使用 5 或 7 的 php,例如:apk add php$phpmax
。导致混乱的提交是:https://git.alpinelinux.org/aports/commit/community/cacti/cacti.php-fpm.conf?id=4272e802a1be191657becb739e6a248c1d0411a7,其中为 cacti 创建了 php-fpm 的特定池。这很混乱,因为它没有文档记录。如果要正确配置通用池,我们必须避免并忽略它。
apk add php7-fpm php7-bcmath php7-bz2 php7-ctype php7-curl php7-dom \ php7-enchant php7-exif php7-gd php7-gettext php7-gmp php7-iconv \ php7-imap php7-intl php7-json php7-mbstring php7-opcache php7-openssl \ php7-phar php7-posix php7-pspell php7-recode php7-session php7-simplexml \ php7-sockets php7-sysvmsg php7-sysvsem php7-sysvshm php7-tidy php7-tokenizer \ php7-xml php7-xmlreader php7-xmlrpc php7-xmlwriter php7-xsl php7-zip php7-sqlite3 \ php7-gd php7-gmp php7-ldap php7-openssl php7-pdo_mysql php7-posix php7-sockets php7-xml apk add php7-pdo php7-pdo_mysql php7-mysqli php7-pdo_sqlite php7-sqlite3 \ php7-odbc php7-pdo_odbc php7-dba
以下配置适用于 2G RAM 服务器上的高负载或巨大负载,有关在 Alpine Linux 上配置 PHP 的更多信息,请参阅 Production LAMP system: Lighttpd + PHP + MySQL wiki 页面。
sed -i -r 's|.*cgi.fix_pathinfo=.*|cgi.fix_pathinfo=1|g' /etc/php*/php.ini sed -i -r 's#.*safe_mode =.*#safe_mode = Off#g' /etc/php*/php.ini sed -i -r 's#.*expose_php =.*#expose_php = Off#g' /etc/php*/php.ini sed -i -r 's#memory_limit =.*#memory_limit = 512M#g' /etc/php*/php.ini sed -i -r 's#upload_max_filesize =.*#upload_max_filesize = 56M#g' /etc/php*/php.ini sed -i -r 's#post_max_size =.*#post_max_size = 128M#g' /etc/php*/php.ini sed -i -r 's#^file_uploads =.*#file_uploads = On#g' /etc/php*/php.ini sed -i -r 's#^max_file_uploads =.*#max_file_uploads = 12#g' /etc/php*/php.ini sed -i -r 's#^allow_url_fopen = .*#allow_url_fopen = On#g' /etc/php*/php.ini sed -i -r 's#^.default_charset =.*#default_charset = "UTF-8"#g' /etc/php*/php.ini sed -i -r 's#^.max_execution_time =.*#max_execution_time = 90#g' /etc/php*/php.ini sed -i -r 's#^max_input_time =.*#max_input_time = 90#g' /etc/php*/php.ini sed -i -r 's#.*date.timezone =.*#date.timezone = America/Panama#g' /etc/php*/php.ini sed -i -r 's|.*events.mechanism =.*|events.mechanism = epoll|g' /etc/php*/php-fpm.conf sed -i -r 's|.*emergency_restart_threshold =.*|emergency_restart_threshold = 12|g' /etc/php*/php-fpm.conf sed -i -r 's|.*emergency_restart_interval =.*|emergency_restart_interval = 1m|g' /etc/php*/php-fpm.conf sed -i -r 's|.*process_control_timeout =.*|process_control_timeout = 8s|g' /etc/php*/php-fpm.conf sed -i -r 's|^.*pm.max_requests =.*|pm.max_requests = 10000|g' /etc/php*/php-fpm.d/www.conf sed -i -r 's|^.*pm.max_children =.*|pm.max_children = 12|g' /etc/php*/php-fpm.d/www.conf sed -i -r 's|^.*pm.start_servers =.*|pm.start_servers = 4|g' /etc/php*/php-fpm.d/www.conf sed -i -r 's|^.*pm.min_spare_servers =.*|pm.min_spare_servers = 4|g' /etc/php*/php-fpm.d/www.conf sed -i -r 's|^.*pm.max_spare_servers =.*|pm.max_spare_servers = 8|g' /etc/php*/php-fpm.d/www.conf sed -i -r 's|^.*pm.process_idle_timeout =.*|pm.process_idle_timeout = 8s|g' /etc/php*/php-fpm.d/www.conf sed -i -r 's|^.*pm =.*|pm = ondemand|g' /etc/php*/php-fpm.d/www.conf mkdir -p /var/run/php-fpm7/ chown lighttpd:root /var/run/php-fpm7 sed -i -r 's|^.*listen =.*|listen = /run/php-fpm7/php7-fpm.sock|g' /etc/php*/php-fpm.d/www.conf sed -i -r 's|^pid =.*|pid = /run/php-fpm7/php7-fpm.pid|g' /etc/php*/php-fpm.conf sed -i -r 's#^user =.*#user = lighttpd#g' /etc/php*/php.ini sed -i -r 's#^group =.*#group = lighttpd#g' /etc/php*/php.ini sed -i -r 's|^.*listen.owner =.*|listen.owner = lighttpd|g' /etc/php*/php-fpm.d/www.conf sed -i -r 's|^.*listen.group =.*|listen.group = lighttpd|g' /etc/php*/php-fpm.d/www.conf sed -i -r 's|^.*listen.mode =.*|listen.mode = 0660|g' /etc/php*/php-fpm.d/www.conf rc-update add php-fpm7 default service php-fpm7 restart
在您准备好 php 后,让我们将其集成到当前预装的 Web 服务器中。我们选择了 lighttpd,所以命令是
mkdir -p /var/www/localhost/cgi-bin sed -i -r 's#\#.*mod_alias.*,.*# "mod_alias",#g' /etc/lighttpd/lighttpd.conf sed -i -r 's#.*include "mod_cgi.conf".*# include "mod_cgi.conf"#g' /etc/lighttpd/lighttpd.conf sed -i -r 's#.*include "mod_fastcgi.conf".*#\# include "mod_fastcgi.conf"#g' /etc/lighttpd/lighttpd.conf sed -i -r 's#.*include "mod_fastcgi_fpm.conf".*# include "mod_fastcgi_fpm.conf"#g' /etc/lighttpd/lighttpd.conf cat > /etc/lighttpd/mod_fastcgi_fpm.conf << EOF server.modules += ( "mod_fastcgi" ) index-file.names += ( "index.php" ) fastcgi.server = ( ".php" => ( "localhost" => ( "socket" => "/var/run/php-fpm7/php7-fpm.sock", "broken-scriptfilename" => "enable" )) ) EOF sed -i -r 's|^.*listen =.*|listen = /var/run/php-fpm7/php7-fpm.sock|g' /etc/php*/php-fpm.d/www.conf sed -i -r 'php-fpm7 restart rc-service lighttpd restart echo "<?php echo phpinfo(); ?>" > /var/www/localhost/htdocs/info.php
要测试 PHP 是否正常工作,请浏览到 http://ipaddress/info.php
将 "ipaddrs" 更改为 Web 服务器的 IP 地址。
数据库:MariaDB 安装和配置

apk add mysql mysql-client tzdata mysql_install_db --user=mysql --datadir=/var/lib/mysql rc-service mariadb start mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root mysql sed -i "s|.*max_allowed_packet\s*=.*|max_allowed_packet = 100M|g" /etc/my.cnf.d/mariadb-server.cnf sed -i "s|.*bind-address\s*=.*|bind-address=127.0.0.1|g" /etc/mysql/my.cnf sed -i "s|.*bind-address\s*=.*|bind-address=127.0.0.1|g" /etc/my.cnf.d/mariadb-server.cnf cat > /etc/my.cnf.d/mariadb-server-default-charset.cnf << EOF [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 EOF cat > /etc/my.cnf.d/mariadb-server-default-highload.cnf << EOF [mysqld] collation_server = utf8mb4_unicode_ci character_set_server = utf8mb4 max_heap_table_size = 32M tmp_table_size = 32M join_buffer_size = 62M innodb_file_format = Barracuda innodb_large_prefix = 1 innodb_buffer_pool_size = 512M innodb_flush_log_at_timeout = 3 innodb_read_io_threads = 32 innodb_buffer_pool_instances = 1 innodb_io_capacity = 5000 innodb_io_capacity_max = 10000 EOF rc-service mariadb restart rc-update add mariadb default
在运行这些命令后,运行 mysql_secure_installation
脚本,并按如下方式回答
- 输入 root 用户的当前密码(如果没有,直接回车):必须提供密码,因为我们之前已经设置了密码。正确的响应是
OK, successfully used password, moving on...
- 切换到 unix_socket 身份验证 [Y/n] 未使用。必须禁用,回答 NO,响应将是
... skipping.
- 更改 root 密码? [Y/n] 只有在您提供了好的密码时才按 "n",否则请更改密码!
- 删除匿名用户? [Y/n] 在生产系统中,我们必须删除它们,所以回答 Y,正确的响应是
... Success!
。 - 禁止 root 用户远程登录? [Y/n] 回答 Y,正确的响应是
... Success!
。 - 删除测试数据库及其访问权限? [Y/n] 您应该删除它,所以回答 Y,正确的响应是
... Success!
。 - 现在重新加载权限表? [Y/n] 回答 Y,正确的响应是
... Success!
。
在您回答完所有问题后,使用 rc-service mariadb restart
重启服务。
工具:net-snmp 和 rrdtool

agentAddress tcp:161,tcp6:[::1]:161
,默认情况下,软件包添加了 udp 161 协议,因此如果您设置它,它将仅监听并仅使用 ipv6 显示信息。
apk add net-snmp net-snmp-tools rrdtool cat > /etc/snmp/snmpd.conf << EOF view systemonly included .1.3.6.1.2.1.1 view systemonly included .1.3.6.1.2.1.25.1 rocommunity public localhost rocommunity public default -V systemonly sysLocation Bolivar Upata Venezuela sysContact infoadmin <info@pacificnetwork.com> sysServices 72 EOF rc-update add snmpd default rc-service snmpd restart
这里我们只需要 cacti 的命令。有关该主题的更多信息,请参阅
- Setting_up_traffic_monitoring_using_rrdtool_(and_snmp)
- Setting_up_monitoring_using_rrdtool_(and_rrdcollect)
- Setting_up_A_Network_Monitoring_and_Inventory_System
Cacti 安装
截至 Alpine 3.12,Cacti 仍在 edge 分支中,因此首先我们预安装依赖软件包。之后,我们仅从 edge 安装 cacti。
安装 Cacti 软件包

cat > /etc/apk/repositories << EOF http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main http://dl-cdn.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community EOF apk update apk add bash busybox coreutils net-snmp-tools perl rrdtool ttf-dejavu php7-snmp apk add cacti cacti-setup cacti-php7 cacti-lang
Cacti 预配置
Cacti 在 cacti 用户下运行。我们暂时将文件权限设置为世界可写,稍后,我们将正确设置它们。
cat > /etc/lighttpd/mod_cacti.conf << EOF alias.url += ( "/cacti/" => "/usr/share/webapps/cacti/" ) \$HTTP["url"] =~ "^/cacti/" { dir-listing.activate = "disable" } EOF sed -i -r 's#\#.*mod_alias.*,.*# "mod_alias",#g' /etc/lighttpd/lighttpd.conf sed -i -r 's#\#.*mod_accesslog.*,.*# "mod_accesslog",#g' /etc/lighttpd/lighttpd.conf sed -i -r 's#\#.*mod_setenv.*,.*# "mod_setenv",#g' /etc/lighttpd/lighttpd.conf sed -i -r 's#.*include "mod_cgi.conf".*# include "mod_cgi.conf"#g' /etc/lighttpd/lighttpd.conf checkssl="";checkssl=$(grep 'include "mod_cacti.conf' /etc/lighttpd/lighttpd.conf);[[ "$checkssl" != "" ]] && echo listo || sed -i -r 's#.*include "mod_cgi.conf".*#include "mod_cgi.conf"\ninclude "mod_cacti.conf"#g' /etc/lighttpd/lighttpd.conf rc-service lighttpd restart
Cacti 在 cacti 用户下运行,但 Web 服务器用户(apache2、lighttpd)也需要访问权限。因此,启用组访问权限,正如我们所说,暂时设置世界可写的文件权限。
- 授予对 Web 服务器的临时访问权限
- 创建 cacti 数据库并填充它
- 授予 Cacti MySQL 用户访问权限(为其提供更安全的密码)
- 退出 Mysql 命令提示符
- 导入初始 Cacti MySQL 数据库
- 将用户、密码和数据库名称设置到 cacti 配置文件中
- 暂时授予 cacti log 和 lib 目录世界可写权限
chown -R cacti:lighttpd /usr/share/webapps/cacti/;chown -R cacti:lighttpd /var/lib/cacti/ mysql -u root -p -e "CREATE DATABASE cacti;" mysql -u root -p -e "GRANT ALL ON cacti.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'cactipassword';FLUSH PRIVILEGES; mysql -u root -p -e "GRANT GRANT OPTION ON cacti.* TO 'cactiuser'@'localhost';FLUSH PRIVILEGES;" mysql -u root -p -e "GRANT SELECT ON mysql.time_zone_name TO 'cactiuser'@'localhost';" mysql --user=cactiuser -p cactipassword cacti < /usr/share/webapps/cacti/cacti.sql sed -i -r 's#\$database_default.*=.*;#\$database_default = 'cacti';#g' /etc/cacti/config.php sed -i -r 's#\$database_username.*=.*;#\$database_username = 'cactiuser';#g' /etc/cacti/config.php sed -i -r 's#\$database_password.*=.*;#\$database_password = 'cactipassword';#g' /etc/cacti/config.php chmod 777 /var/log/cacti chmod 666 /var/log/cacti/*.log
Cacti Web 设置安装
使用以下方式登录
Password= admin user= admin
接下来将提示更改密码
change password.
在网页中单击
- -> 下一步
然后选择新安装(如果未选中)
- -> 新安装,下一步

Cacti_Stats.xml.gz
模板存在多个错误,因此最后一个 "check" 没有描述。您必须取消选中最后一个,如此处所述:https://github.com/Cacti/cacti/issues/3313#issuecomment-594114681 该模板可以稍后通过 cli 安装,如下所示:php -d max_execution_time=90 /usr/share/webapps/cacti/cli/import_package.php --filename=Cacti_Stats.xml.gz
在 cacti 安装的模板目录下,但目前它会挂起且永远无法安装。已在 https://github.com/Cacti/cacti/issues/3313#issuecomment-601508135 上报告。
然后完成
- -> 完成
添加到 crontab
Cacti 后配置
chmod 775 /var/log/cacti chmod 664 /var/log/cacti/*.log
Pooler 和 crontab
正如我们所说,cacti 需要一个 crontab 来收集池数据!从 Alpine 3.7 开始,这些步骤不是必需的,因为 cacti 软件包会安装所有必要的文件。
cd /etc/crontabs vi root
复制到文件末尾
*/5 * * * * lighttpd php /var/www/localhost/htdocs/cacti/poller.php > /dev/null 2>&1
如果您使用另一个 Web 服务器,则必须修改 "lighttpd" 用户。
*/5 * * * * "web server user" php /var/www/localhost/htdocs/cacti/poller.php > /dev/null 2>&1
添加您的设备,您就可以开始监控了!
Cacti 插件
如果您使用了最新的 cacti,则必须使用每个插件的最新开发版本,尤其是在您的 Web 服务器上使用 php7 时。
00
cd /usr/share/webapps/cacti/plugins/ wget https://github.com/Cacti/plugin_mikrotik/archive/master.tar.gz -O cacti-1.2.11-plugin-monitor.tar.gz wget https://github.com/Cacti/plugin_gexport/archive/master.tar.gz -O cacti-1.2.11-plugin-gexport.tar.gz wget https://github.com/Cacti/plugin_routerconfigs/archive/master.tar.gz -O cacti-1.2.11-plugin-routerconfigs.tar.g wget https://github.com/Cacti/plugin_monitor/archive/master.tar.gz cacti-1.2.11-plugin-reportit.tar.gz wget https://github.com/Cacti/plugin_reportit/archive/master.tar.gz -O cacti-1.2.11-plugin-reportit.tar.gz
解压所有文件后,更改并修复权限。
cd /usr/share/webapps/cacti/plugins/ chown -R cacti:lighttpd /usr/share/webapps/cacti/ chown -R cacti:lighttpd /var/lib/cacti/
通过 Web 界面转到 cacti 配置和插件,以安装并启用所有插件。
重新安装 Cacti
假设您把一切都搞砸了,想从头开始重新安装。让我们开始吧
- 删除已安装的软件包
- 删除配置文件
- 从 mysql/postgresql 中删除数据库和用户(此处仅以 mysql 为例)
- 重新配置为不加载 cacti Web 服务器配置
- 重启服务,因为 cacti 池已被删除,并且 lighttpd 必须重新加载其配置文件。
apk del cacti cacti-setup cacti-php7 cacti-lang rm -rf /var/log/cacti rm -rf /usr/share/webapps/cacti rm -rf /etc/cacti mysql -u root -p -e "DROP DATABASE cacti;" mysql -u root -p -e "DROP USER 'cactiuser'@'localhost'" sed -i "/include \"mod_cacti.conf\"/d" /etc/lighttpd/lighttpd.conf rc-service php-fpm7 restart rc-service lighttpd restart
在您完成所有这些步骤后,重复 Cacti 安装 部分中的所有步骤。