- 关于 TiDB
- 快速上手
- 部署标准集群
- 数据迁移
- 运维操作
- 监控与告警
- 故障诊断
- 性能调优
- 系统调优
- 软件调优
- SQL 性能调优
- SQL 性能调优概览
- 理解 TiDB 执行计划
- SQL 优化流程
- 控制执行计划
- 教程
- 同城多中心部署
- 两地三中心部署
- 同城两中心部署
- 读取历史数据
- 使用 Stale Read 功能读取历史数据(推荐)
- 使用系统变量
tidb_snapshot
读取历史数据
- 最佳实践
- Placement Rules 使用文档
- Load Base Split 使用文档
- Store Limit 使用文档
- TiDB 工具
- 功能概览
- 适用场景
- 工具下载
- TiUP
- 文档地图
- 概览
- 术语及核心概念
- TiUP 组件管理
- FAQ
- 故障排查
- TiUP 命令参考手册
- 命令概览
- TiUP 命令
- TiUP Cluster 命令
- TiUP Cluster 命令概览
- tiup cluster audit
- tiup cluster check
- tiup cluster clean
- tiup cluster deploy
- tiup cluster destroy
- tiup cluster disable
- tiup cluster display
- tiup cluster edit-config
- tiup cluster enable
- tiup cluster help
- tiup cluster import
- tiup cluster list
- tiup cluster patch
- tiup cluster prune
- tiup cluster reload
- tiup cluster rename
- tiup cluster replay
- tiup cluster restart
- tiup cluster scale-in
- tiup cluster scale-out
- tiup cluster start
- tiup cluster stop
- tiup cluster template
- tiup cluster upgrade
- TiUP DM 命令
- TiUP DM 命令概览
- tiup dm audit
- tiup dm deploy
- tiup dm destroy
- tiup dm disable
- tiup dm display
- tiup dm edit-config
- tiup dm enable
- tiup dm help
- tiup dm import
- tiup dm list
- tiup dm patch
- tiup dm prune
- tiup dm reload
- tiup dm replay
- tiup dm restart
- tiup dm scale-in
- tiup dm scale-out
- tiup dm start
- tiup dm stop
- tiup dm template
- tiup dm upgrade
- TiDB 集群拓扑文件配置
- DM 集群拓扑文件配置
- TiUP 镜像参考指南
- TiUP 组件文档
- TiDB Operator
- Dumpling
- TiDB Lightning
- TiDB Data Migration
- Backup & Restore (BR)
- TiDB Binlog
- TiCDC
- sync-diff-inspector
- TiSpark
- 参考指南
- 架构
- 监控指标
- 安全加固
- 权限
- SQL
- SQL 语言结构和语法
- SQL 语句
ADD COLUMN
ADD INDEX
ADMIN
ADMIN CANCEL DDL
ADMIN CHECKSUM TABLE
ADMIN CHECK [TABLE|INDEX]
ADMIN SHOW DDL [JOBS|QUERIES]
ADMIN SHOW TELEMETRY
ALTER DATABASE
ALTER INDEX
ALTER INSTANCE
ALTER PLACEMENT POLICY
ALTER TABLE
ALTER USER
ANALYZE TABLE
BACKUP
BEGIN
CHANGE COLUMN
CHANGE DRAINER
CHANGE PUMP
COMMIT
CREATE [GLOBAL|SESSION] BINDING
CREATE DATABASE
CREATE INDEX
CREATE PLACEMENT POLICY
CREATE ROLE
CREATE SEQUENCE
CREATE TABLE LIKE
CREATE TABLE
CREATE USER
CREATE VIEW
DEALLOCATE
DELETE
DESC
DESCRIBE
DO
DROP [GLOBAL|SESSION] BINDING
DROP COLUMN
DROP DATABASE
DROP INDEX
DROP PLACEMENT POLICY
DROP ROLE
DROP SEQUENCE
DROP STATS
DROP TABLE
DROP USER
DROP VIEW
EXECUTE
EXPLAIN ANALYZE
EXPLAIN
FLASHBACK TABLE
FLUSH PRIVILEGES
FLUSH STATUS
FLUSH TABLES
GRANT <privileges>
GRANT <role>
INSERT
KILL [TIDB]
LOAD DATA
LOAD STATS
MODIFY COLUMN
PREPARE
RECOVER TABLE
RENAME INDEX
RENAME TABLE
REPLACE
RESTORE
REVOKE <privileges>
REVOKE <role>
ROLLBACK
SELECT
SET DEFAULT ROLE
SET [NAMES|CHARACTER SET]
SET PASSWORD
SET ROLE
SET TRANSACTION
SET [GLOBAL|SESSION] <variable>
SHOW [BACKUPS|RESTORES]
SHOW ANALYZE STATUS
SHOW [GLOBAL|SESSION] BINDINGS
SHOW BUILTINS
SHOW CHARACTER SET
SHOW COLLATION
SHOW [FULL] COLUMNS FROM
SHOW CONFIG
SHOW CREATE PLACEMENT POLICY
SHOW CREATE SEQUENCE
SHOW CREATE TABLE
SHOW CREATE USER
SHOW DATABASES
SHOW DRAINER STATUS
SHOW ENGINES
SHOW ERRORS
SHOW [FULL] FIELDS FROM
SHOW GRANTS
SHOW INDEX [FROM|IN]
SHOW INDEXES [FROM|IN]
SHOW KEYS [FROM|IN]
SHOW MASTER STATUS
SHOW PLACEMENT
SHOW PLACEMENT FOR
SHOW PLACEMENT LABELS
SHOW PLUGINS
SHOW PRIVILEGES
SHOW [FULL] PROCESSSLIST
SHOW PROFILES
SHOW PUMP STATUS
SHOW SCHEMAS
SHOW STATS_HEALTHY
SHOW STATS_HISTOGRAMS
SHOW STATS_META
SHOW STATUS
SHOW TABLE NEXT_ROW_ID
SHOW TABLE REGIONS
SHOW TABLE STATUS
SHOW [FULL] TABLES
SHOW [GLOBAL|SESSION] VARIABLES
SHOW WARNINGS
SHUTDOWN
SPLIT REGION
START TRANSACTION
TABLE
TRACE
TRUNCATE
UPDATE
USE
WITH
- 数据类型
- 函数与操作符
- 聚簇索引
- 约束
- 生成列
- SQL 模式
- 表属性
- 事务
- 垃圾回收 (GC)
- 视图
- 分区表
- 临时表
- 字符集和排序
- Placement Rules in SQL
- 系统表
mysql
- INFORMATION_SCHEMA
- Overview
ANALYZE_STATUS
CLIENT_ERRORS_SUMMARY_BY_HOST
CLIENT_ERRORS_SUMMARY_BY_USER
CLIENT_ERRORS_SUMMARY_GLOBAL
CHARACTER_SETS
CLUSTER_CONFIG
CLUSTER_HARDWARE
CLUSTER_INFO
CLUSTER_LOAD
CLUSTER_LOG
CLUSTER_SYSTEMINFO
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
DATA_LOCK_WAITS
DDL_JOBS
DEADLOCKS
ENGINES
INSPECTION_RESULT
INSPECTION_RULES
INSPECTION_SUMMARY
KEY_COLUMN_USAGE
METRICS_SUMMARY
METRICS_TABLES
PARTITIONS
PLACEMENT_RULES
PROCESSLIST
REFERENTIAL_CONSTRAINTS
SCHEMATA
SEQUENCES
SESSION_VARIABLES
SLOW_QUERY
STATISTICS
TABLES
TABLE_CONSTRAINTS
TABLE_STORAGE_STATS
TIDB_HOT_REGIONS
TIDB_HOT_REGIONS_HISTORY
TIDB_INDEXES
TIDB_SERVERS_INFO
TIDB_TRX
TIFLASH_REPLICA
TIKV_REGION_PEERS
TIKV_REGION_STATUS
TIKV_STORE_STATUS
USER_PRIVILEGES
VIEWS
METRICS_SCHEMA
- UI
- CLI
- 命令行参数
- 配置文件参数
- 系统变量
- 存储引擎
- 遥测
- 错误码
- 通过拓扑 label 进行副本调度
- 常见问题解答 (FAQ)
- 版本发布历史
- 术语表
通过 TiUP 部署 DM 集群的拓扑文件配置
在部署或扩容 TiDB Data Migration (DM) 集群时,需要提供一份拓扑文件来描述集群拓扑,同样,修改配置也是通过编辑拓扑文件来实现的,区别在于修改配置时仅允许修改部分字段。
拓扑文件示例参考。
文件结构
一个 DM 集群的拓扑文件可能包含以下区块:
- global:集群全局配置,其中一些是集群的默认值,可以在实例里面单独配置
- server_configs:组件全局配置,可单独针对每个组件配置,若在实例中存在同名配置项,那么以实例中配置的为准
- master_servers:DM master 实例的配置,用来指定 DM 组件的 master 服务部署到哪些机器上
- worker_servers:DM worker 实例的配置,用来指定 DM 组件的 worker 服务部署到哪些机器上
- monitoring_servers:用来指定 Prometheus 部署在哪机器上,TiUP 支持部署多台 Prometheus 实例,但真实投入使用的只有第一个
- grafana_servers:Grafana 实例的配置,用来指定 Grafana 部署在哪台机器上
- alertmanager_servers:Alertemanager 实例的配置,用来指定 Alertmanager 部署在哪些机器上
global
global
区块为集群的全局配置,包含以下字段:
user
:以什么用户来启动部署的集群,默认值:"tidb",如果<user>
字段指定的用户在目标机器上不存在,会自动尝试创建group
:自动创建用户时指定用户所属的用户组,默认和<user>
字段值相同,若指定的组不存在,则自动创建ssh_port
:指定连接目标机器进行操作的时候使用的 SSH 端口,默认值:22deploy_dir
:每个组件的部署目录,默认值:"deploy",其应用规则如下:- 如果在实例级别配置了绝对路径的
deploy_dir
,那么实际部署目录为该实例设定的deploy_dir
- 对于每个实例,如果用户未配置
deploy_dir
,其默认值为相对路径<component-name>-<component-port>
- 如果
global.deploy_dir
为绝对路径,那么组件会部署到<global.deploy_dir>/<instance.deploy_dir>
目录 - 如果
global.deploy_dir
为相对路径,那么组件会部署到/home/<global.user>/<global.deploy_dir>/<instance.deploy_dir>
目录
- 如果在实例级别配置了绝对路径的
data_dir
:数据目录, 默认值:"data",其应用规则如下:- 如果在实例级别配置了绝对路径的
data_dir
,那么实际数据目录为该实例设定的data_dir
- 对于每个实例,如果用户未配置
data_dir
,其默认值为<global.data_dir>
- 如果
data_dir
为相对路径,那么组件数据将放到<deploy_dir>/<data_dir>
中,其中<deploy_dir>
的计算规则请参考deploy_dir
字段的应用规则
- 如果在实例级别配置了绝对路径的
log_dir
:数据目录, 默认值:"log",其应用规则如下:- 如果在实例级别配置了绝对路径的
log_dir
,那么实际日志目录为该实例设定的log_dir
- 对于每个实例,如果用户未配置
log_dir
,其默认值为<global.log_dir>
- 如果
log_dir
为相对路径,那么组件日志将放到<deploy_dir>/<log_dir>
中,其中<deploy_dir>
的计算规则请参考deploy_dir
字段的应用规则
- 如果在实例级别配置了绝对路径的
os
:目标机器的操作系统,该字段决定了向目标机器推送适配哪个操作系统的组件,默认值:linuxarch
:目标机器的 CPU 架构,该字段决定了向目标机器推送哪个平台的二进制包,支持 amd64 和 arm64,默认值:amd64resource_control
:运行时资源控制,该字段下所有配置都将写入 systemd 的 service 文件中,默认不限制,支持控制的资源:memory_limit
: 限制运行时最大内存,例如 "2G" 表示最多使用 2GB 内存cpu_quota
:限制运行时最大 CPU 占用率,例如 "200%"io_read_bandwidth_max
:读磁盘 IO 的最大带宽,例如:"/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 100M"io_write_bandwidth_max
:写磁盘 IO 的最大带宽,例如:"/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 100M"limit_core
:控制 core dump 大小
global
配置示例:
global:
user: "tidb"
resource_control:
memory_limit: "2G"
上述配置指定使用 tidb
用户启动集群,同时限制每个组件运行时最多只能使用 2GB 内存。
server_configs
server_configs
用于配置服务,生成各组件的配置文件,类似 global
区块,该区块内的配置可以在具体的实例中被覆盖。主要包含以下字段:
master
:DM master 服务的相关配置,支持的完整配置请参考DM-master 配置文件介绍worker
:DM worker 服务的相关配置,支持的完整配置请参考DM-worker 配置文件介绍
server_configs
配置示例:
server_configs:
master:
log-level: info
rpc-timeout: "30s"
rpc-rate-limit: 10.0
rpc-rate-burst: 40
worker:
log-level: info
master_servers
master_servers
约定了将 DM 组件的 master 节点部署到哪些机器上,同时可以指定每台机器上的服务配置,master_servers
是一个数组,每个数组的元素包含以下字段:
host
:指定部署到哪台机器,字段值填 IP 地址,不可省略ssh_port
:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用global
区块中的ssh_port
name
:指定该 DM master 实例的名字,不同实例的名字必须唯一,否则无法部署port
:指定 DM master 提供给服务的端口,默认 8261peer_port
:指定 DM master 之间互相通信的端口,默认值:8291deploy_dir
:指定部署目录,若不指定,或指定为相对目录,则按照global
中配置的deploy_dir
生成data_dir
:指定数据目录,若不指定,或指定为相对目录,则按照global
中配置的data_dir
生成log_dir
:指定日志目录,若不指定,或指定为相对目录,则按照global
中配置的log_dir
生成numa_node
:为该实例分配 NUMA 策略,如果指定了该参数,需要确保目标机装了 numactl,在指定该参数的情况下会通过 numactl 分配 cpubind 和 membind 策略。该字段参数为 string 类型,字段值填 NUMA 节点 ID,比如 "0,1"config
:该字段配置规则和server_configs
里的 master 配置规则相同,若配置了该字段,会将该字段内容和server_configs
里的 master 内容合并(若字段重叠,以本字段内容为准),然后生成配置文件并下发到host
指定的机器os
:host
字段所指定的机器的操作系统,若不指定该字段,则默认为global
中的os
arch
:host
字段所指定的机器的架构,若不指定该字段,则默认为global
中的arch
resource_control
:针对该服务的资源控制,如果配置了该字段,会将该字段和global
中的resource_control
内容合并(若字段重叠,以本字段内容为准),然后生成 systemd 配置文件并下发到host
指定机器。resource_control
的配置规则同global
中的resource_control
- v1_source_path:从 v1.0.x 升级时,可指定该目录,该目录中应当存放有 V1 的源的配置文件
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
host
name
port
peer_port
deploy_dir
data_dir
log_dir
arch
os
v1_source_path
master_servers
配置示例:
master_servers:
- host: 10.0.1.11
name: master1
ssh_port: 22
port: 8261
peer_port: 8291
deploy_dir: "/dm-deploy/dm-master-8261"
data_dir: "/dm-data/dm-master-8261"
log_dir: "/dm-deploy/dm-master-8261/log"
numa_node: "0,1"
# The following configs are used to overwrite the `server_configs.master` values.
config:
log-level: info
rpc-timeout: "30s"
rpc-rate-limit: 10.0
rpc-rate-burst: 40
- host: 10.0.1.18
name: master2
- host: 10.0.1.19
name: master3
worker_servers
worker_servers
约定了将 DM 组件的 worker 节点部署到哪些机器上,同时可以指定每台机器上的服务配置,worker_servers
是一个数组,每个数组的元素包含以下字段:
host
:指定部署到哪台机器,字段值填 IP 地址,不可省略ssh_port
:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用global
区块中的ssh_port
name
:指定该 DM worker 实例的名字,不同实例的名字必须唯一,否则无法部署port
:指定 DM worker 提供给服务的端口,默认 8262deploy_dir
:指定部署目录,若不指定,或指定为相对目录,则按照global
中配置的deploy_dir
生成data_dir
:指定数据目录,若不指定,或指定为相对目录,则按照global
中配置的data_dir
生成log_dir
:指定日志目录,若不指定,或指定为相对目录,则按照global
中配置的log_dir
生成numa_node
:为该实例分配 NUMA 策略,如果指定了该参数,需要确保目标机装了 numactl,在指定该参数的情况下会通过 numactl 分配 cpubind 和 membind 策略。该字段参数为 string 类型,字段值填 NUMA 节点 ID,比如 "0,1"config
:该字段配置规则和server_configs
里的 worker 配置规则相同,若配置了该字段,会将该字段内容和server_configs
里的 worker 内容合并(若字段重叠,以本字段内容为准),然后生成配置文件并下发到host
指定的机器os
:host
字段所指定的机器的操作系统,若不指定该字段,则默认为global
中的os
arch
:host
字段所指定的机器的架构,若不指定该字段,则默认为global
中的arch
resource_control
:针对该服务的资源控制,如果配置了该字段,会将该字段和global
中的resource_control
内容合并(若字段重叠,以本字段内容为准),然后生成 systemd 配置文件并下发到host
指定机器。resource_control
的配置规则同global
中的resource_control
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
host
name
port
deploy_dir
data_dir
log_dir
arch
os
worker_servers
配置示例:
worker_servers:
- host: 10.0.1.12
ssh_port: 22
port: 8262
deploy_dir: "/dm-deploy/dm-worker-8262"
log_dir: "/dm-deploy/dm-worker-8262/log"
numa_node: "0,1"
# config is used to overwrite the `server_configs.worker` values
config:
log-level: info
- host: 10.0.1.19
monitoring_servers
monitoring_servers
约定了将 Prometheus 服务部署到哪台机器上,同时可以指定这台机器上的服务配置,monitoring_servers
是一个数组,每个数组元素包含以下字段:
host
:指定部署到哪台机器,字段值填 IP 地址,不可省略ssh_port
:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用global
区块中的ssh_port
port
:指定 Prometheus 提供服务的端口,默认值:9090deploy_dir
:指定部署目录,若不指定,或指定为相对目录,则按照global
中配置的deploy_dir
生成data_dir
:指定数据目录,若不指定,或指定为相对目录,则按照global
中配置的data_dir
生成log_dir
:指定日志目录,若不指定,或指定为相对目录,则按照global
中配置的log_dir
生成numa_node
:为该实例分配 NUMA 策略,如果指定了该参数,需要确保目标机装了 numactl,在指定该参数的情况下会通过 numactl 分配 cpubind 和 membind 策略。该字段参数为 string 类型,字段值填 NUMA 节点 ID,比如 "0,1"storage_retention
:Prometheus 监控数据保留时间,默认 "15d"rule_dir
:该字段指定一个本地目录,该目录中应当含有完整的*.rules.yml
文件,这些文件会在集群配置初始化阶段被传输到目标机器上,作为 Prometheus 的规则remote_config
:用于支持将 Prometheus 数据写到远端,或从远端读取数据,该字段下有两个配置:remote_write
:参考 Prometheus<remote_write>
文档remote_read
:参考 Prometheus<remote_read>
文档
external_alertmanagers
:若配置了external_alertmanagers
,Prometheus 会将配置行为报警通知到集群外的 Alertmanager。该字段为一个数组,数组的元素为每个外部的 Alertmanager,由host
和web_port
字段构成os
:host
字段所指定的机器的操作系统,若不指定该字段,则默认为global
中的os
arch
:host
字段所指定的机器的架构,若不指定该字段,则默认为global
中的arch
resource_control
:针对该服务的资源控制,如果配置了该字段,会将该字段和global
中的resource_control
内容合并(若字段重叠,以本字段内容为准),然后生成 systemd 配置文件并下发到host
指定机器。resource_control
的配置规则同global
中的resource_control
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
host
port
deploy_dir
data_dir
log_dir
arch
os
monitoring_servers
配置示例:
monitoring_servers:
- host: 10.0.1.11
rule_dir: /local/rule/dir
remote_config:
remote_write:
- queue_config:
batch_send_deadline: 5m
capacity: 100000
max_samples_per_send: 10000
max_shards: 300
url: http://127.0.0.1:8003/write
remote_read:
- url: http://127.0.0.1:8003/read
external_alertmanagers:
- host: 10.1.1.1
web_port: 9093
- host: 10.1.1.2
web_port: 9094
grafana_servers
grafana_servers
约定了将 Grafana 服务部署到哪台机器上,同时可以指定这台机器上的服务配置,grafana_servers
是一个数组,每个数组元素包含以下字段:
host
:指定部署到哪台机器,字段值填 IP 地址,不可省略ssh_port
:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用global
区块中的ssh_port
port
:指定 Grafana 提供服务的端口,默认值:3000deploy_dir
:指定部署目录,若不指定,或指定为相对目录,则按照global
中配置的deploy_dir
生成os
:host
字段所指定的机器的操作系统,若不指定该字段,则默认为global
中的os
arch
:host
字段所指定的机器的架构,若不指定该字段,则默认为global
中的arch
username
:Grafana 登录界面的用户名password
:Grafana 对应的密码dashboard_dir
:该字段指定一个本地目录,该目录中应当含有完整的dashboard(*.json)
文件,这些文件会在集群配置初始化阶段被传输到目标机器上,作为 Grafana 的 dashboardsresource_control
:针对该服务的资源控制,如果配置了该字段,会将该字段和global
中的resource_control
内容合并(若字段重叠,以本字段内容为准),然后生成 systemd 配置文件并下发到host
指定机器。resource_control
的配置规则同global
中的resource_control
如果配置了 grafana_servers
的 dashboard_dir
字段,在执行 tiup cluster rename
命令进行集群重命名后,需要完成以下操作:
- 在本地的 dashboards 目录中,将 datasource 字段的值更新为新的集群名(datasource 是以集群名命名的)
- 执行
tiup cluster reload -R grafana
命令
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
host
port
deploy_dir
arch
os
grafana_servers
配置示例:
grafana_servers:
- host: 10.0.1.11
dashboard_dir: /local/dashboard/dir
alertmanager_servers
alertmanager_servers
约定了将 Alertmanager 服务部署到哪些机器上,同时可以指定这台机器上的服务配置,alertmanager_servers
是一个数组,每个数组元素包含以下字段:
host
:指定部署到哪台机器,字段值填 IP 地址,不可省略ssh_port
:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用global
区块中的ssh_port
web_port
:指定 Alertmanager 提供网页服务的端口,默认值:9093cluster_port
:指定 Alertmanger 和 其他 Alertmanager 通讯的端口,默认值:9094deploy_dir
:指定部署目录,若不指定,或指定为相对目录,则按照global
中配置的deploy_dir
生成data_dir
:指定数据目录,若不指定,或指定为相对目录,则按照global
中配置的data_dir
生成log_dir
:指定日志目录,若不指定,或指定为相对目录,则按照global
中配置的log_dir
生成numa_node
:为该实例分配 NUMA 策略,如果指定了该参数,需要确保目标机装了 numactl,在指定该参数的情况下会通过 numactl 分配 cpubind 和 membind 策略。该字段参数为 string 类型,字段值填 NUMA 节点 ID,比如 "0,1"config_file
:该字段指定一个本地文件,该文件会在集群配置初始化阶段被传输到目标机器上,作为 Alertmanager 的配置os
:host
字段所指定的机器的操作系统,若不指定该字段,则默认为global
中的os
arch
:host
字段所指定的机器的架构,若不指定该字段,则默认为global
中的arch
resource_control
:针对该服务的资源控制,如果配置了该字段,会将该字段和global
中的resource_control
内容合并(若字段重叠,以本字段内容为准),然后生成 systemd 配置文件并下发到host
指定机器。resource_control
的配置规则同global
中的resource_control
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
host
web_port
cluster_port
deploy_dir
data_dir
log_dir
arch
os
alertmanager_servers
配置示例:
alertmanager_servers:
- host: 10.0.1.11
config_file: /local/config/file
- host: 10.0.1.12
config_file: /local/config/file