This page describes the instructions to bring up monitoring service components using new build process.
- Install Monitoring Service
- Enable Monitoring of Infrastructure Services
- Enable Monitoring of R-CORD vSG Service
- Enable Monitoring of CORD Example service
- Troubleshooting
Monitoring Service is not very stable in the latest master branches because of some issues in synchronizer execution of playbooks. You might notice failures at different stages of monitoring service deployment process. Refer to Troubleshooting section
For convenience, add the below alias to your bashrc file and source it:
alias xos-teardown="pushd /opt/cord/build/platform-install; ansible-playbook -i inventory/rcord --extra-vars @../genconfig/config.yml teardown-playbook.yml" alias xos-cleanup-images="docker rmi xosproject/xos-ui xosproject/xos" alias xos-cleanup-openstack="source ~/admin-openrc.sh; /opt/cord/orchestration/service-profile/cord-pod/cleanup.sh" alias xos-deploy="pushd /opt/cord/build/platform-install; ansible-playbook -i inventory/rcord --extra-vars @../genconfig/config.yml deploy-xos-playbook.yml" alias compute-node-refresh="pushd /opt/cord/build/platform-install; ansible-playbook -i /etc/maas/ansible/pod-inventory --extra-vars=@/opt/cord/build/genconfig/config.yml compute-node-refresh-playbook.yml" alias deploy-monitoringservice="pushd /opt/cord/build/platform-install; ansible-playbook -i inventory/rcord --extra-vars @../genconfig/config.yml onboard-monitoringservice-playbook.yml" alias instantiate-monitoringservice="pushd /opt/cord/build/platform-install; ansible-playbook -i inventory/rcord --extra-vars @../genconfig/config.yml instantiate-monitoringservice-playbook.yml" alias generate-install-infra-agents-config="ansible-playbook -i /etc/maas/ansible/pod-inventory --extra-vars=@/opt/cord/build/genconfig/config.yml monitoringagent-infra-install-config.yml" alias install-infra-agents="ansible-playbook -i /opt/cord_profile/monitoringagent_install.hosts monitoringagent-infra-install.yml" alias generate-enable-infra-monitoring-config="ansible-playbook -i /etc/maas/ansible/pod-inventory --extra-vars=@/opt/cord/build/genconfig/config.yml monitoringservice-enable-inframonitoring-config.yml" alias enable-infra-monitoring="ansible-playbook -i inventory/rcord --extra-vars @../genconfig/config.yml monitoringservice-enable-inframonitoring.yml" alias enable-vsg-monitoring="pushd /opt/cord/build/platform-install; ansible-playbook -i inventory/rcord --extra-vars @../genconfig/config.yml monitoringservice-enable-vsgmonitoring.yml" alias enable-exampleservice-monitoring="pushd /opt/cord/build/platform-install; ansible-playbook -i inventory/rcord --extra-vars @../genconfig/config.yml monitoringservice-enable-exampleservicemonitoring.yml" alias test-monitoringservice-initial="ansible-playbook -i inventory/rcord --extra-vars @../genconfig/config.yml monitoringservice-test-initial.yaml" alias test-monitoringservice-inframetrics="ansible-playbook -i inventory/rcord --extra-vars @../genconfig/config.yml monitoringservice-test-inframetrics.yaml" alias test-monitoringservice-vsgmetrics="ansible-playbook -i inventory/rcord --extra-vars @../genconfig/config.yml monitoringservice-test-vsgmetrics.yaml" alias test-monitoringservice-exampleservicemetrics="ansible-playbook -i inventory/rcord --extra-vars @../genconfig/config.yml monitoringservice-test-exampleservicemetrics.yaml" alias cord-monitoringservice="echo \"*******NOTE:Ensure monitoring service synchronizer is completely up and running********\"; instantiate-monitoringservice; test-monitoringservice-initial" alias install-inframonitoring-agent="generate-install-infra-agents-config; install-infra-agents" alias enable-inframonitoring="generate-enable-infra-monitoring-config; enable-infra-monitoring; test-monitoringservice-inframetrics" alias enable-vsgmonitoring="enable-vsg-monitoring; test-monitoringservice-vsgmetrics" alias enable-exampleservicemonitoring="enable-exampleservice-monitoring; test-monitoringservice-exampleservicemetrics"
Install CORD POD on a server (cord-in-a-box) using the latest install procedures as described in Configuring CORD
- Ensure the CORD portal is up and all the mandatory services are up and running
- By default, POD install on-boards monitoring service synchronizer
Ensure monitoring service synchronizer is operational by checking the logs from the respective synchronizer docker container
Install Monitoring Service & Channel
vagrant@prod:~$ cd /opt/cord/build/platform-install vagrant@prod:/opt/cord/build/platform-install$ source ~/.bashrc vagrant@prod:/opt/cord/build/platform-install$ cord-monitoringservice
`cord-monitoringservice` alias performs the following functionalities:
- Instantiation of Monitoring service
- Creation of Monitoring channel (for user xosadmin@opencord.org)
- Loading Monitoring dashboard that retrieves the data using Monitoring channel
- Run basic test suite that verifies the status of Monitoring service and channel and also ensures there are no telemetry data available initially
Enable Monitoring of Infrastructure Services (OpenStack and ONOS)
vagrant@prod:/opt/cord/build/platform-install$ install-inframonitoring-agent vagrant@prod:/opt/cord/build/platform-install$ enable-inframonitoring
- The first alias `install-inframonitoring-agents` will deploy the monitoring agents in all the servers (head nodes and compute nodes). These monitoring agents provide an interface to control monitoring of the various infrastructure services (OpenStack and ONOS)
- The second alias `enable-inframonitoring` will invokes the APIs exposed by monitoring agents (deployed in previous command) and turn ON the monitoring for OpenStack and ONOS services. At the end, it runs a test suite that validates if the telemetry data is collected from these infrastructure services.
Enable Monitoring of R-CORD vSG Services
vagrant@prod:/opt/cord/build/platform-install$ enable-vsgmonitoring
Enable Monitoring of Example Services
vagrant@prod:/opt/cord/build/platform-install$ enable-exampleservicemonitoring
Troubleshooting
- 'cord-monitoringservice' command does not bring up Monitoring service:
- Two reasons:
- ONOS-CORD connectivity issues:
- Off-late, due to some 'StorgaeTimeout' exception issues in ONOS, the VMs created for a given service are not reachable by XOS synchronizer and hence the service configuration will never complete in this case.
- Refer to instructions at "Restart ONOS-CORD" to restart the ONOS and verify the connectivity to the VMs are working properly
- Longer ansible playbook execution times
- Sometimes, we have noticed that synchronizer ansible playbook execution was taking more than expected time, due to which, monitoring service test cases would flag failure.
- In such case, re-run the test case command 'test-monitoringservice-initial' after giving a small pause to see if it report success
- ONOS-CORD connectivity issues:
- Two reasons: