• 【Consul】Consul实践指导-配置文件


    Agent有各种各样的配置选项,这些配置选项可以通过命令行参数的方式设定,也可用通过配置文件的方式设定——所有的配置选项都是可选的,当然也是有默认值的。

    当加载配置选项时,consul是按照词典顺序从所有配置文件或目录中加载。比如,basic_config.json会先于extra_config.json处理。后面设定的配置选项会合并到前面的配置集合中,如果存在重复的配置选项则会覆盖。当然,在某些情况下,比如事件处理程序,后面处理程序会追加到现有的配置选项中,形成事件处理程序列表。

    Consul支持重新加载配置(在收到SIGHUP信号时),但也不是所有的改变都可以重新加载,只有某些ReLoadable Configuration可以重新加载。也可用通过命令重新加载,后面会介绍。

    1.1.1 命令行参数

    如下都是可以在命令行指定的参数:

    Ø  -config-file

    需要加载的配置文件,在文件中都是json格式的信息,该参数可以多次配置,后面文件中加载的参数会覆盖前面加载文件中的参数。

    Ø  -config-dir

    需要加载的配置文件目录,consul将加载目录下所有后缀为“.json”的文件,加载顺序为字母顺序,文件中配置选项合并方式如config-file。该参数可以多次配置。目录中的子目录是不会加载的。

    Ø  -data-dir

    此目录是为Agent存放state数据的。是所有Agent需要的,该目录应该存放在持久存储中(reboot不会丢失),对于server角色的Agent是很关键的——需要记录集群状态。并且该目录是支持文件锁。

    Ø  -log-level

    日志级别。默认为info。有如下级别:"trace","debug", "info", "warn", and "err"。可以使用consul monitor来连接agent查看日志。日志级别可以在reload时进行改变。

    Ø  -syslog

    将日志记录进syslog(仅支持Linux和OSX平台)

    Ø  -pid-file

    记录pid的文件

    Ø  -server

    设置Agent是server模式还是client模式。Consul agent有两种运行模式:Server和Client。这里的Server和Client只是Consul集群层面的区分,与搭建在Cluster之上 的应用服务无关。Consule Server模式agent节点用于采用raft算法维护Consul集群的状态,官方建议每个Consul Cluster至少有3个或以上的运行在Server mode的Agent,Client节点不限。

    Ø  -client

    将绑定到client接口的地址,可以是HTTP、DNS、RPC服务器。默认为“127.0.0.1”——只允许回路连接。RPC地址会被其他的consul命令使用,比如consul members——查询agent列表

    Ø  -node

    节点在集群的名字,在集群中必须是唯一的。默认为节点的Hostname

    Ø  -bootstrap

    设置服务是否为“bootstrap”模式。如果数据中心只有1个server agent,那么需要设置该参数。从技术上来讲,处于bootstrap模式的服务器是可以选择自己作为Raft Leader的。在consul集群中,只有一个节点可以配置该参数,如果有多个参数配置该参数,那么难以保证一致性。

    Ø  -bootstrap-expect

    数据中心期望的server agent数目,不能与bootstrap一起使用。此参数要么不配置,要么consul集群中所有的server均配置相同的值。如果配置了该参数,只想当consul集群中有效server agent的数目达到此数量时才会引导集群启动。

    Ø  -dc

    数据中心的名字

    Ø  -bind

    用于集群内部通信的IP地址,与集群中其他节点互连可通。默认为“0.0.0.0”——consul将使用第一个有效的私有IPv4地址。如果指定“[::]”,consul将使用第一个有效的公共IPv6地址。使用TCP和UDP通信。注意防火墙,避免无法通信。

    ……

    1.1.2 配置文件

    除了命令行配置外,配置选项也可以存放在文件中。这种方式在某种情况下是非常方便的,比如,配置选项是由配置管理系统来管理。

    配置文件都是json格式的,是易读和易编辑的——在文件中,每一个json对象都是格式化的。

    配置文件不仅仅可以设置Agent,而且还能够提供Check和service定义。参见check配置和service配置。Check配置与service配置均是可通过reload更新的。

    1.1.2.1    示例

    配置文件示例

    1. {
    2. "datacenter": "east-aws",
    3. "data_dir": "/opt/consul",
    4. "log_level": "INFO",
    5. "node_name": "foobar",
    6. "server": true,
    7. "watches": [
    8. {
    9. "type": "checks",
    10. "handler": "/usr/bin/health-check-handler.sh"
    11. }
    12. ],
    13. "telemetry": {
    14. "statsite_address": "127.0.0.1:2180"
    15. }
    16. }

    配置文件示例(TLS)

    1. {
    2. "datacenter": "east-aws",
    3. "data_dir": "/opt/consul",
    4. "log_level": "INFO",
    5. "node_name": "foobar",
    6. "server": true,
    7. "addresses": {
    8. "https": "0.0.0.0"
    9. },
    10. "ports": {
    11. "https": 8080
    12. },
    13. "key_file": "/etc/pki/tls/private/my.key",
    14. "cert_file": "/etc/pki/tls/certs/my.crt",
    15. "ca_file": "/etc/pki/tls/certs/ca-bundle.crt"
    16. }

    1.1.2.2    参数说明

    Ø  datacenter

    同命令行参数-datacenter

    Ø  data_dir

    同命令行参数-data_dir

    Ø  bootstrap

    同命令行参数-bootstrap

    Ø  bootstrap_expect

    同命令行参数-bootstrap_expect

    Ø  bind_addr

    同命令行参数-bind

    Ø  enable_syslog

    同命令行参数-syslog

    Ø  log_level

    同命令行参数-log_level

    Ø  node_name

    同命令行参数node

    ……

    1.1.3 可重载配置

    Reload配置 并不能reload所有配置选项,下面的选项可以重载:

    Ø  Log level

    Ø  Checks

    Ø  Services

    Ø  Watches

    Ø  HTTP Client Address

    Ø  Atlas Token

    Ø  Atlas Infrastructure

    Ø  Atlas Endpoint

    原文地址:https://www.consul.io/docs/agent/options.html#configuration_files

  • 相关阅读:
    回流与重绘
    事件循环的一些小啰嗦
    async与await的那些事儿
    数组去重的方法们
    Object的一些常用方法
    JS事件流的一些理解
    关于Ajax的那些记录
    call、bind与apply函数的区别
    继承的一些细碎记载
    计算机基础的小贴士(1)
  • 原文地址:https://www.cnblogs.com/xiang--liu/p/9710261.html
Copyright © 2020-2023  润新知