[英]how to make the node-exporter and cadvisor available to prometheus container only?
[英]How to Change Port Number in cadvisor and node-exporter of Prometheus Monitoring
下面是當我點擊目標時在 prometheus URL 中的顯示。
cadvisor (0/1 up) 和 node-exporter (0/1 up) 顯示在 Prometheus URL 中
這是我的 filename.yml 文件
version: '3.2'
services:
prometheus:
image: prom/prometheus:latest
# container_name: monitoring_prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
volumes:
- /Prometheus/alert.rules:/etc/prometheus/alert.rules
- /Prometheus/container.yml:/etc/prometheus/container.yml
- /Prometheus/diskusage.yml:/etc/prometheus/diskusage.yml
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- 9090:9090
node-exporter:
image: prom/node-exporter:latest
# container_name: monitoring_node_exporter
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
ports:
- 9091:9091
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--path.rootfs=/host'
- '--collector.filesystem.ignored-mount-points="^(/rootfs|/host|)/(sys|proc|dev|host|etc)($$|/)"'
- '--collector.filesystem.ignored-fs-types="^(sys|proc|auto|cgroup|devpts|ns|au|fuse\.lxc|mqueue)(fs|)$$"'
cadvisor:
image: google/cadvisor:latest
# container_name: monitoring_cadvisor
ports:
- 9092:9092
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
grafana:
image: grafana/grafana:latest
# image: grafana-custom:latest
# container_name: monitoring_grafana
volumes:
- grafana-data:/var/lib/grafana
# - ./data/grafana:/var/lib/grafana
# - ./grafana/provisioning:/etc/grafana/provisioning
# - ./defaults.ini:/usr/share/grafana/conf/defaults.ini
ports:
- 3000:3000
environment:
- "GF_SMTP_ENABLED=true"
- "GF_SMTP_HOST=smtp.gmail.com:465"
- "GF_SMTP_USER=test@gmail.com"
- "GF_SMTP_PASSWORD=xxxxxx"
alertmanager:
image: prom/alertmanager
# privileged: true
volumes:
- ./alertmanager.yml:/alertmanager.yml
command:
- '--config.file=/alertmanager.yml'
ports:
- '9093:9093'
karma-alert-dashboard:
# image: cloudflare/unsee
image: lmierzwa/karma:latest
environment:
# - "ALERTMANAGER_URIS=default:http://alertmanager:9093"
- "ALERTMANAGER_URI=http://alertmanager:9093"
ports:
- '9094:9094'
volumes:
grafana-data:
我已經通過 docker stack -c filename.yml 測試部署了 5 個 docker 服務,所有服務和 docker 容器都已啟動。
前 3 個連接在一起並且工作正常
Grafana = http://SERVERIP:3000/ - 3000 Prometheus = http://SERVERIP:9090/ - 9090 AlertManager = http://SERVERIP:9093/ - 9093
由於 docker 容器和 docker 服務中的端口問題,最后 3 個未連接在一起並且無法正常工作
Karma = http://SERVERIP:9094/ - 8080 Node Exporter= http://SERVERIP:9100/ - 9100 CAdvisor = http://SERVERIP:8080/ - 8080
當我檢查端口號 3 服務在終端中顯示不同但在我的 filename.yml 中,一切都是正確的,任何人都可以告訴我是什么問題以及我錯在哪里
當我檢查 3 個 docker 容器的日志時
Could not configure a source for OOM detection, disabling OOM events: open /dev/kmsg: no such file or directory
level=info msg="Version: v0.86-83-gf5e5269f"
level=info msg="Configured Alertmanager source" name=default proxy=false readonly=false uri=http://alertmanager:9093
level=info msg="Initial Alertmanager collection"
level=info msg="Pulling latest alerts and silences from Alertmanager"
level=info msg="Collecting alerts and silences" alertmanager=default
level=info msg="GET request" timeout=40 uri=http://alertmanager:9093/metrics
level=info msg="Upstream version" alertmanager=default version=0.22.2
level=info msg="Got silences" alertmanager=default duration=0.000204419 silences=0
level=info msg="Detecting ticket links in silences" alertmanager=default silences=0
level=info msg="Collected alert groups" alertmanager=default duration=0.000201856 groups=0
level=info msg="Deduplicating alert groups" alertmanager=default groups=0
level=info msg="Processing deduplicated alert groups" alertmanager=default groups=0
level=info msg="Merging autocomplete hints" alertmanager=default hints=0
level=info msg="Collection completed"
level=info msg="Done, starting HTTP server"
level=info msg="Starting HTTP server" address=[::]:8080
level=info msg="Pulling latest alerts and silences from Alertmanager"
level=info msg="Collecting alerts and silences" alertmanager=default
level=info msg="GET request" timeout=40 uri=http://alertmanager:9093/metrics
level=info msg="Upstream version" alertmanager=default version=0.22.2
level=info msg="Got silences" alertmanager=default duration=0.000155633 silences=0
在您的 docker 配置文件中,您沒有在這三個服務上映射正確的端口:
您需要映射那些 docker 鏡像公開的端口。
例如,對於 node_exporter,如果您想在 VM 的端口9091
上訪問它,您將擁有如下內容:
ports:
- 9091:9100 # node_exporter works on port 9100 by default
如果您想知道這些圖像暴露了哪些端口,您可以查看每個項目的 github 文檔或執行docker image inspect your_image
要更改端口號,這是 cadvisor 和節點導出器的示例
version: '3.2'
services:
cadvisor:
image: google/cadvisor:latest
ports:
- 9092:9092
...
command:
- '-port=9092'
...
node-exporter:
image: prom/node-exporter:latest
...
ports:
- 9091:9091
command:
- ' --web.listen-address=9091'
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.