Skip to content

配置说明

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

配置文件

配置文件使用 TOML 格式,默认路径为 config.toml

生成配置文件

使用 -g 参数生成配置文件模板:

bash
# 生成配置文件到默认路径 (config.toml)
./ipam-server -g

# 生成配置文件到指定路径
./ipam-server -c /etc/ipam/config.toml -g

生成的配置文件包含详细的中文注释,方便理解和修改。

配置示例

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

toml
# 服务器配置
[server]
port = 8080
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]

配置项类型默认值说明
portint8080服务器监听端口
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是否压缩备份

命令行参数

系统支持多种命令行参数,方便快速配置和操作:

参数说明示例
-c指定配置文件路径-c /etc/ipam/config.toml
-g生成配置文件模板-g
-p重置 admin 密码-p
-l设置日志级别-l debug
-f指定日志文件路径-f /var/log/ipam.log
-h显示帮助信息-h

使用示例

bash
# 生成配置文件模板(首次部署推荐)
./ipam-server -g

# 使用自定义配置文件启动
./ipam-server -c /etc/ipam/config.toml

# 重置 admin 密码
./ipam-server -p

# 指定日志级别和文件
./ipam-server -l debug -f /var/log/ipam.log

# 显示帮助信息
./ipam-server -h

环境变量

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

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=8080
export SERVER_MODE=release

# 监控配置
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 许可发布