Docs
管理

配置文件

master.conf 和 agent.conf 的每一项配置。

大多数选项都在面板中管理。这两个配置文件保存的是程序在面板可用之前就需要的内容。修改后请重启对应的守护进程:

sudo systemctl restart 3rmonitor-master    # 修改 master.conf 之后
sudo systemctl restart 3rmonitor-agent     # 修改 agent.conf 之后

master.conf

/etc/3rmonitor/master.conf

listen = 0.0.0.0:8899
data_dir = /var/lib/3rmonitor
public_url = https://monitor.example.com/
dist_dir = /opt/3rmonitor/dist
trust_proxy = auto
tls_cert =
tls_key =
tls_listen =
update_url =
配置项含义
listen面板的监听地址和端口。127.0.0.1:8899 = 只能通过同一台服务器上的反向代理访问。
data_dir数据库和 IP 国家库的存放位置
public_url面板对外地址。首次启动之后在“设置 → 常规”里修改;这里的值只是初始值。
dist_dir供被控从主控下载的程序包
trust_proxyauto:经本机、内网或 Cloudflare 转发的请求,取真实来源 IP。true 或 false 强制开关。
tls_cert、tls_key直接提供 HTTPS 时使用的证书和私钥(PEM)。见 HTTPS 方式二。
tls_listenHTTPS 端口,例如 0.0.0.0:8443;listen 照常是 HTTP。填了证书但不填此项时,listen 本身改为 HTTPS。
update_url查询新版本的地址。留空 = https://3rsoft.com.pa/api/releases/latest。

该文件属于 root,3rmonitor 组可读(权限 640)。

agent.conf

/etc/3rmonitor/agent.conf。其中包含密钥,所以只有 root 和被控能读取:属主 root,属组 3rmonitor-agent,权限 640(1.1.0 之前的被控为 600)。

master_url = https://monitor.example.com
token = …
insecure = false
auto_update = true
mysql_defaults_file =
access_logs =
public_ip = auto
project_dirs =
firewall = auto
ai = on
sandbox_networks_max = 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 100.64.0.0/10, fc00::/7
protected_ips =
ai_auto_per_day = 20

最后四项在你设置之前不会出现在文件里;这里显示的是默认值。

配置项含义
master_url主控地址。主控迁移后修改它,或使用 3rmonitor bind。
token本服务器的密钥。由安装脚本或 3rmonitor bind 写入。
insecure主控使用自签名证书时设为 true
auto_updatetrue:自动更新到主控的版本
mysql_defaults_file读取 MySQL / MariaDB 运行状态用的凭据文件。Debian 会自动使用 /etc/mysql/debian.cnf。
access_logs访问日志位置,逗号分隔,支持通配符(例如 /var/log/nginx/*.log)。留空 = 自动查找常见位置;off = 不统计请求。
public_ipauto = 网卡 → 云元数据 → 外部查询(1.1.1.1);off;或直接写死一个 IP
project_dirs漏洞检查额外查找锁文件的目录,逗号分隔。常见目录会自动找到。
firewallauto = 在服务器设置中开启后执行面板里的黑白名单;off = 从不执行(3rmonitor firewall off 会写入)
ai面板里的 AI 能在这台服务器上执行什么:on(默认);read = 只允许只读诊断和沙盒中的诊断;off = 什么都不执行。由 3rmonitor ai on / read / off 写入。见 AI 值守。
sandbox_networks_maxAI 沙盒从这台服务器最多能访问的网段,逗号分隔。在 服务器 → 设置 中允许的网段只有在这个范围内才有效。默认:内网网段。
protected_ips除了主控和面板里的受保护地址,这台服务器的辅助程序还永远不会拦截的 IP 或网段,逗号分隔
ai_auto_per_day这台服务器 24 小时内最多执行几次只经过 AI 审查批准(没有管理员批准)的修复。默认 20;0 = 服务器上不限(面板里的 每天自动修复次数 照样有效)。同一个修复每小时最多 3 次。改了马上生效,不用重启。

除了这个文件,以及这台服务器批准 AI 操作时信任的钥匙(在 /var/lib/3rmonitor-helper 中,用 3rmonitor approvers 管理),被控不保存任何数据。

示例:被控的 MySQL 凭据

被控通过它的辅助程序以 root 身份运行 mysql 客户端(必须已安装),读取 MySQL / MariaDB 的运行状态。在 Debian 和 Ubuntu 上,以及 root 能通过本地 socket 登录的系统上,无需任何配置。否则服务器的 软件环境 部分会显示“无法登录数据库读取运行状态”。解决方法是创建一个没有任何权限的数据库用户:

CREATE USER 'monitor'@'localhost' IDENTIFIED BY '你的密码';

把它的凭据保存到 /etc/3rmonitor/mysql.cnf:

[client]
user = monitor
password = 你的密码
sudo chmod 600 /etc/3rmonitor/mysql.cnf

然后在 agent.conf 中设置 mysql_defaults_file = /etc/3rmonitor/mysql.cnf,并重启被控。读取运行状态和版本不需要任何数据库的权限。

本页目录