1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        ElasticSearch 如何配置Uptime 監(jiān)控組件可用性

        共 3897字,需瀏覽 8分鐘

         ·

        2021-06-03 06:10

        點擊上方"程序員歷小冰",選擇“置頂或者星標”

           你的關(guān)注意義重大!

        本文收錄至《Elastic Stack 實戰(zhàn)手冊》,歡迎和我一起解鎖開發(fā)者共創(chuàng)書籍,系統(tǒng)學(xué)習(xí) Elasticsearch,地址詳見文末。

        現(xiàn)在互聯(lián)網(wǎng)架構(gòu)隨著用戶的增加,而越來越復(fù)雜,可能要有成千上萬個不同的組件和不同的實例,對這些組件可用性的監(jiān)控是提供高可用服務(wù)的關(guān)鍵之一,Elastic 為此推出了 Uptime App。

        Elasticsearch 使用 Heartbeat 進行組件的監(jiān)控。

        Heartbeat 也就是我們通常所說的心跳,通過 Hearteat 我們可以判斷一個網(wǎng)絡(luò)組件,當前是否存活,是否可以對外正常提供服務(wù)。

        Heartbeat 是一個輕量級的數(shù)據(jù)收集器。它用來幫我們進行 Uptime 的健康監(jiān)控。它可以定期通過 HTTP、TCP 或 ICMP 等方式驗證組件是否處于運行狀態(tài),然后將收集到的狀態(tài)和信息上報給 Elasticsearch。

        而 Kibana 中的 Uptime app 則為我們提供了查看可用性數(shù)據(jù)的儀表板,以監(jiān)控服務(wù)器或服務(wù)的正常運行,并提供了報警功能支持。

        Elasticsearch 使用 Heartbeat 來進行 Uptime 的監(jiān)控的架構(gòu)可以表述如下:

        下面,我們將依次講解 Uptime App 的安裝,Heartbeat 的配置和各類監(jiān)控組件的配置。

        安裝 Uptime App

        如果我們打開我們的 Kibana 并點擊 Uptime 應(yīng)用,那么第一次打開的時候,我們可以看到,如下的界面。

        點擊 Install Heartbeat,就會跳轉(zhuǎn)到配置 Uptime Monitors 的文檔界面,你可以按照這個界面上的步驟進行 Heartbeat 的安裝,配置,啟動和測試 Kibana 是否接收到 Heartbeat 上傳的數(shù)據(jù)。

        Heartbeat 在不同平臺有多種安裝方式,比如說 macOS、DEB、RPM 和 Windows 等,我們這里介紹最為常用的 Docker 安裝方式,其后續(xù)部署和啟動步驟則大同小異,讀者可以自行根據(jù)需要進行實踐。

        需要注意的是,安裝的 Heartbeat 必須和 Elasticsearch 或 Kibana 版本相同,所以我們這里選取 heartbeat:7.10.0 版本的鏡像。

        docker pull docker.elastic.co/beats/heartbeat:7.10.0

        接著,我們可以使用如下命令啟動 Heartbeat 容器。

        docker run -d   --name=heartbeat   --user=heartbeat   
        --volume="/tmp/heartbeat.docker.yml:/usr/share/heartbeat/heartbeat.yml:ro"
        docker.elastic.co/beats/heartbeat:7.10.0 --strict.perms=false

        這里使用了 docker 的 --volume 參數(shù),掛載了宿主機文件系統(tǒng)路徑下的 heartbeat.docker.yml 文件到容器的對應(yīng)路徑下,這是在為 Heartbeat 提供配置文件。具體配置文件內(nèi)容后續(xù)繼續(xù)講解,我們這里先演示完整個 Uptime 安裝流程。

        啟動 Heartbeat 容器后,通過 docker ps 和 docker exec 命令可以進入到相應(yīng)的容器內(nèi)部。

        docker ps
        docker exec -it 5b3785357c26(要替換為自己ps命令輸出的CONTAINER ID) bash

        然后,通過 ls 命令,我們可以看到 Heartbeat 的整體文件結(jié)構(gòu)。

        bash-4.2$ ls
        LICENSE.txt NOTICE.txt README.md data fields.yml heartbeat
        heartbeat.reference.yml heartbeat.yml kibana logs monitors.d

        在目錄中,有一個叫做 heartbeat.yml 的配置文件,這個文件就是上邊通過 --volume 參數(shù)掛載進來的。同時在 monitor.d 目錄中,有一些不同監(jiān)控器配置的配置文件案例可供大家參考,heartbeat.reference.yaml 中則是最全的配置案例。

        接著,我們要使用如下命令來啟動 Heartbeat,讓它開始收集數(shù)據(jù)并向配置文件中指定的 Elasticsearch 中上報數(shù)據(jù)。

        ./heartbeat setup
        ./heartbeat -e

        查看上述命令的輸出日志沒有什么異常后,可以再次來到 Uptime Monitors 界面,點擊其 Check data 按鈕檢查是否接收到了數(shù)據(jù),如果接受到了數(shù)據(jù),則可以點擊 Uptime App 按鈕,前往 Uptime App 界面查看詳細數(shù)據(jù)。

        運行過一段時間的 Uptime App 界面如下圖所示。

        我們可以看到界面分為兩大部分,上半部分是統(tǒng)計區(qū),通過餅圖和柱狀圖展示了當前監(jiān)控器 Monitor 的狀態(tài)和過去一段時間中 Monitor 的狀態(tài)。而下半部分是具體的 Monitor 列表,一共有兩個 Monitors,分別是監(jiān)聽 taobao 網(wǎng)和 aliyun 網(wǎng)站,目前兩個都是 Up 狀態(tài)。

        配置 Heartbeat

        上邊講解了安裝 Heartbeat 和 Uptime 的整體流程,本小節(jié)詳細解決一下 Heartbeat 的配置,也就是 heartbeat.yml 文件的配置。

        heartbeat.yml 文件一般有兩部分組成:

        ?監(jiān)控器配置 heartbeat.monitors,配置要監(jiān)控的目標和監(jiān)控的方式;?輸出配置 output.elasticsearch,配置數(shù)據(jù)上報的 Elasticsearch 的地址,用戶名和密碼。

        比如說,上一小節(jié)我們啟動 docker 時指定的 heartbeat.yaml 文件如下所示:

        heartbeat.monitors:
        - type: http # 使用http方式監(jiān)控,還可以使用 TCP 和 ICMP
        schedule: '@every 5s' # 每 5s 抓取一次
        urls: # 需要監(jiān)控的 url 地址
        - https://cn.aliyun.com/
        - https://www.taobao.com/

        output.elasticsearch:
        hosts: '${ELASTICSEARCH_HOSTS:http://es-cn-n6w24fib900797tgz.public.elasticsearch.aliyuncs.com:9200}'
        username: '${ELASTICSEARCH_USERNAME:111}'
        password: '${ELASTICSEARCH_PASSWORD:111}'

        為了使 Heartbeat 知道要檢查的服務(wù),它需要一個 URL 列表。

        heartbeat.yaml 中的 heartbeat.monitors 中指定了此配置。如上的 heartbeat.yaml 配置文件,對 cn.aliyun.com 和 www.taobao.com 兩個網(wǎng)址每隔 5s 進行一次 HTTP 檢查。

        除了 HTTP 監(jiān)視器,Heartbeat 還可以進行 TCP 和 ICMP 類型的檢查。

        heartbeat.monitors:
        - type: icmp
        schedule: '@every 5s'
        hosts:
        - http://cn.aliyun.com/
        - http://www.taobao.com/
        - type: tcp
        schedule: '@every 5s'
        hosts:
        - 127.0.0.1:8080

        此外,它還支持定義不同的檢查語句,例如,使用 HTTP 監(jiān)視器,可以檢查響應(yīng)代碼(code)、正文(body)和標頭(header)。使用 TCP 監(jiān)視器,能定義端口檢查和字符串檢查。

        heartbeat.monitors:
        - type: http
        schedule: '@every 5s'
        urls:
        - https://cn.aliyun.com/
        # request details:
        check.request:
        method: GET
        check.response:
        body: "aliyun"

        如上的配置, Heartbeat 會每 5s 使用 GET 調(diào)用一次 https://cn.aliyun.com/ ,并在其 Response 的 Body 中尋找字符串 aliyun。如果沒有找到這個字符串,則本次檢查未通過。

        其他更加詳細的配置,你可以參考 heartbeat.reference.yml 文件。


        阿里云 Elastic Stack 實戰(zhàn)手冊 https://developer.aliyun.com/topic/elasticstack/playbook

        -關(guān)注我


        瀏覽 49
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            操美女网站18 | 亚洲五月开心 | 啊好痛嗯轻一点小说 | 超碰人人欧美 | 日韩超碰 | 丁香五月婷婷亚洲综合另类精品 | 思思热国产在线 | 国产人妻 精品无码免费 | 黄网站免费在线看 | 18禁超污无遮挡无码黄网站 |