[转帖]通过 TiUP 部署 TiDB 集群的拓扑文件配置
https://docs.pingcap.com/zh/tidb/stable/tiup-cluster-topology-reference
通过 TiUP 部署或扩容 TiDB 集群时,需要提供一份拓扑文件(示例)来描述集群拓扑。
同样,修改集群配置也是通过编辑拓扑文件来实现的,区别在于修改配置时仅允许修改部分字段。本文档介绍拓扑文件的各个区块以各区块中的各字段。
文件结构
一个通过 TiUP 部署的 TiDB 集群拓扑文件可能包含以下区块:
- global:集群全局配置,其中一些是集群的默认值,可以在实例里面单独配置
- monitored:监控服务配置,即 blackbox exporter 和 node exporter,每台机器上都会部署一个 node exporter 和一个 blackbox exporter
- server_configs:组件全局配置,可单独针对每个组件配置,若在实例中存在同名配置项,那么以实例中配置的为准
- pd_servers:PD 实例的配置,用来指定 PD 组件部署到哪些机器上
- tidb_servers:TiDB 实例的配置,用来指定 TiDB 组件部署到哪些机器上
- tikv_servers:TiKV 实例的配置,用来指定 TiKV 组件部署到哪些机器上
- tiflash_servers:TiFlash 实例的配置,用来指定 TiFlash 组件部署到哪些机器上
- pump_servers:Pump 实例的配置,用来指定 Pump 组件部署到哪些机器上
- drainer_servers:Drainer 实例的配置,用来指定 Drainer 组件部署到哪些机器上
- cdc_servers:CDC 实例的配置,用来指定 CDC 组件部署到哪些机器上
- tispark_masters:TiSpark Master 实例的配置,用来指定 TiSpark Master 组件部署到哪台机器上,仅允许部署一个 TiSpark Master 节点
- tispark_workers:TiSpark Worker 实例的配置,用来指定 TiSpark Worker 组件部署到哪些机器上
- monitoring_servers:用来指定 Prometheus 和 NGMonitoring 部署在哪些机器上,TiUP 支持部署多台 Prometheus 实例,但真实投入使用的只有第一个
- grafana_servers:Grafana 实例的配置,用来指定 Grafana 部署在哪台机器上
- alertmanager_servers:Alertemanager 实例的配置,用来指定 Alertmanager 部署在哪些机器上
global
global 区块为集群的全局配置,包含以下字段:
user:以什么用户来启动部署的集群,默认值:"tidb",如果<user>字段指定的用户在目标机器上不存在,会自动尝试创建group:自动创建用户时指定用户所属的用户组,默认和<user>字段值相同,若指定的组不存在,则自动创建ssh_port:指定连接目标机器进行操作的时候使用的 SSH 端口,默认值:22enable_tls:是否对集群启用 TLS。启用之后,组件之间、客户端与组件之间都必须使用生成的 TLS 证书进行连接,默认值:falsedeploy_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:读磁盘 I/O 的最大带宽,例如:"/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 100M"io_write_bandwidth_max:写磁盘 I/O 的最大带宽,例如:"/dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 100M"limit_core:控制 core dump 的大小
global 配置示例:
上述配置指定使用 tidb 用户启动集群,同时限制每个组件运行时最多只能使用 2GB 内存。
monitored
monitored 用于配置目标机上的监控服务:node_exporter 和 blackbox_exporter。包含以下字段:
node_exporter_port:node_exporter 的服务端口,默认值:9100blackbox_exporter_port:blackbox_exporter 的服务端口,默认值:9115deploy_dir:指定部署目录,若不指定,或指定为相对目录,则按照global中配置的deploy_dir生成data_dir:指定数据目录,若不指定,或指定为相对目录,则按照global中配置的data_dir生成log_dir:指定日志目录,若不指定,或指定为相对目录,则按照global中配置的log_dir生成
monitored 配置示例:
上述配置指定了 node_exporter 使用 9100 端口,blackbox_exporter 使用 9115 端口。
server_configs
server_configs 用于配置服务,生成各组件的配置文件,类似 global 区块,该区块内的配置可以在具体的实例中被覆盖。主要包含以下字段:
tidb:TiDB 服务的相关配置,支持的完整配置请参考 TiDB 配置文件描述tikv:TiKV 服务的相关配置,支持的完整配置请参考 TiKV 配置文件描述pd:PD 服务的相关配置,支持的完整配置请参考 PD 配置文件描述tiflash:TiFlash 服务的相关配置,支持的完整配置请参考 TiFlash 配置参数tiflash_learner:每个 TiFlash 中内置了一个特殊的 TiKV,该配置项用于配置这个特殊的 TiKV,一般不建议修改这个配置项下的内容pump:Pump 服务的相关配置,支持的完整配置请参考 TiDB Binlog 配置说明drainer:Drainer 服务的相关配置,支持的完整配置请参考 TiDB Binlog 配置说明cdc:CDC 服务的相关配置,支持的完整配置请参考 TiCDC 安装部署
server_configs 配置示例:
上述配置指定了 TiDB 和 TiKV 的全局配置。
pd_servers
pd_servers 指定了将 PD 的服务部署到哪些机器上,同时可以指定每台机器上的服务配置。pd_servers 是一个数组,每个数组的元素包含以下字段:
host:指定部署到哪台机器,字段值填 IP 地址,不可省略listen_host:当机器上有多个 IP 时,可以指定服务的监听 IP,默认为0.0.0.0ssh_port:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用global区块中的ssh_portname:指定该 PD 实例的名字,不同实例的名字必须唯一,否则无法部署client_port:指定 PD 的客户端连接端口,默认值:2379peer_port:指定 PD 之间互相通信的端口,默认值:2380deploy_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里的pd配置规则相同,若配置了该字段,会将该字段内容和server_configs里的pd内容合并(若字段重叠,以本字段内容为准),然后生成配置文件并下发到host指定的机器os:host字段所指定的机器的操作系统,若不指定该字段,则默认为global中的osarch:host字段所指定的机器的架构,若不指定该字段,则默认为global中的archresource_control:针对该服务的资源控制。如果配置了该字段,会将该字段和global中的resource_control内容合并(若字段重叠,以本字段内容为准),然后生成 systemd 配置文件并下发到host指定机器。resource_control的配置规则同global中的resource_control
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
hostlisten_hostnameclient_portpeer_portdeploy_dirdata_dirlog_dirarchos
pd_servers 配置示例:
上述配置指定了将 PD 部署到 10.0.1.11 和 10.0.1.12,并针对 10.0.1.11 的 PD 进行一些特殊配置。
tidb_servers
tidb_servers 指定了将 TiDB 服务部署到哪些机器上,同时可以指定每台机器上的服务配置。tidb_servers 是一个数组,每个数组的元素包含以下字段:
host:指定部署到哪台机器,字段值填 IP 地址,不可省略listen_host:当机器上有多个 IP 时,可以指定服务的监听 IP,默认为0.0.0.0ssh_port:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用global区块中的ssh_portport:TiDB 服务的监听端口,用于提供给 MySQL 客户端连接,默认值:4000status_port:TiDB 状态服务的监听端口,用于外部通过 http 请求查看 TiDB 服务的状态,默认值:10080deploy_dir:指定部署目录,若不指定,或指定为相对目录,则按照global中配置的deploy_dir生成log_dir:指定日志目录,若不指定,或指定为相对目录,则按照global中配置的log_dir生成numa_node:为该实例分配 NUMA 策略,如果指定了该参数,需要确保目标机装了 numactl,在指定该参数的情况下会通过 numactl 分配 cpubind 和 membind 策略。该字段参数为 string 类型,字段值填 NUMA 节点的 ID,例如 "0,1"config:该字段配置规则和server_configs里的tidb配置规则相同,若配置了该字段,会将该字段内容和server_configs里的tidb内容合并(若字段重叠,以本字段内容为准),然后生成配置文件并下发到host指定的机器os:host 字段所指定的机器的操作系统,若不指定该字段,则默认为global中的osarch:host 字段所指定的机器的架构,若不指定该字段,则默认为global中的archresource_control:针对该服务的资源控制,如果配置了该字段,会将该字段和global中的resource_control内容合并(若字段重叠,以本字段内容为准),然后生成 systemd 配置文件并下发到host指定机器。resource_control的配置规则同global中的resource_control
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
hostlisten_hostportstatus_portdeploy_dirlog_dirarchos
tidb_servers 配置示例:
tikv_servers
tikv_servers 约定了将 TiKV 服务部署到哪些机器上,同时可以指定每台机器上的服务配置。tikv_servers 是一个数组,每个数组元素包含以下字段:
host:指定部署到哪台机器,字段值填 IP 地址,不可省略listen_host:当机器上有多个 IP 时,可以指定服务的监听 IP,默认为0.0.0.0ssh_port:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用global区块中的ssh_portport:TiKV 服务的监听端口,默认值:20160status_port:TiKV 状态服务的监听端口,默认值:20180deploy_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 里的 tikv 配置规则相同,若配置了该字段,会将该字段内容和server_configs里的tikv内容合并(若字段重叠,以本字段内容为准),然后生成配置文件并下发到host指定的机器os:host 字段所指定的机器的操作系统,若不指定该字段,则默认为global中的osarch:host 字段所指定的机器的架构,若不指定该字段,则默认为global中的archresource_control:针对该服务的资源控制,如果配置了该字段,会将该字段和global中的resource_control内容合并(若字段重叠,以本字段内容为准),然后生成 systemd 配置文件并下发到host指定机器。resource_control的配置规则同global中的resource_control
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
hostlisten_hostportstatus_portdeploy_dirdata_dirlog_dirarchos
tikv_servers 配置示例:
tiflash_servers
tiflash_servers 约定了将 TiFlash 服务部署到哪些机器上,同时可以指定每台机器上的服务配置。该区块是一个数组,每个数组元素包含以下字段:
host:指定部署到哪台机器,字段值填 IP 地址,不可省略ssh_port:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用 global 区块中的ssh_porttcp_port:TiFlash TCP 服务的端口,默认 9000flash_service_port:TiFlash 提供服务的端口,TiDB 通过该端口从 TiFlash 读数据,默认 3930metrics_port:TiFlash 的状态端口,用于输出 metric 数据,默认 8234flash_proxy_port:内置 TiKV 的端口,默认 20170flash_proxy_status_port:内置 TiKV 的状态端口,默认为 20292deploy_dir:指定部署目录,若不指定,或指定为相对目录,则按照global中配置的deploy_dir生成data_dir:指定数据目录,若不指定,或指定为相对目录,则按照global中配置的data_dir生成,TiFlash 的数据目录支持多个,采用逗号分割log_dir:指定日志目录,若不指定,或指定为相对目录,则按照global中配置的log_dir生成tmp_path: TiFlash 临时文件的存放路径,默认使用 [path或者storage.latest.dir的第一个目录] + "/tmp"numa_node:为该实例分配 NUMA 策略,如果指定了该参数,需要确保目标机装了 numactl,在指定该参数的情况下会通过 numactl 分配 cpubind 和 membind 策略。该字段参数为 string 类型,字段值填 NUMA 节点的 ID,例如 "0,1"config:该字段配置规则和server_configs里的tiflash配置规则相同,若配置了该字段,会将该字段内容和server_configs里的tiflash内容合并(若字段重叠,以本字段内容为准),然后生成配置文件并下发到host指定的机器learner_config:每个 TiFlash 中内置了一个特殊的 TiKV 模块,该配置项用于配置这个特殊的 TiKV 模块,一般不建议修改这个配置项下的内容os:host字段所指定的机器的操作系统,若不指定该字段,则默认为global中的osarch:host字段所指定的机器的架构,若不指定该字段,则默认为global中的archresource_control:针对该服务的资源控制,如果配置了该字段,会将该字段和global中的resource_control内容合并(若字段重叠,以本字段内容为准),然后生成 systemd 配置文件并下发到host指定机器。resource_control的配置规则同global中的resource_control
以上字段中,data_dir 在部署完成之后只能新增目录,而下列字段部署完成之后不能再修改:
hosttcp_porthttp_portflash_service_portflash_proxy_portflash_proxy_status_portmetrics_portdeploy_dirlog_dirtmp_patharchos
tiflash_servers 配置示例:
pump_servers
pump_servers 约定了将 TiDB Binlog 组件的 Pump 服务部署到哪些机器上,同时可以指定每台机器上的服务配置。pump_servers 是一个数组,每个数组元素包含以下字段:
host:指定部署到哪台机器,字段值填 IP 地址,不可省略ssh_port:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用global区块中的ssh_portport:Pump 服务的监听端口,默认 8250deploy_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里的pump配置规则相同,若配置了该字段,会将该字段内容和server_configs里的pump内容合并(若字段重叠,以本字段内容为准),然后生成配置文件并下发到host指定的机器os:host字段所指定的机器的操作系统,若不指定该字段,则默认为global中的osarch:host字段所指定的机器的架构,若不指定该字段,则默认为global中的archresource_control:针对该服务的资源控制,如果配置了该字段,会将该字段和global中的resource_control内容合并(若字段重叠,以本字段内容为准),然后生成 systemd 配置文件并下发到host指定机器。resource_control的配置规则同global中的resource_control
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
hostportdeploy_dirdata_dirlog_dirarchos
pump_servers 配置示例:
drainer_servers
drainer_servers 约定了将 TiDB Binlog 组件的 Drainer 服务部署到哪些机器上,同时可以指定每台机器上的服务配置,drainer_servers 是一个数组,每个数组元素包含以下字段:
host:指定部署到哪台机器,字段值填 IP 地址,不可省略ssh_port:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用global区块中的ssh_portport:Drainer 服务的监听端口,默认 8249deploy_dir:指定部署目录,若不指定,或指定为相对目录,则按照global中配置的deploy_dir生成data_dir:指定数据目录,若不指定,或指定为相对目录,则按照global中配置的data_dir生成log_dir:指定日志目录,若不指定,或指定为相对目录,则按照global中配置的log_dir生成commit_ts:[已废弃]Drainer 启动的时候会去读取 checkpoint,如果读取不到,就会使用该字段做为初次启动开始的同步时间点,该字段默认为 -1(从 PD 总获取最新时间戳作为 commit_ts)numa_node:为该实例分配 NUMA 策略,如果指定了该参数,需要确保目标机装了 numactl,在指定该参数的情况下会通过 numactl 分配 cpubind 和 membind 策略。该字段参数为 string 类型,字段值填 NUMA 节点的 ID,例如 "0,1"config:该字段配置规则和server_configs里的drainer配置规则相同,若配置了该字段,会将该字段内容和server_configs里的drainer内容合并(若字段重叠,以本字段内容为准),然后生成配置文件并下发到host指定的机器os:host字段所指定的机器的操作系统,若不指定该字段,则默认为global中的osarch:host字段所指定的机器的架构,若不指定该字段,则默认为global中的archresource_control:针对该服务的资源控制,如果配置了该字段,会将该字段和global中的resource_control内容合并(若字段重叠,以本字段内容为准),然后生成 systemd 配置文件并下发到host指定机器。resource_control的配置规则同global中的resource_control
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
hostportdeploy_dirdata_dirlog_dirarchos
其中 commit_ts 字段自 tiup cluster v1.9.2 开始已经废弃,不再被记录到 drainer 的启动脚本中。如果你仍需要配置该参数,请参照下面的示例在 config 中配置 initial-commit-ts 字段。
drainer_servers 配置示例:
cdc_servers
cdc_servers 约定了将 TiCDC 服务部署到哪些机器上,同时可以指定每台机器上的服务配置,cdc_servers 是一个数组,每个数组元素包含以下字段:
host:指定部署到哪台机器,字段值填 IP 地址,不可省略ssh_port:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用global区块中的ssh_portport:TiCDC 服务的监听端口,默认 8300deploy_dir:指定部署目录,若不指定,或指定为相对目录,则按照global中配置的deploy_dir生成data_dir:指定数据目录。若不指定该字段或指定为相对目录,数据目录则按照global中配置的data_dir生成。log_dir:指定日志目录,若不指定,或指定为相对目录,则按照global中配置的log_dir生成gc-ttl:TiCDC 在 PD 设置的服务级别 GC safepoint 的 TTL (Time To Live) 时长,单位为秒,默认值为 86400,即 24 小时tz:TiCDC 服务使用的时区。TiCDC 在内部转换 timestamp 等时间数据类型和向下游同步数据时使用该时区,默认为进程运行本地时区。numa_node:为该实例分配 NUMA 策略,如果指定了该参数,需要确保目标机装了 numactl,在指定该参数的情况下会通过 numactl 分配 cpubind 和 membind 策略。该字段参数为 string 类型,字段值填 NUMA 节点的 ID,例如 "0,1"config:该字段配置规则和server_configs里的cdc内容合并(若字段重叠,以本字段内容为准),然后生成配置文件并下发到host指定的机器os:host字段所指定的机器的操作系统,若不指定该字段,则默认为global中的osarch:host字段所指定的机器的架构,若不指定该字段,则默认为global中的archresource_control:针对该服务的资源控制,如果配置了该字段,会将该字段和global中的resource_control内容合并(若字段重叠,以本字段内容为准),然后生成 systemd 配置文件并下发到host指定机器。resource_control的配置规则同global中的resource_controlticdc_cluster_id:指定该服务器对应的 TiCDC 集群 ID。若不指定该字段,则自动加入默认 TiCDC 集群。该配置只在 v6.3.0 及以上 TiDB 版本中才生效。
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
hostportdeploy_dirdata_dirlog_dirarchosticdc_cluster_id
cdc_servers 配置示例:
tispark_masters
tispark_masters 约定了将 TiSpark 的 master 节点部署到哪些机器上,同时可以指定每台机器上的服务配置,tispark_masters 是一个数组,每个数组元素包含以下字段:
host:指定部署到哪台机器,字段值填 IP 地址,不可省略listen_host:当机器上有多个 IP 时,可以指定服务的监听 IP,默认为0.0.0.0ssh_port:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用 global 区块中的ssh_portport:Spark 的监听端口,节点之前通讯用,默认 7077web_port:Spark 的网页端口,提供网页服务,可查看任务情况,默认 8080deploy_dir:指定部署目录,若不指定,或指定为相对目录,则按照global中配置的deploy_dir生成java_home:指定要使用的 JRE 环境所在的路径。该参数对应系统环境变量JAVA_HOMEspark_config:用于配置 TiSpark 服务,生成配置文件并下发到host指定的机器spark_env:配置 Spark 启动时的环境变量os:host字段所指定的机器的操作系统,若不指定该字段,则默认为global中的osarch:host字段所指定的机器的架构,若不指定该字段,则默认为global中的arch
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
hostlisten_hostportweb_portdeploy_dirarchos
tispark_masters 配置示例:
tispark_workers
tispark_workers 约定了将 TiSpark 的 worker 节点部署到哪些机器上,同时可以指定每台机器上的服务配置,tispark_workers 是一个数组,每个数组元素包含以下字段:
host:指定部署到哪台机器,字段值填 IP 地址,不可省略listen_host:当机器上有多个 IP 时,可以指定服务的监听 IP,默认为0.0.0.0ssh_port:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用global区块中的ssh_portport:Spark 的监听端口,节点之前通讯用,默认 7077web_port:Spark 的网页端口,提供网页服务,可查看任务情况,默认 8080deploy_dir:指定部署目录,若不指定,或指定为相对目录,则按照global中配置的deploy_dir生成java_home:指定要使用的 JRE 环境所在的路径。该参数对应系统环境变量JAVA_HOMEos:host字段所指定的机器的操作系统,若不指定该字段,则默认为global中的osarch:host字段所指定的机器的架构,若不指定该字段,则默认为global中的arch
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
hostlisten_hostportweb_portdeploy_dirarchos
tispark_workers 配置示例:
monitoring_servers
monitoring_servers 约定了将 Prometheus 服务部署到哪台机器上,同时可以指定这台机器上的服务配置,monitoring_servers 是一个数组,每个数组元素包含以下字段:
host:指定部署到哪台机器,字段值填 IP 地址,必填项ng_port:指定 NgMonitoring 组件监听的端口,在 TiUP v1.7.0 引入,用于支持 TiDB Dashboard 中持续性能分析和 Top SQL 功能。默认值:12020ssh_port:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用 global 区块中的ssh_portport:指定 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 监控数据保留时间,默认 "30d"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中的osarch:host字段所指定的机器的架构,若不指定该字段,则默认为global中的archresource_control:针对该服务的资源控制,如果配置了该字段,会将该字段和global中的resource_control内容合并(若字段重叠,以本字段内容为准),然后生成 systemd 配置文件并下发到host指定机器。resource_control的配置规则同global中的resource_control
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
hostportdeploy_dirdata_dirlog_dirarchos
monitoring_servers 配置示例:
grafana_servers
grafana_servers 约定了将 Grafana 服务部署到哪台机器上,同时可以指定这台机器上的服务配置,grafana_servers 是一个数组,每个数组元素包含以下字段:
host:指定部署到哪台机器,字段值填 IP 地址,不可省略ssh_port:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用global区块中的ssh_portport:指定 Grafana 提供服务的端口,默认值:3000deploy_dir:指定部署目录,若不指定,或指定为相对目录,则按照global中配置的deploy_dir生成os:host字段所指定的机器的操作系统,若不指定该字段,则默认为global中的osarch:host字段所指定的机器的架构,若不指定该字段,则默认为global中的archusername: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 目录中的
*.json文件,将datasource字段的值更新为新的集群名(这是因为datasource是以集群名命名的) - 执行
tiup cluster reload -R grafana命令
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
hostportdeploy_dirarchos
grafana_servers 配置示例:
alertmanager_servers
alertmanager_servers 约定了将 Alertmanager 服务部署到哪些机器上,同时可以指定这台机器上的服务配置,alertmanager_servers 是一个数组,每个数组元素包含以下字段:
host:指定部署到哪台机器,字段值填 IP 地址,不可省略ssh_port:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用global区块中的ssh_portweb_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中的osarch:host字段所指定的机器的架构,若不指定该字段,则默认为global中的archresource_control:针对该服务的资源控制,如果配置了该字段,会将该字段和global中的resource_control内容合并(若字段重叠,以本字段内容为准),然后生成 systemd 配置文件并下发到host指定机器。resource_control的配置规则同global中的resource_control
以上所有字段中,部分字段部署完成之后不能再修改。如下所示:
hostweb_portcluster_portdeploy_dirdata_dirlog_dirarchos
alertmanager_servers 配置示例:
[转帖]通过 TiUP 部署 TiDB 集群的拓扑文件配置的更多相关文章
- 部署TiDB集群
架构图 节点规划 120.52.146.213 Control Machine 120.52.146.214 PD1_TiDB1 120.52.146.215 PD2_TiDB2 120.52.146 ...
- Tiup离线安装TIDB集群4.0.16版本
环境:centos7.6 中控机:8.213.8.25(内网) 可用服务器8.213.8.25-8.213.8.29 一.准备 TiUP 离线组件包 方法1:外网下载离线安装包拷贝进内网服务器 在Ti ...
- Centos7配置TiDB集群
一:各模块属性 模块名称 状态 建议实例数 功能 负载均衡组件 TiDB 无状态 2 接收SQL请求,处理SQL相关逻辑,并通过PB找到存储数据的TiKV地址 LVS.HAProxy.F5 PB 集群 ...
- 使用 Docker Compose 快速构建 TiDB 集群
本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群.Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止. ...
- 在线安装TIDB集群
在线安装TiDB集群 服务器准备 说明:TiDB8需要能够连接外网,以便下载各类安装包 TiDB4非必须,但最好是有一台,因为后续测试Mysql数据同步或者进行性能比较时,都要用到 TiKV最好是采 ...
- TiDB集群安装主要操作
TiDB集群安装主要操作 参考资料:https://www.cnblogs.com/plyx/archive/2018/12/21/10158615.html 一.TiDB数据简介 TiDB 是 Pi ...
- tidb集群
tidb ansible部署 https://zhuanlan.zhihu.com/p/27308307?refer=newsql 网址:http://www.cnblogs.com/mowei/p/ ...
- window下使用Redis Cluster部署Redis集群
日常的项目很多时候都需要用到缓存.redis算是一个比较好的选择.一般情况下做一个主从就可以满足一些比较小的项目需要.在一些并发量比较大的项目可能就需要用到集群了,redis在Windows下做集群可 ...
- Docker部署Hadoop集群
Docker部署Hadoop集群 2016-09-27 杜亦舒 前几天写了文章"Hadoop 集群搭建"之后,一个朋友留言说希望介绍下如何使用Docker部署,这个建议很好,Doc ...
- Docker 容器部署 Consul 集群
Docker 容器部署 Consul 集群 一.docker安装与启动1.1安装docker[root@localhost /]# yum -y install docker-io 1.2更改配置文件 ...
随机推荐
- 通用 Mapper 的批量插入实现
具体的 SQL 模板实现如下所示: import org.apache.ibatis.mapping.MappedStatement; import tk.mybatis.mapper.MapperE ...
- 开源云原生网关Linux Traefik本地部署结合内网穿透远程访问
开源云原生网关Linux Traefik本地部署结合内网穿透远程访问 前言 Træfɪk 是一个云原生的新型的 HTTP 反向代理.负载均衡软件,能轻易的部署微服务.它支持多种后端 (Docker ...
- dart的语法
dart的语法 main方法 main(){ print("有返回值"); } void main() { print("没有返回值"); } 字符串的定义的方 ...
- Python实用技巧:将 Excel转为PDF
将Excel文件转换为PDF可以方便储存表格数据,此外在打印或共享文档时也能确保表格样式布局等在不同设备和操作系统上保持一致.今天给大家分享一个使用第三方Python库Spire.XLS for Py ...
- 用AI技术推动西安民俗文化,斗鱼超管团队有一套
摘要:AI成为传统文化发展的助推器,助力传统文化朝着大众化.数字化.个性化.精准化方向发展,赋予传统文化新的生机,延续传统文化新的生命."斗鱼团队"从五个方面进行阐述"纵 ...
- 全量通过,华为云GaussDB首批完成信通院全密态数据库评测
摘要:100%全量通过!基于全栈创新计算架构的全密态数据库华为云GaussDB,完成了中国信通院组织的首批"全密态数据库"产品能力评测. 本文分享自华为云社区<全量通过!华为 ...
- 超详细教程:SpringBoot整合MybatisPlus
摘要:本文为大家带来SpringBoot整合MybatisPlus的教程,实现SpringBoot项目中依赖数据模块进行数据操作,并进行简单测试. 本文分享自华为云社区<SpringBoot整合 ...
- webpack原理(3):Tapable源码分析及钩子函数作用分析
webpack本质上是一种事件流的机制,它的工作流程就是将各个插件串联起来,而实现这一切的核心就是Tapable,webpack中最核心的负责编译的Compiler和负责创建bundles的Compi ...
- 拒绝了对对象 ‘GetTips‘ (数据库 ‘vipsoft‘,架构 ‘dbo‘)的 EXECUTE 权限
SQL Server 2016 安装 数据库-属性-权限-选择用户或角色-勾选执行权限即可.
- C# 完美实现物联网 MQTT 数据通信
前言 MQTT 协议由于其用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务,具有开销低.占用带宽低.即时通讯等优点,使其在物联网.小型设备.移动应用等方面有较广泛的应用,在工业物联网中, ...