配置说明
本文档详细介绍 IPAM 系统的配置选项。
配置文件
配置文件使用 TOML 格式,默认路径为 config.toml。
配置示例
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
max_concurrent = 100
timeout = 5
# 扫描配置
[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]
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| port | int | 8080 | 服务器监听端口 |
| mode | string | "debug" | 运行模式:debug/release |
| read_timeout | int | 60 | 读取超时(秒) |
| write_timeout | int | 60 | 写入超时(秒) |
数据库配置 [database]
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| type | string | "mysql" | 数据库类型:mysql/postgres |
| host | string | "localhost" | 数据库主机 |
| port | int | 3306 | 数据库端口 |
| user | string | - | 数据库用户名 |
| password | string | - | 数据库密码 |
| dbname | string | "ipam" | 数据库名称 |
| charset | string | "utf8mb4" | 字符集 |
| max_open_conns | int | 25 | 最大连接数 |
| max_idle_conns | int | 5 | 最大空闲连接数 |
| conn_max_lifetime | int | 3600 | 连接最大生命周期(秒) |
JWT 配置 [jwt]
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| secret | string | - | JWT 签名密钥 |
| expire_hours | int | 24 | Token 过期时间(小时) |
| refresh_hours | int | 12 | Token 刷新时间(小时) |
安全提示:生产环境请务必修改默认密钥!
日志配置 [log]
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| level | string | "info" | 日志级别:debug/info/warn/error |
| format | string | "json" | 日志格式:json/text |
| output | string | "file" | 输出方式:file/stdout |
| filename | string | "logs/ipam.log" | 日志文件路径 |
| max_size | int | 100 | 单个日志文件大小(MB) |
| max_backups | int | 10 | 保留的备份文件数 |
| max_age | int | 30 | 日志保留天数 |
| compress | bool | true | 是否压缩备份 |
监控配置 [monitoring]
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| enabled | bool | true | 是否启用监控 |
| interval | int | 300 | 监控间隔(秒) |
| max_concurrent | int | 100 | 最大并发数 |
| timeout | int | 5 | Ping 超时时间(秒) |
| retry_count | int | 3 | 重试次数 |
扫描配置 [scanner]
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| enabled | bool | true | 是否启用扫描 |
| scan_interval | int | 600 | 扫描间隔(秒) |
| mac_timeout | int | 5 | MAC 扫描超时(秒) |
| packet_count | int | 3 | 发送的数据包数量 |
探针配置 [probe]
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| enabled | bool | true | 是否启用探针 |
| api_key | string | - | 探针 API 密钥 |
| max_results | int | 1000 | 单次上报最大结果数 |
备份配置 [backup]
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| enabled | bool | true | 是否启用自动备份 |
| schedule | string | "0 2 * * *" | 备份计划(Cron 表达式) |
| retention_days | int | 30 | 备份保留天数 |
| output_dir | string | "backups" | 备份输出目录 |
| compress | bool | true | 是否压缩备份 |
环境变量
配置项也可以通过环境变量设置,优先级高于配置文件。
bash
# 数据库配置
export IPAM_DATABASE_HOST=localhost
export IPAM_DATABASE_PORT=3306
export IPAM_DATABASE_USER=ipam_user
export IPAM_DATABASE_PASSWORD=secret
export IPAM_DATABASE_DBNAME=ipam
# JWT 配置
export IPAM_JWT_SECRET=your-secret-key
# 服务器配置
export IPAM_SERVER_PORT=8080
export IPAM_SERVER_MODE=release多环境配置
支持根据环境加载不同的配置文件:
config.toml # 默认配置
config.dev.toml # 开发环境
config.test.toml # 测试环境
config.prod.toml # 生产环境通过环境变量指定环境:
bash
export IPAM_ENV=prod
./ipam-server配置热加载
部分配置支持热加载,修改后无需重启服务:
- 日志级别
- 监控间隔
- 扫描间隔
发送信号触发重载:
bash
kill -HUP $(pgrep ipam-server)配置验证
启动时会自动验证配置:
bash
./ipam-server --validate-config验证内容包括:
- 配置格式是否正确
- 必填项是否已填写
- 数值是否在有效范围内
- 数据库连接是否正常
常见问题
如何修改监听端口?
toml
[server]
port = 9090如何关闭监控功能?
toml
[monitoring]
enabled = 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"