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 以及下面显示的其他一些系统工具。如果它们不存在,Catci 将随机失败
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 服务器状态页面
- 设置别名模块以进行别名处理、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 用户的当前密码(如果没有密码,请按 Enter 键):必须提供密码,因为我们之前已设置过密码。正确的响应是
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 日志和 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.
在 Web 页面中单击
- -> 下一步
然后选择全新安装(如果未选中)
- -> 全新安装,下一步

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 安装 部分中的所有步骤。