Tacker (devstack Queens) , tracing VM monitoring function
Hi,
devstack queens with Tacker running on single ubuntu16.04 VM on Ubuntu18.04 Host:
I added the Monitoring function to my VDU in my VNFD : (extract)
node_templates:
VDU1:
type: tosca.nodes.nfv.VDU.Tacker
capabilities:
nfv_compute:
properties:
num_cpus: 1
mem_size: 512 MB
disk_size: 1 GB
properties:
image: { get_input: image_name}
config: |
param0: key1
param1: key2
mgmt_driver: noop
key_name: mykey
user_data_format: RAW
user_data: |
#!/bin/sh
echo "my hostname is `hostname`" > /tmp/hostname
df -h > /home/cirros/diskinfo
monitoring_policy:
name: ping
parameters:
monitoring_delay: 20
count: 3
interval: 2
timeout: 2
actions:
failure: respawn
retry: 6
am using cirros0.4.0 image
(note some examples in Tacker VNFD doc show addition of port: 22 to the monitoring_policy with ping , seems an error to me as icmp doesn't use a port)
launch VNF and check event list:
tacker vnf-events-list --fit-width
| 144 | vnf | cb292c70-52 | PENDING_CREATE | CREATE | 2018-08-2 | VNF UUID |
| | | 22-40a8-a76 | | | 3 | assigned. |
| | | 3-e8f41ff1b | | | 12:17:58 | |
| | | 931 | | | | |
| 145 | vnf | cb292c70-52 | PENDING_CREATE | CREATE | 2018-08-2 | Infra Instance |
| | | 22-40a8-a76 | | | 3 | ID created: |
| | | 3-e8f41ff1b | | | 12:18:10 | 1cf9bc3a-6c2e- |
| | | 931 | | | | 4e12-bb7b- |
| | | | | | | 1e19e5254e5f |
| | | | | | | and Mgmt URL |
| | | | | | | set: {"VDU1": |
| | | | | | | "192.168.120.3 |
| | | | | | | "} |
| 146 | vnf | cb292c70-52 | ACTIVE | CREATE | 2018-08-2 | VNF creation |
| | | 22-40a8-a76 | | | 3 | completed |
| | | 3-e8f41ff1b | | | 12:18:10 | |
| | | 931 | | | | |
| 147 | vnf | cb292c70-52 | ACTIVE | MONITOR | 2018-08-2 | VNF added for |
| | | 22-40a8-a76 | | | 3 | monitoring. mo |
| | | 3-e8f41ff1b | | | 12:18:10 | n_policy_dict |
| | | 931 | | | | = {"vdus": |
| | | | | | | {"VDU1": |
| | | | | | | {"ping": |
| | | | | | | {"actions": |
| | | | | | | {"failure": |
| | | | | | | "respawn"}, |
| | | | | | | "name": |
| | | | | | | "ping", |
| | | | | | | "parameters": |
| | | | | | | {"count": 3, |
| | | | | | | "interval": 2, |
| | | | | | | "monitoring_de |
| | | | | | | lay": 20, |
| | | | | | | "timeout": 2}, |
| | | | | | | "retry": 6, "m |
| | | | | | | onitoring_para |
| | | | | | | ms": {"count": |
| | | | | | | 3, "interval": |
| | | | | | | 2, "monitoring |
| | | | | | | _delay": 20, |
| | | | | | | "timeout": |
| | | | | | | 2}}}}}, |
+-----+---------------+-------------+----------------+------------+-----------+----------------+
Over several minutes , that Event list stays constant , no further events (a respawn would create several events of course) meaning either the Monitor function is working, or , worse, inactive but reporting as working....
Now, as the Monitoring function for the VNFM is ping, assume that is ICMP to the VM, and as this VM has a single interface , I'd expect the VNFM to ping the VM on that interface every 20 secs as described in policy above.
Now if , on the Host, I tcpdump ICMP traffic on the port connecting the VM (cirros unfortunately doesn't have tcpdump), I see , nothing!
sudo tcpdump -e -i qvof3e71d57-33 icmp
even removing icmp filter see no traffic (except an ARP request from VM)
I have the right port, I believe, as if I ping from the Host the floating IP associated with that VM , then I can see icmp traffic.
So , maybe I've misunderstood how the Ping monitor function should work, either there's another mechanism or it's broken (but falsely reporting a ping to the VNFM)