contrail-docker - contrail-analytics - contrail-ansible: redis configuration not consistent in multi-interface setup
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Juniper Openstack | Status tracked in Trunk | |||||
R4.1 |
Incomplete
|
High
|
Bernhard Koessler | |||
R5.0 |
Incomplete
|
High
|
Bernhard Koessler | |||
Trunk |
Incomplete
|
High
|
Bernhard Koessler |
Bug Description
after deploying contrail networking 4.1.0 for Ubuntu 16.04 Ocata with contrail-charms in a multi-interface setup, it can be seen that the redis configuration for contrail-analytics is not functional in all cases.
root@cldsv00003
tcp 0 0 127.0.0.1:6381 0.0.0.0:* LISTEN 105 651235932 29479/redis-server
tcp 0 0 139.1.150.83:6381 0.0.0.0:* LISTEN 105 651235931 29479/redis-server
root@cldsv00003
04/24/2018 11:37:52 AM [contrail-
04/24/2018 11:37:52 AM [contrail-
04/24/2018 11:37:52 AM [contrail-
04/24/2018 11:37:52 AM [contrail-
04/24/2018 11:37:52 AM [contrail-
04/24/2018 11:37:52 AM [contrail-
04/24/2018 11:37:57 AM [contrail-
/etc/contrailct
[GLOBAL]
controller_nodes = 172.30.
analyticsdb_nodes = 172.30.
analytics_nodes = 172.30.
The interfaces on the server/docker container are as follows (as seen from ansible):
root@cldsv00003
> - hosts: all
> gather_facts: yes
> tasks:
> - debug: var=ansible_
> EOF
root@cldsv00003
PLAY [all] *******
TASK [setup] *******
ok: [localhost]
TASK [debug] *******
ok: [localhost] => {
"ansible_
]
}
PLAY RECAP *******
localhost : ok=2 changed=0 unreachable=0 failed=0
From the redis configuratino it can be seen that only the first interface is chosen which is actually a different interface as configured in the contrail configuration.
/# grep -v "^#\|^\s*$" /etc/redis/
daemonize yes
pidfile /var/run/
port 6381
tcp-backlog 511
bind 139.1.150.83 127.0.0.1
timeout 0
tcp-keepalive 0
loglevel notice
logfile /var/log/
databases 16
stop-writes-
rdbcompression yes
rdbchecksum yes
dir /var/lib/redis
slave-serve-
slave-read-only yes
repl-diskless-sync no
repl-diskless-
repl-disable-
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-
auto-aof-
auto-aof-
aof-load-truncated yes
lua-time-limit 15000
slowlog-
slowlog-max-len 128
latency-
notify-
hash-max-
hash-max-
list-max-
list-max-
set-max-
zset-max-
zset-max-
hll-sparse-
activerehashing yes
client-
client-
client-
hz 10
aof-rewrite-
root@cldsv00003
Solution would be to either:
- configure localhost for redis for all services using redis on the analytics container OR
- make sure the configured address space is used for the redis bind configuration
Changed in juniperopenstack: | |
assignee: | nobody → Andrey Pavlov (apavlov-e) |
Changed in juniperopenstack: | |
milestone: | none → r4.1.1.0 |
To clarify for all services on the analytics container:
- analytics-api and alarm-gen have [REDIS] redis_uve_list with the actual cluster address:port list --> if this is set to an address that redis is not listening on it will fail
- collector and query engine have [REDIS] server = 127.0.0.1 --> this works as 127.0.0.1 is always configured as bind interface