iT邦幫忙

0

prometheus設定targets問題

  • 分享至 

  • xImage

我的架構如下:

  1. 使用docker swarm init在虛擬機A建立manager node
  2. 將netdata 服務架構在worker node上(虛擬機B)

為了避免netdata的metric API被直接呼叫
我先設置netdata.conf

[web]
    allow connections from = localhost

然後配置nginx做proxy_pass以及basic authentication

upstream netdata {
   # netdata server
   server 127.0.0.1:19999;
   keepalive 1024;
}

server {
  listen 19998;
  server_name  my_netdata;
     location / {
	proxy_pass http://netdata;
        auth_basic "Basic Authentication";
        auth_basic_user_file /etc/nginx/.htpasswd;
     }
}

我現在的問題點是,因為在prometheus設定targets時需要指定服務路徑
在同一個docker swarm網路下,我原本可以直接設定

static_configs:
  - targets: ['netdata-container-name:19999']

只是我現在在netdata有設定限制ip
這樣我是否變成

  1. 先建立prometheus service,然後拿到該container的ip
  2. 將拿到的prometheus service ip去加入netdata的ip白名單中
  3. 更新prometheus的設定,將targets改為
  • targets: ['虛擬機B的ip:19998']

只是這樣就會有問題,如果今天我的prometheus service進行update時,container改變導致ip也變更後,我又得手動更改netdata的ip白名單

想請問在能建立擋ip的情形下,有更好的處理方式嗎?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答