Skip to content

配置说明

本文档详细介绍 IPAM 系统的配置选项。

配置文件

配置文件使用 TOML 格式,默认路径为 config.toml。在 Docker 部署中,配置文件通过卷挂载到 /app/config 目录,系统会自动处理加密配置。

配置示例

以下是一个典型的配置文件示例:

toml
# 服务器配置
[server]
port = 12389
mode = "release"

# 数据库配置
[database]
type = "mysql"
host = "localhost"
port = 3306
user = "ipam_user"
password = "your_password"
dbname = "ipam"
charset = "utf8mb4"
max_open_conns = 25
max_idle_conns = 5
conn_max_lifetime = 3600

# JWT 配置
[jwt]
secret = "your-secret-key"
expire_hours = 24

# 日志配置
[log]
level = "info"
format = "json"
output = "file"
filename = "logs/ipam.log"
max_size = 100
max_backups = 10
max_age = 30
compress = true

# 监控配置
[monitoring]
enabled = true              # 是否启用监控功能
interval = 300              # 监控检测间隔(秒)
gateway_timeout = 5         # 网关 Ping 超时时间(秒)
ip_timeout = 3              # IP 地址 Ping 超时时间(秒)
max_concurrent = 100        # 最大并发数
enable_host_scanning = false  # 是否启用主程序全量扫描,默认 false

# 扫描配置
[scanner]
enabled = true
scan_interval = 600
mac_timeout = 5

# 探针配置
[probe]
enabled = true
api_key = "your-probe-api-key"

# 备份配置
[backup]
enabled = true
schedule = "0 2 * * *"
retention_days = 30
output_dir = "backups"

配置项详解

服务器配置 [server]

配置项类型默认值说明
portint12389服务器监听端口
modestring"debug"运行模式:debug/release
read_timeoutint60读取超时(秒)
write_timeoutint60写入超时(秒)

数据库配置 [database]

配置项类型默认值说明
typestring"mysql"数据库类型:mysql/postgres
hoststring"localhost"数据库主机
portint3306数据库端口
userstring-数据库用户名
passwordstring-数据库密码
dbnamestring"ipam"数据库名称
charsetstring"utf8mb4"字符集
max_open_connsint25最大连接数
max_idle_connsint5最大空闲连接数
conn_max_lifetimeint3600连接最大生命周期(秒)

JWT 配置 [jwt]

配置项类型默认值说明
secretstring-JWT 签名密钥
expire_hoursint24Token 过期时间(小时)
refresh_hoursint12Token 刷新时间(小时)

安全提示:生产环境请务必修改默认密钥!

日志配置 [log]

配置项类型默认值说明
levelstring"info"日志级别:debug/info/warn/error
formatstring"json"日志格式:json/text
outputstring"file"输出方式:file/stdout
filenamestring"logs/ipam.log"日志文件路径
max_sizeint100单个日志文件大小(MB)
max_backupsint10保留的备份文件数
max_ageint30日志保留天数
compressbooltrue是否压缩备份

监控配置 [monitoring]

配置项类型默认值说明
enabledbooltrue是否启用监控
intervalint300监控间隔(秒)
gateway_timeoutint5网关 Ping 超时时间(秒)
ip_timeoutint3IP 地址 Ping 超时时间(秒)
max_concurrentint100最大并发数
enable_host_scanningboolfalse是否启用主程序全量 ARP/MAC 扫描

enable_host_scanning 参数详解

  • false(默认):主程序不主动扫描网络,仅通过 API 接收独立探针客户端上报的 MAC 地址数据
  • true:主程序主动执行 ARP 扫描获取 MAC 地址(适合小型单网段环境,无需独立探针)

使用建议

  • 小型网络(单网段,< 500 IP):可设置为 true,主程序直接扫描
  • 中大型网络(多网段,> 500 IP):保持 false,使用分布式探针客户端扫描

扫描配置 [scanner]

配置项类型默认值说明
enabledbooltrue是否启用扫描
scan_intervalint600扫描间隔(秒)
mac_timeoutint5MAC 扫描超时(秒)
packet_countint3发送的数据包数量

探针配置 [probe]

配置项类型默认值说明
enabledbooltrue是否启用探针
api_keystring-探针 API 密钥
max_resultsint1000单次上报最大结果数

备份配置 [backup]

配置项类型默认值说明
enabledbooltrue是否启用自动备份
schedulestring"0 2 * * *"备份计划(Cron 表达式)
retention_daysint30备份保留天数
output_dirstring"backups"备份输出目录
compressbooltrue是否压缩备份

环境变量

配置项也可以通过环境变量设置,优先级高于配置文件。

bash
# 数据库配置
export DB_TYPE=mysql
export DB_HOST=localhost
export DB_PORT=3306
export DB_USER=ipam_user
export DB_PASSWORD=secret
export DB_NAME=ipam

# JWT 配置
export JWT_SECRET=your-secret-key

# 服务器配置
export SERVER_PORT=12389

# 监控配置
export MONITORING_ENABLED=true
export MONITORING_INTERVAL=30
export MONITORING_GATEWAY_TIMEOUT=5
export MONITORING_IP_TIMEOUT=3
export MONITORING_MAX_CONCURRENT=100
export MONITORING_ENABLE_HOST_SCANNING=false  # 控制主程序是否主动扫描

配置加载优先级

系统支持三级配置加载机制:

加密配置 (config.enc) → 明文配置 (config.toml) → 环境变量
  1. 加密配置:如果存在 config.enc,优先使用加密配置
  2. 明文配置:如果加密配置不存在或失效,使用 config.toml
  3. 环境变量:如果以上都不存在,尝试从环境变量加载

当明文配置或环境变量配置成功连接数据库后,系统会自动加密存储配置文件。

常见问题

如何修改监听端口?

toml
[server]
port = 9090

如何关闭监控功能?

toml
[monitoring]
enabled = false

注意:关闭监控功能后,系统将:

  • 停止 Ping 检测 IP 在线状态
  • 无法接收探针客户端上报的数据
  • 如需仅禁用主程序扫描而保留探针接收功能,请使用:
toml
[monitoring]
enabled = true              # 保持启用以接收探针数据
enable_host_scanning = false  # 禁用主程序主动扫描

如何调整日志级别?

toml
[log]
level = "debug"  # debug/info/warn/error

如何配置 PostgreSQL?

toml
[database]
type = "postgres"
host = "localhost"
port = 5432
user = "ipam_user"
password = "password"
dbname = "ipam"

基于 MIT 许可发布