Consul very simple to use, the article continues by way of example describes how to use the Consul Agent.
a
liumiaocn:~ liumiao$ consul --version
Consul v1.7.1
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)
liumiaocn:~ liumiao$
Start Consul Agent
To be able to use the Consul, Consul Agent needs to be started after installation. Run follows:
Execute the command: consul agent -dev
liumiaocn:~ liumiao$ consul agent -dev
==> Starting Consul agent...
Version: 'v1.7.1'
Node ID: 'e95df364-000e-e590-6bd4-ceb947b8c90b'
Node name: 'liumiaocn'
Datacenter: 'dc1' (Segment: '<all>')
Server: true (Bootstrap: false)
Client Addr: [127.0.0.1] (HTTP: 8500, HTTPS: -1, gRPC: 8502, DNS: 8600)
Cluster Addr: 127.0.0.1 (LAN: 8301, WAN: 8302)
Encrypt: Gossip: false, TLS-Outgoing: false, TLS-Incoming: false, Auto-Encrypt-TLS: false
Detailed log information is as follows
==> Log data will now stream in as it occurs:
2020-02-29T06:58:17.094+0800 [DEBUG] agent: Using random ID as node ID: id=e95df364-000e-e590-6bd4-ceb947b8c90b
2020-02-29T06:58:17.094+0800 [DEBUG] agent.tlsutil: Update: version=1
2020-02-29T06:58:17.095+0800 [DEBUG] agent.tlsutil: OutgoingRPCWrapper: version=1
2020-02-29T06:58:17.096+0800 [INFO] agent.server.raft: initial configuration: index=1 servers="[{Suffrage:Voter ID:e95df364-000e-e590-6bd4-ceb947b8c90b Address:127.0.0.1:8300}]"
2020-02-29T06:58:17.096+0800 [INFO] agent.server.raft: entering follower state: follower="Node at 127.0.0.1:8300 [Follower]" leader=
2020-02-29T06:58:17.096+0800 [INFO] agent.server.serf.wan: serf: EventMemberJoin: liumiaocn.dc1 127.0.0.1
2020-02-29T06:58:17.096+0800 [INFO] agent.server.serf.lan: serf: EventMemberJoin: liumiaocn 127.0.0.1
2020-02-29T06:58:17.096+0800 [INFO] agent.server: Adding LAN server: server="liumiaocn (Addr: tcp/127.0.0.1:8300) (DC: dc1)"
2020-02-29T06:58:17.096+0800 [INFO] agent.server: Handled event for server in area: event=member-join server=liumiaocn.dc1 area=wan
2020-02-29T06:58:17.097+0800 [INFO] agent: Started DNS server: address=127.0.0.1:8600 network=tcp
2020-02-29T06:58:17.097+0800 [INFO] agent: Started DNS server: address=127.0.0.1:8600 network=udp
2020-02-29T06:58:17.097+0800 [INFO] agent: Started HTTP server: address=127.0.0.1:8500 network=tcp
2020-02-29T06:58:17.097+0800 [INFO] agent: Started gRPC server: address=127.0.0.1:8502 network=tcp
2020-02-29T06:58:17.097+0800 [INFO] agent: started state syncer
==> Consul agent running!
2020-02-29T06:58:17.161+0800 [WARN] agent.server.raft: heartbeat timeout reached, starting election: last-leader=
2020-02-29T06:58:17.161+0800 [INFO] agent.server.raft: entering candidate state: node="Node at 127.0.0.1:8300 [Candidate]" term=2
2020-02-29T06:58:17.161+0800 [DEBUG] agent.server.raft: votes: needed=1
2020-02-29T06:58:17.161+0800 [DEBUG] agent.server.raft: vote granted: from=e95df364-000e-e590-6bd4-ceb947b8c90b term=2 tally=1
2020-02-29T06:58:17.161+0800 [INFO] agent.server.raft: election won: tally=1
2020-02-29T06:58:17.161+0800 [INFO] agent.server.raft: entering leader state: leader="Node at 127.0.0.1:8300 [Leader]"
2020-02-29T06:58:17.161+0800 [INFO] agent.server: cluster leadership acquired
2020-02-29T06:58:17.162+0800 [INFO] agent.server: New leader elected: payload=liumiaocn
2020-02-29T06:58:17.162+0800 [DEBUG] connect.ca.consul: consul CA provider configured: id=07:80:c8:de:f6:41:86:29:8f:9c:b8:17:d6:48:c2:d5:c5:5c:7f:0c:03:f7:cf:97:5a:a7:c1:68:aa:23:ae:81 is_primary=true
2020-02-29T06:58:17.173+0800 [INFO] agent.server.connect: initialized primary datacenter CA with provider: provider=consul
2020-02-29T06:58:17.173+0800 [INFO] agent.leader: started routine: routine="CA root pruning"
2020-02-29T06:58:17.173+0800 [DEBUG] agent.server: Skipping self join check for node since the cluster is too small: node=liumiaocn
2020-02-29T06:58:17.173+0800 [INFO] agent.server: member joined, marking health alive: member=liumiaocn
2020-02-29T06:58:17.499+0800 [DEBUG] agent: Skipping remote check since it is managed automatically: check=serfHealth
2020-02-29T06:58:17.499+0800 [INFO] agent: Synced node info
2020-02-29T06:58:17.499+0800 [DEBUG] agent: Node info in sync
2020-02-29T06:58:19.165+0800 [DEBUG] agent.tlsutil: OutgoingRPCWrapper: version=1
2020-02-29T06:58:20.295+0800 [DEBUG] agent: Skipping remote check since it is managed automatically: check=serfHealth
2020-02-29T06:58:20.295+0800 [DEBUG] agent: Node info in sync
Note: Consul hostname will be used as the default node name, such as the examples in this article liumiaocn, but in the case if you include the hostname, DNS queries Consul will not come into effect at this time need to use -node option set. given node name.
Query node information
The other from a terminal, run the following command to confirm the node information Consul
Execute the command: consul members
liumiaocn:~ liumiao$ consul members
Node Address Status Type Build Protocol DC Segment
liumiaocn 127.0.0.1:8301 alive server 1.7.1 2 dc1 <all>
liumiaocn:~ liumiao$
When executed, it was confirmed the following information:
2020-02-29T07:10:25.609+0800 [DEBUG] agent.http: Request finished: method=GET url=/v1/agent/members?segment=_all from=127.0.0.1:53489 latency=113.689µs
Use detailed options to confirm more details
liumiaocn:~ liumiao$ consul members -detailed
Node Address Status Tags
liumiaocn 127.0.0.1:8301 alive acls=0,build=1.7.1:2cf0a3c8,dc=dc1,id=e95df364-000e-e590-6bd4-ceb947b8c90b,port=8300,raft_vsn=3,role=consul,segment=<all>,vsn=2,vsn_max=3,vsn_min=2,wan_join_port=8302
liumiaocn:~ liumiao$
Stop Agent
The other from a terminal, - Agent Run the following commands to stop, to be precise, this node leaves the cluster from the Consul and stops - Agent Consul
Execute the command: consul leave
Stop command shown in the following example:
liumiaocn:~ liumiao$ consul leave
Graceful leave complete
liumiaocn:~ liumiao$
Log messages are as follows:
2020-02-29T07:12:20.113+0800 [INFO] agent.server: server starting leave
2020-02-29T07:12:20.113+0800 [INFO] agent.server.serf.wan: serf: EventMemberLeave: liumiaocn.dc1 127.0.0.1
2020-02-29T07:12:20.113+0800 [INFO] agent.server: Handled event for server in area: event=member-leave server=liumiaocn.dc1 area=wan
2020-02-29T07:12:20.113+0800 [INFO] agent.server.router.manager: shutting down
2020-02-29T07:12:23.113+0800 [INFO] agent.server.serf.lan: serf: EventMemberLeave: liumiaocn 127.0.0.1
2020-02-29T07:12:23.113+0800 [INFO] agent.server: Removing LAN server: server="liumiaocn (Addr: tcp/127.0.0.1:8300) (DC: dc1)"
2020-02-29T07:12:23.113+0800 [WARN] agent.server: deregistering self should be done by follower: name=liumiaocn
2020-02-29T07:12:23.138+0800 [ERROR] agent.server.autopilot: Error updating cluster health: error="error getting server raft protocol versions: No servers found"
2020-02-29T07:12:25.138+0800 [ERROR] agent.server.autopilot: Error updating cluster health: error="error getting server raft protocol versions: No servers found"
2020-02-29T07:12:26.113+0800 [INFO] agent.server: Waiting to drain RPC traffic: drain_time=5s
2020-02-29T07:12:27.137+0800 [ERROR] agent.server.autopilot: Error updating cluster health: error="error getting server raft protocol versions: No servers found"
2020-02-29T07:12:27.137+0800 [ERROR] agent.server.autopilot: Error promoting servers: error="error getting server raft protocol versions: No servers found"
2020-02-29T07:12:29.137+0800 [ERROR] agent.server.autopilot: Error updating cluster health: error="error getting server raft protocol versions: No servers found"
2020-02-29T07:12:31.116+0800 [INFO] agent: Requesting shutdown
2020-02-29T07:12:31.116+0800 [INFO] agent.server: shutting down server
2020-02-29T07:12:31.116+0800 [DEBUG] agent.leader: stopping routine: routine="CA root pruning"
2020-02-29T07:12:31.116+0800 [DEBUG] agent.leader: stopped routine: routine="CA root pruning"
2020-02-29T07:12:31.116+0800 [INFO] agent: consul server down
2020-02-29T07:12:31.116+0800 [INFO] agent: shutdown complete
2020-02-29T07:12:31.117+0800 [DEBUG] agent.http: Request finished: method=PUT url=/v1/agent/leave from=127.0.0.1:53565 latency=11.004059585s
2020-02-29T07:12:31.117+0800 [INFO] agent: Stopping server: protocol=DNS address=127.0.0.1:8600 network=tcp
2020-02-29T07:12:31.117+0800 [INFO] agent: Stopping server: protocol=DNS address=127.0.0.1:8600 network=udp
2020-02-29T07:12:31.117+0800 [INFO] agent: Stopping server: protocol=HTTP address=127.0.0.1:8500 network=tcp
2020-02-29T07:12:31.117+0800 [INFO] agent: Waiting for endpoints to shut down
2020-02-29T07:12:31.117+0800 [INFO] agent: Endpoints down
2020-02-29T07:12:31.117+0800 [INFO] agent: Exit code: code=0
liumiaocn:~ liumiao$