成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Prometehus自動(dòng)發(fā)現(xiàn)Docker Swarm Overlay網(wǎng)絡(luò)中的容器

wangtdgoodluck / 1615人閱讀

摘要:原文地址介紹如何使用的機(jī)制,自動(dòng)發(fā)現(xiàn)并抓取網(wǎng)絡(luò)中的容器所提供的指標(biāo)。我們需要一種動(dòng)態(tài)發(fā)現(xiàn)容器的方法。使用的機(jī)制,半自動(dòng)的發(fā)現(xiàn)容器。文章最開(kāi)始說(shuō)到的半自動(dòng)就是這個(gè)意思,我們得事先知道記錄有哪些,然后讓去發(fā)現(xiàn)這些記錄背后對(duì)應(yīng)的容器有哪些。

原文地址

介紹如何使用Prometheus的dns service discovery機(jī)制,自動(dòng)發(fā)現(xiàn)并抓取Docker swarm overlay網(wǎng)絡(luò)中的容器所提供的指標(biāo)。

使用docker service create/docker stack deploy能夠很方便管理多個(gè)docker host,并且對(duì)應(yīng)用做擴(kuò)縮容。那么我們?nèi)绾巫ト∵@些動(dòng)態(tài)創(chuàng)建的容器應(yīng)用所提供的指標(biāo)呢?

在《使用Prometheus+Grafana監(jiān)控JVM》一文里我們使用了static_config靜態(tài)配置指標(biāo)抓取目標(biāo),這顯然在docker swarm環(huán)境里是不合適的。我們需要一種動(dòng)態(tài)發(fā)現(xiàn)容器的方法。

解決思路如下:

使用《一種生產(chǎn)環(huán)境Docker Overlay Network的配置方案》提到的方法配置overlay網(wǎng)絡(luò),并且把docker service、stack、standalone container都掛到這個(gè)overlay網(wǎng)絡(luò)里。

把Prometheus也掛到這個(gè)overlay網(wǎng)絡(luò)里。

使用Prometheus的DNS service discovery機(jī)制,半自動(dòng)的發(fā)現(xiàn)容器。

本文所提到的腳本可以在這里下載

下面構(gòu)建一個(gè)實(shí)驗(yàn)環(huán)境以說(shuō)明方法。

第一步:構(gòu)建overlay network

根據(jù)《一種生產(chǎn)環(huán)境Docker Overlay Network的配置方案》里提到的方法,創(chuàng)建Docker swarm,和一個(gè)overlay網(wǎng)絡(luò),名字叫做test-overlay

docker network create -d overlay --attachable test-overlay
第二步:?jiǎn)?dòng)容器

為了方便起見(jiàn),使用prometheus-mock-data來(lái)模擬一個(gè)提供指標(biāo)的應(yīng)用,這樣就能夠避免繁瑣的jmx-exporter。

1) 新建一個(gè)目錄,名字叫做docker-swarm-demo

2) 新建一個(gè)文件scrape-data.txt,這個(gè)文件就是我們要提供的假指標(biāo),內(nèi)容如下:

# HELP x mock metric
# TYPE x gauge
x 1
---
# HELP x mock metric
# TYPE x gauge
x 2
---
# HELP x mock metric
# TYPE x gauge
x 3
---
# HELP x mock metric
# TYPE x gauge
x 4

3) 為了演示docker service和standalone container都能被采集到,會(huì)啟動(dòng)這兩種形式的容器:

4) 使用docker service create啟動(dòng)一個(gè)service,replicas=3(注意--name參數(shù)):

docker service create 
    --name mock 
    --replicas 3 
    --network test-overlay 
    --limit-memory 96M 
    --mount type=bind,src=$(pwd)/scrape-data.txt,dst=/home/java-app/etc/scrape-data.txt 
    chanjarster/prometheus-mock-data:latest

4) 使用docker run啟動(dòng)一個(gè)standalone container(注意--name參數(shù)):

docker run -d 
    -v $(pwd)/scrape-data.txt:/home/java-app/etc/scrape-data.txt 
    --network test-overlay 
    --name standalone-mock 
    chanjarster/prometheus-mock-data:latest
第三步:?jiǎn)?dòng)Prometheus

1) 在之前新建目錄docker-swarm-demo里創(chuàng)建文件prom-config.yml,內(nèi)容如下:

scrape_configs:
  - job_name: "swarm-service"
    scrape_interval: 30s
    dns_sd_configs:
      - names:
        - tasks.mock
        - standalone-mock
        type: A
        port: 8080
    relabel_configs:
      - source_labels: ["__meta_dns_name"]
        target_label: "service"

注意到上面的兩個(gè)關(guān)鍵配置:

設(shè)定了兩個(gè)DNS A記錄,tasks.mockstandalone-mock。

tasks.mock是Docker自動(dòng)為docker service mock創(chuàng)建的,而standalone-mock就是容器名。文章最開(kāi)始說(shuō)到的半自動(dòng)就是這個(gè)意思,我們得事先知道DNS A記錄有哪些,然后讓Prometheus去發(fā)現(xiàn)這些DNS A記錄背后對(duì)應(yīng)的容器有哪些。

__meta_dns_name的值設(shè)置到指標(biāo)的service 這個(gè)label里。

2) 啟動(dòng)Prometheus:

docker run -d 
    --name=prometheus 
    --network test-overlay 
    -p 9090:9090 
    -v $(pwd):/prometheus-config 
    -v $(pwd)/prom-data:/prometheus 
    prom/prometheus --config.file=/prometheus-config/prom-config.yml

3) 訪問(wèn) http://localhost:9090 看看Prometheus是否啟動(dòng)成功,在輸入框里輸入x然后執(zhí)行,應(yīng)該可以看到如下圖的結(jié)果:

其中3個(gè)instance是屬于tasks.mock的,還有一個(gè)則是standalone container(如果沒(méi)有看到4個(gè)instance,那么等一會(huì)兒再試)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/28048.html

相關(guān)文章

  • Docker Swarm部署應(yīng)用的總結(jié)

    摘要:配置網(wǎng)絡(luò)參照生產(chǎn)環(huán)境配置中的和子網(wǎng)章節(jié)。特別注意觀察和的子網(wǎng)是否與已有網(wǎng)絡(luò)沖突如果有沖突則參考網(wǎng)絡(luò)的中的方法修改子網(wǎng)。部署使用的是的監(jiān)控方案。創(chuàng)建應(yīng)用網(wǎng)絡(luò)創(chuàng)建你也可以改成自己的名字參考網(wǎng)絡(luò)的檢查子網(wǎng)與是否配置正確。 原文 大綱 本文只是一種實(shí)際部署方案的例子,涉及到的技術(shù)有(除Docker/Docker Swarm外): Docker overlay network Fluentd...

    Paul_King 評(píng)論0 收藏0
  • Docker Swarm介紹

    摘要:后續(xù)將其他節(jié)點(diǎn)加入集群都會(huì)用到這個(gè)值將節(jié)點(diǎn)加入集群查看節(jié)點(diǎn)信息相關(guān)命令創(chuàng)建服務(wù)更新服務(wù)刪除服務(wù)減少服務(wù)實(shí)例增加服務(wù)實(shí)例查看所有服務(wù)查看服務(wù)的容器狀態(tài)查看服務(wù)的詳細(xì)信息。前言本篇是Docker第十三篇,Docker的使用至此就介紹完成,接下來(lái)繼續(xù)Kubernetes。Docker系列文章:為什么要學(xué)習(xí)DockerDocker基本概念Docker鏡像基本原理Docker容器數(shù)據(jù)卷Dockerfi...

    番茄西紅柿 評(píng)論0 收藏2637
  • docker 1.12 的服務(wù)自動(dòng)發(fā)現(xiàn)

    摘要:介紹的集群的自動(dòng)發(fā)現(xiàn)有兩種方式與本文使用的是的方式準(zhǔn)備安裝以上版本初始化集群創(chuàng)建一個(gè)名為的網(wǎng)絡(luò)開(kāi)放端口初始化集群部份可看我之前的博客使用搭建多主機(jī)集群創(chuàng)建網(wǎng)絡(luò)查看當(dāng)前的網(wǎng)絡(luò)也是一個(gè)網(wǎng)絡(luò)可以跨主機(jī)通信本教程會(huì)創(chuàng)建一個(gè)新的創(chuàng)建網(wǎng)絡(luò) 介紹 docker 1.12 的swarm 集群的自動(dòng)發(fā)現(xiàn)有兩種方式, virtual IP address (VIP) 與 DNS round-robin, ...

    ygyooo 評(píng)論0 收藏0
  • 基于 Docker 1.12 Swarm 的集群管理開(kāi)發(fā)實(shí)踐

    摘要:由于沒(méi)有了中心化的負(fù)載均衡器,集群不會(huì)因某臺(tái)機(jī)器異常而導(dǎo)致整個(gè)服務(wù)對(duì)外不可用,很好的避免了單點(diǎn)問(wèn)題,同時(shí)也帶了可擴(kuò)展性。 Mesos/Marathon 折騰久了,我們一直希望有機(jī)會(huì)深入到 Swarm 內(nèi)部一探究竟。 另外, Mesos 這一套東西雖然是久經(jīng)企業(yè)級(jí)考驗(yàn)的, 但是安裝、部署和使用相對(duì)復(fù)雜,上手有門(mén)檻。同時(shí),在今年的 DockerCon 上,內(nèi)置了Swarm 功能的 Dock...

    My_Oh_My 評(píng)論0 收藏0
  • 立足Docker運(yùn)行MySQL:多主機(jī)網(wǎng)絡(luò)Docker Swarm模式的容器管理

    摘要:本文將以多主機(jī)網(wǎng)絡(luò)環(huán)境為基礎(chǔ),探討如何利用內(nèi)置編排工具模式對(duì)各主機(jī)上的容器加以管理。在本文中,我們將立足于臺(tái)主機(jī)與在負(fù)載均衡之上部署應(yīng)用程序容器,同時(shí)將其接入一套覆蓋網(wǎng)絡(luò)。管理節(jié)點(diǎn)會(huì)利用負(fù)載均衡以將服務(wù)公布至集群之外。 本文將以多主機(jī)網(wǎng)絡(luò)環(huán)境為基礎(chǔ),探討如何利用內(nèi)置編排工具 Docker Swarm模式對(duì)各主機(jī)上的容器加以管理。 Docker Engine – Swarm模式 在...

    20171112 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<