<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 基于Consul的服務發現 ## 一、Consul的安裝和配置 基于Consul實現的服務發現,一定程度上可以解決基于fie文件的服務發現的弊端。 ### 1.1 docker安裝 centos1上,此處使用docker方式安裝啟動Consu單節點服務,直接獲取官方鏡像consul:1.14.5 命令如下 孝拉取鏡像 docker pull consul:1.14.5 #運行consul容器,占據8500端口 docker run.name consul -d -p 8500:8500 consul:1.14.5 #查看正在運行的consu1容器 docker ps -a|grep 8500 ### 1.2 訪問Consul http://192.168.100.87:8500/ ### 1.3 api方式服務注冊 ![](https://img.kancloud.cn/d6/4c/d64c32d70951abfbb8b9cbc6e85eb2fe_595x274.png) * 命令行方式注冊node1 centos1上運行 curl -X PUT -d '{ "id":"node1","name":"node_exporter","address":"node_exporter","port":9100,"tags":["exporter"],"meta":{"job":"node_exporter","instance":"Prometheus服務器所在Linux監控"},"checks":[{"http":"http://192.168.100.87:9100/metrics","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register #id字段,不允許重復 #name字段 服務得名稱 #address 服務地址 #port 服務端口 #meta 元數據,可以理解是這個待監測服務的一些輔助參數 #checks 這個待監測服務的健康檢查的地址信息 * json方式注冊node2 centos1上創建json文件 mkdir /data/consul cd /data/consul #創建json文件 cat >node2_exporter.json<<"EOF" { "id": "node2", "name": "node_exporter", "tags":[ "exporter" ], "address":"192.168.100.141", "port": 9100, "meta":{ "job": "node_exporter", "instance":"centos2股務器Linux" }, "check":{ "http": "http://192.168.100.141:9100/metrics", "interval":"10s" } } EOF 執行json文件,注冊node2 curl --request PUT --data @node2_exporter.json http://localhost:8500/v1/agent/service/register 刷新8500的web界面,可看到注冊的兩個node1/node2成功 ![](https://img.kancloud.cn/cf/b6/cfb638e0327f1226b259ded173122356_1581x522.png) 備注:除了我們自己注冊的兩個Lnux操作系統服務node1/node2之外,Consul的agent還會將自己注冊為一個名為consul的服務。 ### 1.4 api方式注銷某個服務 如果要注銷掉某個服務,可以通過如下 API命令操作,例如注銷上邊添加的 node2服務 curl -X PUT http://localhost:8500/v1/agent/service/deregister/node2 #說明一下這里最后的node2是consul中exporter的id. ## 二、配置Prometheus實現自動服務發現 現在 ConsuI服務已經啟動完畢,并成功注冊了兩個服務,接下來,我們需要配置Prometheus 來使用 Consu自動服務發現,目的就是能夠將上邊添加的服務自動發現到Prometheus的Targets中,首先備份源配置文件 #將上一章節的基于文件的服務發現配置文件備份一下 cd /data/docker-prometheus/prometheus cp -a prometheus.yml prometheus.yml.filebak ll *.filebak ### 2.1增加consul_sd_configs的配置 增加 prometheus.yml配置如下 vi prometheus.yml - job_name: "consul_exporter" consul_sd_configs: - server: 192.168.100.87:8500 services: [] relabel_configs: - source_labels: [__meta_consul_tags] regex: .*exporter.* action: keep - regex: __meta_consul_service_metadata_(.+) action: labelmap &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;保存后輸入命令更新: curl -XPOST http://localhost:9090/-/reload &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;成功監聽 ![](https://img.kancloud.cn/23/81/2381ee9bfd56e8f28c547ec28a9cb8c5_1796x248.png) ### 2.2 驗證自動發現 * 增加node3 curl -X PUT -d '{ "id":"node3","name":"node_exporter","address":"node_exporter","port":9100,"tags":["exporter"],"meta":{"job":"node_exporter","instance":"Prometheus服務器所在Linux監控"},"checks":[{"http":"http://192.168.100.87:9100/metrics","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register * 制除node3 #注銷剽除node3的id curl -X PUT http://localhost:8500/v1/agent/service/deregister/node3 ## 三、將其他的服務加入Consul自動發現 ### 3.1 創建添加腳本 centos1上執行 cat>/data/consul/api.sh <<"EOF" #nginx curl -X PUT -d '{ "id":"nginx1","name":"nginx_exporter","address":"192.168.100.141","port":9113,"tags":["exporter"],"meta":{"job":"nginx_exporter","instance":"centos2服務器所在nginx監控"},"checks":[{"http":"http://192.168.100.141:9113/metrics","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register #rabbitmq curl -X PUT -d '{ "id":"rabbitmq1","name":"rabbitmq_exporter","address":"192.168.100.141","port":9419,"tags":["exporter"],"meta":{"job":"rabbitmq_exporter","instance":"centos2服務器所在rabbitmq監控"},"checks":[{"http":"http://192.168.100.141:9419/metrics","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register #redis curl -X PUT -d '{ "id":"redis1","name":"redis_exporter","address":"192.168.100.141","port":9121,"tags":["exporter"],"meta":{"job":"redis_exporter","instance":"centos2服務器所在redis監控"},"checks":[{"http":"http://192.168.100.141:9121/metrics","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register #mongo curl -X PUT -d '{ "id":"mongodb1","name":"mongodb_exporter","address":"192.168.100.141","port":9216,"tags":["exporter"],"meta":{"job":"mongodb_exporter","instance":"centos2服務器所在mongodb監控"},"checks":[{"http":"http://192.168.100.141:9216/metrics","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register #mysqld curl -X PUT -d '{"id":"mysqld1","name":"mysqld_exporter","address":"192.168.100.141","port":9104,"tags":["exporter"],"meta":{"job":"mysqld_exporter","instance":"centos2服務器所在mysql監控"},"checks":[{"http":"http://192.168.100.141:9104/metrics","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register #cadvisor curl -X PUT -d '{"id":"cadvisor2","name":"cadvisor","address":"192.168.100.141","port":8079,"tags":["exporter"],"meta":{"job":"cadvisor","instance":"centos2服務器所在docker監控"},"checks":[{"http":"http://192.168.100.141:8079/metrics","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register curl -X PUT -d '{"id":"cadvisor1","name":"cadvisor","address":"192.168.100.87","port":8079,"tags":["exporter"],"meta":{"job":"cadvisor","instance":"centos1服務器所在docker監控"},"checks":[{"http":"http://192.168.100.87:8079/metrics","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register #process curl -X PUT -d '{"id":"process1","name":"process_exporter","address":"192.168.100.141","port":9256,"tags":["exporter"],"meta":{"job":"process_exporter","instance":"centos2服務器所在進程監控"},"checks":[{"http":"http://192.168.100.141:9256/metrics","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register #golang自定義程序 curl -X PUT -d '{"id":"golang_exporter1","name":"golang_exporter","address":"192.168.100.58","port":8182,"tags":["exporter"],"meta":{"job":"golang_exporter","instance":"go自定義程序監控"},"checks":[{"http":"http://192.168.100.58:8182/metrics","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register #prometheus curl -X PUT -d '{"id":"prometheus1","name":"prometheus","address":"192.168.100.87","port":9090,"tags":["exporter"],"meta":{"job":"prometheus","instance":"Prometheus服務器 Prometheus Server"},"checks":[{"http":"http://192.168.100.87:9090/metrics","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register #domain curl -X PUT -d '{"id":"domain1","name":"domain_exporter","address":"baidu.com","port":9222,"tags":["domain"],"meta":{"job":"domain_exporter","instance":"百度域名監控"},"checks":[{"http":"http://192.168.100.141:9222/metrics","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register curl -X PUT -d '{"id":"domain2","name":"domain_exporter","address":"qq.com","port":9222,"tags":["domain"],"meta":{"job":"domain_exporter","instance":"qq域名監控"},"checks":[{"http":"http://192.168.100.141:9222/metrics","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register #snmp curl -X PUT -d '{"id":"snmp1","name":"snmp_exporter","address":"192.168.100.141","port":9116,"tags":["snmp"],"meta":{"job":"snmp_exporter","instance":"centos2服務器所在snmp監控"},"checks":[{"http":"http://192.168.100.141:9116","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register #blackbox_http curl -X PUT -d '{"id":"blackbox_http1","name":"blackbox_http_exporter","address":"https://www.baidu.com","port":9115,"tags":["blackbox_http"],"meta":{"job":"blackbox_http_exporter","instance":"centos1服務器所在黑盒http監控"},"checks":[{"http":"http://192.168.100.87:9115","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register curl -X PUT -d '{"id":"blackbox_http2","name":"blackbox_http_exporter","address":"https://wy.ldw520.top","port":9115,"tags":["blackbox_http"],"meta":{"job":"blackbox_http_exporter","instance":"centos1服務器所在黑盒http監控"},"checks":[{"http":"http://192.168.100.87:9115","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register #blackbox_tcp curl -X PUT -d '{"id":"blackbox_tcp1","name":"blackbox_http_exporter","address":"192.168.100.87:9090","port":9115,"tags":["blackbox_tcp"],"meta":{"job":"blackbox_http_exporter","instance":"centos1服務器所在黑盒tcp監控"},"checks":[{"http":"http://192.168.100.87:9115","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register curl -X PUT -d '{"id":"blackbox_tcp2","name":"blackbox_tcp_exporter","address":"192.168.100.141:9100","port":9115,"tags":["blackbox_tcp"],"meta":{"job":"blackbox_tcp_exporter","instance":"centos1服務器所在黑盒tcp監控"},"checks":[{"http":"http://192.168.100.87:9115","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register #blackbox_icmp curl -X PUT -d '{"id":"blackbox_icmp1","name":"blackbox_icmp_exporter","address":"192.168.100.87","port":9115,"tags":["blackbox_icmp"],"meta":{"job":"blackbox_icmp_exporter","instance":"centos1服務器所在黑盒icmp監控"},"checks":[{"http":"http://192.168.100.87:9115","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register curl -X PUT -d '{"id":"blackbox_icmp2","name":"blackbox_icmp_exporter","address":"192.168.100.141","port":9115,"tags":["blackbox_icmp"],"meta":{"job":"blackbox_icmp_exporter","instance":"centos1服務器所在黑盒icmp監控"},"checks":[{"http":"http://192.168.100.87:9115","interval":"10s"}]}' http://localhost:8500/v1/agent/service/register EOF 增加 prometheus.yml配置如下 vi prometheus.yml - job_name: "consul_snmp-exporter" scrape_interval: 30s scrape_timeout: 30s metrics_path: snmp params: module: [if_mib] consul_sd_configs: - server: '192.168.100.87:8500' services: [ ] relabel_configs: - source_labels: [__meta_consul_tags] regex: .*snmp.* action: keep - regex: __meta_consul_service_metadata_(.+) action: labelmap - source_labels: [ '__meta_consul_service_address' ] target_label: __param_target - source_labels: [ __param_target ] target_label: instance - target_label: __address__ replacement: 192.168.100.141:9116 - job_name: "consul_blackbox_http" metrics_path: probe params: module: [ http_2xx ] consul_sd_configs: - server: '192.168.100.87:8500' services: [ ] relabel_configs: - source_labels: [ __meta_consul_tags ] regex: .*blackbox_http.* action: keep - regex: __meta_consul_service_metadata_(.+) action: labelmap - source_labels: [ '__meta_consul_service_address' ] target_label: __param_target - source_labels: [ __param_target ] target_label: instance - target_label: __address__ replacement: blackbox_exporter:9115 - job_name: "consul_blackbox_tcp" metrics_path: probe params: module: [ tcp_connect ] consul_sd_configs: - server: '192.168.100.87:8500' services: [ ] relabel_configs: - source_labels: [ __meta_consul_tags ] regex: .*blackbox_tcp.* action: keep - regex: __meta_consul_service_metadata_(.+) action: labelmap - source_labels: [ '__meta_consul_service_address' ] target_label: __param_target - source_labels: [ __param_target ] target_label: instance - target_label: __address__ replacement: blackbox_exporter:9115 - job_name: "consul_blackbox_icmp" metrics_path: probe params: module: [ icmp ] consul_sd_configs: - server: '192.168.100.87:8500' services: [ ] relabel_configs: - source_labels: [ __meta_consul_tags ] regex: .*blackbox_icmp.* action: keep - regex: __meta_consul_service_metadata_(.+) action: labelmap - source_labels: [ '__meta_consul_service_address' ] target_label: __param_target - source_labels: [ __param_target ] target_label: instance - target_label: __address__ replacement: blackbox_exporter:9115 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;保存后輸入命令更新: curl -XPOST http://localhost:9090/-/reload &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;成功監聽 ![](https://img.kancloud.cn/00/e7/00e752110ba465f8a07285a2ac31550c_1800x809.png) <hr> ## 四、基于Consul與基于文件兩種服務發現模式的比較 | 基于Consul | 基于文件 優點 | Consul是獨立服務,可以做高可用提升配置可靠性 | 實現簡單,去中心化 缺點 | 增加了一層服務去管理配置 | 配置文件與Prometheus服務器耦合 ,配置文件的備份與恢復麻煩 ## 五、ConsulManager圖形界面管理 ### 4.1 ConsulManager是什么 傳統的Consul項目的配置管理是基于命令行模式或者json配置模式,管理效率低、不直觀。可以借助于ConsulManager開源項日實現圖形界面的管理,增強管理的易用性 ### 4.2安裝配置ConsulManager * 優先完成Consul配置1.14.5 下載ConsulManager的docker-compose.yml進入centos1的服務器 mkdir /data/consulmanager -p cd /data/consulmanager wget https://starsl.cn/static/img/docker-compose.yml * 修改dockercompose.yml #修改3個環境交量 #cosul token:consul的登錄token:當前測試環境可以不填token,這樣consul使用無密碼 #consul_url:consul的 URL(http開頭:/v1要保留) #admin passwd:錄ConsulManager web的admin密碼 cd /data/consulmanager dacker-compose pull docker-compose up -d docker ps -a lgrep consul 訪問地址 http://192.168.100.87:1026 ![](https://img.kancloud.cn/fc/c7/fcc70e6abb9d0d685ad8312fad717983_1826x874.png) ![](https://img.kancloud.cn/64/63/6463764a483752119b4c44af769dd529_1885x989.png) ### 4.3 使用ConsulManager管理服務發現 * 添加待監控targets ![](https://img.kancloud.cn/35/9f/359f06fb2232e9c490479362fae936f4_800x901.png) * 刪除監控targets ![](https://img.kancloud.cn/e1/e2/e1e2f782cded33ea52a9c9efb22a4b8c_1783x478.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看