
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
pfMon 是一个用于简化 InfluxDB 和 Grafana 部署的 Docker 项目,旨在帮助 pfSense 防火墙用户快速搭建监控系统。通过集成 InfluxDB(时序数据库)和 Grafana(可视化平台),pfMon 能够收集 pfSense 上的 Telegraf 统计数据,并提供开箱即用的灵活仪表板,实现对网络状态的实时监控。
4.1.1 准备 docker-compose.yml
使用以下配置文件部署 InfluxDB 和 Grafana 容器(默认映射 Grafana 端口 4000,InfluxDB 端口 8088,非默认端口以避免冲突):
yamlversion: '2' services: db: image: influxdb container_name: influxdb-pfmon restart: always ports: - "8088:8086" # InfluxDB 端口映射(宿主机:容器) networks: - default volumes: - ./influxdb:/var/lib/influxdb # 持久化 InfluxDB 数据 environment: - INFLUXDB_ADMIN_USER=admin # InfluxDB 管理员用户名 - INFLUXDB_ADMIN_PASSWORD=password # InfluxDB 管理员密码 - INFLUXDB_DB=speedtest # 初始数据库名(待优化) web: image: kjake/pfmon-docker:latest container_name: pfweb restart: always ports: - "4000:3000" # Grafana 端口映射(宿主机:容器) networks: - default volumes: - ./config:/var/lib/grafana # 持久化 Grafana 配置 user: "472" # Grafana 运行用户 ID environment: - GF_INSTALL_PLUGINS=https://packages.hiveeyes.org/grafana/grafana-map-panel/grafana-map-panel-0.9.0.zip;grafana-map-panel # 安装地图插件 - GF_SERVER_ROOT_URL=http://localhost # Grafana 访问 URL - GF_SERVER_HTTP_PORT=3000 # Grafana 容器内端口 - GF_AUTH_ANONYMOUS_ENABLED=true # 启用匿名访问 - GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer # 匿名用户角色(只读) # 可选 HTTPS 配置(取消注释并替换证书路径) # - GF_SERVER_CERT_FILE=/tmp/crt # - GF_SERVER_CERT_KEY=/tmp/key # - GF_SERVER_PROTOCOL=https networks: default: driver: bridge
4.1.2 启动容器
在 docker-compose.yml 所在目录执行以下命令启动容器:
bashdocker-compose up -d
4.2.1 安装 Telegraf
Telegraf 包4.2.2 配置 gateways.py 脚本(网关状态收集)
gateways.py 脚本:访问 https://gist.github.com/fastjack/a0feb792a9655da7aa3e2a7a1d9f812f 并保存文件gateways.py 至 /tmp 目录bashmv /tmp/gateways.py /usr/local/bin/gateways.py chmod +x /usr/local/bin/gateways.py
4.2.3 配置 Telegraf 发送数据至 InfluxDB
http://<docker宿主机IP>:8088(替换 <docker宿主机IP> 为实际宿主机 IP)speedtest(当前版本固定,待优化)docker-compose.yml 中配置的 INFLUXDB_ADMIN_USER 和 INFLUXDB_ADMIN_PASSWORD8.8.8.8(Google DNS,用于网络连通性测试)ini[[inputs.exec]] commands = ["/usr/local/bin/gateways.py"] # 执行网关状态脚本 timeout = "5s" data_format = "influx" [[inputs.logparser]] files = ["/var/log/pfblockerng/dnsbl.log"] # pfBlockerNG DNS 拦截日志 from_beginning=true [inputs.logparser.grok] measurement = "dnsbl_log" patterns = ["^%{WORD:BlockType}-%{WORD:BlockSubType},%{SYSLOGTIMESTAMP:timestamp:ts-syslog},%{IPORHOST:destination:tag},%{IPORHOST:source:tag},%{GREEDYDATA:call},%{WORD:BlockMethod},%{WORD:BlockList},%{IPORHOST:tld:tag},%{WORD:DefinedList:tag},%{GREEDYDATA:hitormiss}"] timezone = "Local" [inputs.logparser.tags] value = "1" [[inputs.logparser]] files = ["/var/log/pfblockerng/ip_block.log"] # pfBlockerNG IP 拦截日志 from_beginning=true [inputs.logparser.grok] measurement = "ip_block_log" patterns = ["^%{SYSLOGTIMESTAMP:timestamp:ts-syslog},%{NUMBER:TrackerID},%{GREEDYDATA:Interface},%{WORD:InterfaceName},%{WORD:action},%{NUMBER:IPVersion},%{NUMBER:ProtocolID},%{GREEDYDATA:Protocol},%{IPORHOST:SrcIP:tag},%{IPORHOST:DstIP:tag},%{NUMBER:SrcPort},%{NUMBER:DstPort},%{WORD:Dir},%{WORD:GeoIP:tag},%{GREEDYDATA:AliasName},%{GREEDYDATA:IPEvaluated},%{GREEDYDATA:FeedName:tag},%{HOSTNAME:ResolvedHostname},%{HOSTNAME:ClientHostname},%{GREEDYDATA:ASN},%{GREEDYDATA:DuplicateEventStatus}"] timezone = "Local"
| 参数名 | 说明 | 默认值 |
|---|---|---|
| INFLUXDB_ADMIN_USER | InfluxDB 管理员用户名 | admin |
| INFLUXDB_ADMIN_PASSWORD | InfluxDB 管理员密码 | password |
| INFLUXDB_DB | 初始创建的数据库名 | speedtest |
| 参数名 | 说明 | 默认值 |
|---|---|---|
| GF_INSTALL_PLUGINS | 预安装的 Grafana 插件 | https://packages.hiveeyes.org/grafana/grafana-map-panel/grafana-map-panel-0.9.0.zip;grafana-map-panel |
| GF_SERVER_ROOT_URL | Grafana 访问根 URL | http://localhost |
| GF_SERVER_HTTP_PORT | Grafana 容器内 HTTP 端口 | 3000 |
| GF_AUTH_ANONYMOUS_ENABLED | 是否启用***访问 | true |
| GF_AUTH_ANONYMOUS_ORG_ROLE | ***用户角色 | Viewer(只读) |
| GF_SERVER_PROTOCOL(可选) | 启用 HTTPS 时设置为 https | 未启用(默认 HTTP) |
| GF_SERVER_CERT_FILE(可选) | HTTPS 证书路径(容器内路径) | 无 |
| GF_SERVER_CERT_KEY(可选) | HTTPS 私钥路径(容器内路径) | 无 |
http://<docker宿主机IP>:4000,进入 Grafana 界面(***访问已启用,无需登录)speedtest,未来版本将优化为可配置docker-compose.yml 中的端口映射(如 4001:3000)./influxdb 和 ./config 目录权限正确,避免容器启动失败您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务