服务发现系统consul-CLI

本文详细介绍了Consul命令行接口(CLI)的功能和用法,包括agent、event、exec、force-leave、info、join、keygen、leave、members、monitor、reload、version和watch等核心命令的详细说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       上一篇见识了consul的强大,consul可以通过一个简单的CLI来控制,consul只有一个命令行应用,就是consul命令,consul命令可以包含agent、members等参数进行使用,这一篇来具体看看consul CLI的具体用法,consul -h即可看到consul cli所支持的参数,而每个参数里面又支持其他参数,下面我们就来具体看看。

usage: consul [--version] [--help] <command> [<args>] 

consul -h

Available commands are: 
    agent          Runs a Consul agent 运行一个consul agent 
    event          Fire a new event 
    exec           Executes a command on Consul nodes 在consul节点上执行一个命令 
    force-leave    Forces a member of the cluster to enter the "left" state 强制节点成员在集群中的状态转换到left状态 
    info           Provides debugging information for operators 提供操作的debug级别的信息 
    join           Tell Consul agent to join cluster 加入consul节点到集群中 
    keygen         Generates a new encryption key 生成一个新的加密key 
    leave          Gracefully leaves the Consul cluster and shuts down 
    members        Lists the members of a Consul cluster 列出集群中成员 
    monitor        Stream logs from a Consul agent 打印consul节点的日志信息 
    reload         Triggers the agent to reload configuration files 触发节点重新加载配置文件 
    version        Prints the Consul version 打印consul的版本信息 
    watch          Watch for changes in Consul 监控consul的改变

        可以看到consul有很多参数可用,使用consul <command> -h查看单个命令的使用方法,下面我们就具体看看每个参数的用法:

agent:agent指令是consul的核心,它运行agent来维护成员的重要信息、运行检查、服务宣布、查询处理等等。 

-advertise=addr          Sets the advertise address to use
  -bootstrap               Sets server to bootstrap mode
  -bind=0.0.0.0            Sets the bind address for cluster communication
  -bootstrap-expect=0      Sets server to expect bootstrap mode.
  -client=127.0.0.1        Sets the address to bind for client access.
                           This includes RPC, DNS and HTTP
  -config-file=foo         Path to a JSON file to read configuration from.
                           This can be specified multiple times.
  -config-dir=foo          Path to a directory to read configuration files
                           from. This will read every file ending in ".json"
                           as configuration in this directory in alphabetical
                           order.
  -data-dir=path           Path to a data directory to store agent state
  -dc=east-aws             Datacenter of the agent
  -encrypt=key             Provides the gossip encryption key
  -join=1.2.3.4            Address of an agent to join at start time.
                           Can be specified multiple times.
  -retry-join=1.2.3.4      Address of an agent to join at start time with
                           retries enabled. Can be specified multiple times.
  -retry-interval=30s      Time to wait between join attempts.
  -retry-max=0             Maximum number of join attempts. Defaults to 0, which
                           will retry indefinitely.
  -log-level=info          Log level of the agent.
  -node=hostname           Name of this node. Must be unique in the cluster
  -protocol=N              Sets the protocol version. Defaults to latest.
  -rejoin                  Ignores a previous leave and attempts to rejoin the cluster.
  -server                  Switches agent to server mode.
  -syslog                  Enables logging to syslog
  -ui-dir=path             Path to directory containing the Web UI resources
  -pid-file=path           Path to file to store agent PID

event:event命令提供了一种机制,用来fire自定义的用户事件,这些事件对consul来说是不透明的,但它们可以用来构建自动部署、重启服务或者其他行动的脚本。

-http-addr:http服务的地址,agent可以链接上来发送命令,如果没有设置,则默认是127.0.0.1:8500。 
-datacenter:数据中心。 
-name:事件的名称
-node:一个正则表达式,用来过滤节点 
-service:一个正则表达式,用来过滤节点上匹配的服务 
-tag:一个正则表达式,用来过滤节点上符合tag的服务,必须和-service一起使用。

exec:exec指令提供了一种远程执行机制,比如你要在所有的机器上执行uptime命令,远程执行的工作通过job来指定,存储在KV中,agent使用event系统可以快速的知道有新的job产生,消息是通过gossip协议来传递的,因此消息传递是最佳的,但是并不保证命令的执行。事件通过gossip来驱动,远程执行依赖KV存储系统(就像消息代理一样)。

-http-addr:http服务的地址,agent可以链接上来发送命令,如果没有设置,则默认是127.0.0.1:8500。
-datacenter:数据中心。
-prefix:key在KV系统中的前缀,用来存储请求数据,默认是_rexec
-node:一个正则表达式,用来过滤节点,评估事件
-service:一个正则表达式,用来过滤节点上匹配的服务
-tag:一个正则表达式,用来过滤节点上符合tag的服务,必须和-service一起使用。
-wait:在节点多长时间没有响应后,认为job已经完成。
-wait-repl:
-verbose:输出更多信息

force-leave:force-leave治疗可以强制consul集群中的成员进入left状态(空闲状态),记住,即使一个成员处于活跃状态,它仍旧可以再次加入集群中,这个方法的真实目的是强制移除failed的节点。如果failed的节点还是网络的一部分,则consul会周期性的重新链接failed的节点,如果经过一段时间后(默认是72小时),consul则会宣布停止尝试链接failed的节点。force-leave指令可以快速的把failed节点转换到left状态。

-rpc-addr:一个rpc地址,agent可以链接上来发送命令,如果没有指定,默认是127.0.0.1:8400。

info:info指令提供了各种操作时可以用到的debug信息,对于client和server,info有返回不同的子系统信息,目前有以下几个KV信息:agent(提供agent信息),consul(提供consul库的信息),raft(提供raft库的信息),serf_lan(提供LAN gossip pool),serf_wan(提供WAN gossip pool) 

-rpc-addr:一个rpc地址,agent可以链接上来发送命令,如果没有指定,默认是127.0.0.1:8400

join:join指令告诉consul agent加入一个已经存在的集群中,一个新的consul agent必须加入一个已经有至少一个成员的集群中,这样它才能加入已经存在的集群中,如果你不加入一个已经存在的集群,则agent是它自身集群的一部分,其他agent则可以加入进来。agents可以加入其他agent多次。consul join [options] address。如果你想加入多个集群,则可以写多个地址,consul会加入所有的地址。 

-wan:agent运行在server模式,xxxxxxx 
-rpc-addr:一个rpc地址,agent可以链接上来发送命令,如果没有指定,默认是127.0.0.1:8400。

keygen:keygen指令生成加密的密钥,可以用在consul agent通讯加密 

生成一个key

leave:leave指令触发一个优雅的离开动作并关闭agent,节点离开后不会尝试重新加入集群中。运行在server状态的节点,节点会被优雅的删除,这是很严重的,在某些情况下一个不优雅的离开会影响到集群的可用性。

-rpc-addr:一个rpc地址,agent可以链接上来发送命令,如果没有指定,默认是127.0.0.1:8400。

members:members指令输出consul agent目前所知道的所有的成员以及它们的状态,节点的状态只有alive、left、failed三种状态。

-detailed:输出每个节点更详细的信息。 
-rpc-addr:一个rpc地址,agent可以链接上来发送命令,如果没有指定,默认是127.0.0.1:8400。 
-status:过滤出符合正则规则的节点 
-wan:xxxxxx

monitor:monitor指令用来链接运行的agent,并显示日志。monitor会显示最近的日志,并持续的显示日志流,不会自动退出,除非你手动或者远程agent自己退出。

-log-level:显示哪个级别的日志,默认是info 
-rpc-addr:一个rpc地址,agent可以链接上来发送命令,如果没有指定,默认是127.0.0.1:8400

reload:reload指令可以重新加载agent的配置文件。SIGHUP指令在重新加载配置文件时使用,任何重新加载的错误都会写在agent的log文件中,并不会打印到屏幕。 

-rpc-addr:一个rpc地址,agent可以链接上来发送命令,如果没有指定,默认是127.0.0.1:8400

version

打印consul的版本

watch:watch指令提供了一个机制,用来监视实际数据视图的改变(节点列表、成员服务、KV),如果没有指定进程,当前值会被dump出来

-http-addr:http服务的地址,agent可以链接上来发送命令,如果没有设置,则默认是127.0.0.1:8500。 
-datacenter:数据中心查询。 
-token:ACL token 
-key:监视key,只针对key类型 
-name:监视event,只针对event类型 
-prefix:监视key prefix,只针对keyprefix类型 
-service:监控service,只针对service类型 
-state:过略check state 
-tag:过滤service tag 
-type:监控类型,一般有key、keyprefix、service、nodes、checks、event








转载于:https://my.oschina.net/guol/blog/353392

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值