diff --git a/ansible/roles/grafana/defaults/main.yml b/ansible/roles/grafana/defaults/main.yml
index 738189fb45..4a91446812 100644
--- a/ansible/roles/grafana/defaults/main.yml
+++ b/ansible/roles/grafana/defaults/main.yml
@@ -31,7 +31,7 @@ grafana_data_sources:
       database: "telegraf"
       name: "telegraf"
       type: "influxdb"
-      url: "{{ internal_protocol }}://{{ api_interface_address }}:{{ influxdb_http_port }}"
+      url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ influxdb_http_port }}"
       access: "proxy"
       basicAuth: false
   elasticsearch:
diff --git a/ansible/roles/haproxy/templates/haproxy.cfg.j2 b/ansible/roles/haproxy/templates/haproxy.cfg.j2
index cdc33a7bc9..1eefd9d0fa 100644
--- a/ansible/roles/haproxy/templates/haproxy.cfg.j2
+++ b/ansible/roles/haproxy/templates/haproxy.cfg.j2
@@ -153,6 +153,20 @@ listen glance_api_external
 {% endif %}
 {% endif %}
 
+{% if enable_influxdb | bool %}
+listen influxdb_admin
+  bind {{ kolla_internal_vip_address }}:{{ influxdb_admin_port }}
+{% for host in groups['influxdb'] %}
+  server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ influxdb_admin_port }} check inter 2000 rise 2 fall 5
+{% endfor %}
+
+listen influxdb_http
+  bind {{ kolla_internal_vip_address }}:{{ influxdb_http_port }}
+{% for host in groups['influxdb'] %}
+  server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ influxdb_http_port }} check inter 2000 rise 2 fall 5
+{% endfor %}
+{% endif %}
+
 {% if enable_nova | bool %}
 listen nova_api
   bind {{ kolla_internal_vip_address }}:{{ nova_api_port }}