diff options
Diffstat (limited to 'docs/release/configguide/feature.configuration.rst')
-rw-r--r-- | docs/release/configguide/feature.configuration.rst | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/docs/release/configguide/feature.configuration.rst b/docs/release/configguide/feature.configuration.rst new file mode 100644 index 00000000..3ddc409c --- /dev/null +++ b/docs/release/configguide/feature.configuration.rst @@ -0,0 +1,104 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +Doctor Configuration +==================== + +OPNFV installers install most components of Doctor framework including +OpenStack Nova, Neutron and Cinder (Doctor Controller) and OpenStack +Ceilometer and Aodh (Doctor Notifier) except Doctor Monitor. + +After major components of OPNFV are deployed, you can setup Doctor functions +by following instructions in this section. You can also learn detailed +steps in setup_installer() under `doctor/tests`_. + +.. _doctor/tests: https://gerrit.opnfv.org/gerrit/gitweb?p=doctor.git;a=tree;f=tests; + +Doctor Inspector +---------------- + +You need to configure one of Doctor Inspector below. + +**Doctor Sample Inspector** + +Sample Inspector is intended to show minimum functions of Doctor Inspector. + +Doctor Sample Inspector suggested to be placed in one of the controller nodes, +but it can be put on any host where Doctor Monitor can reach and access +the OpenStack Controller (Nova). + +Make sure OpenStack env parameters are set properly, so that Doctor Inspector +can issue admin actions such as compute host force-down and state update of VM. + +Then, you can configure Doctor Inspector as follows: + +.. code-block:: bash + + git clone https://gerrit.opnfv.org/gerrit/doctor -b stable/danube + cd doctor/tests + INSPECTOR_PORT=12345 + python inspector.py $INSPECTOR_PORT > inspector.log 2>&1 & + +**Congress** + +OpenStack `Congress`_ is a Governance as a Service (previously Policy as a +Service). Congress implements Doctor Inspector as it can inspect a fault +situation and propagate errors onto other entities. + +.. _Congress: https://wiki.openstack.org/wiki/Congress + +Congress is deployed by OPNFV installers. You need to enable doctor +datasource driver and set policy rules. By the example configuration below, +Congress will force down nova compute service when it received a fault event +of that compute host. Also, Congress will set the state of all VMs running on +that host from ACTIVE to ERROR state. + +.. code-block:: bash + + openstack congress datasource create doctor doctor + + openstack congress policy rule create \ + --name host_down classification \ + 'host_down(host) :- + doctor:events(hostname=host, type="compute.host.down", status="down")' + + openstack congress policy rule create \ + --name active_instance_in_host classification \ + 'active_instance_in_host(vmid, host) :- + nova:servers(id=vmid, host_name=host, status="ACTIVE")' + + openstack congress policy rule create \ + --name host_force_down classification \ + 'execute[nova:services.force_down(host, "nova-compute", "True")] :- + host_down(host)' + + openstack congress policy rule create \ + --name error_vm_states classification \ + 'execute[nova:servers.reset_state(vmid, "error")] :- + host_down(host), + active_instance_in_host(vmid, host)' + +Doctor Monitor +-------------- + +**Doctor Sample Monitor** + +Doctor Monitors are suggested to be placed in one of the controller nodes, +but those can be put on any host which is reachable to target compute host and +accessible by the Doctor Inspector. +You need to configure Monitors for all compute hosts one by one. + +Make sure OpenStack env parameters are set properly, so that Doctor Inspector +can issue admin actions such as compute host force-down and state update of VM. + +Then, you can configure the Doctor Monitor as follows (Example for Apex deployment): + +.. code-block:: bash + + git clone https://gerrit.opnfv.org/gerrit/doctor -b stable/danube + cd doctor/tests + INSPECTOR_PORT=12345 + COMPUTE_HOST='overcloud-novacompute-1.localdomain.com' + COMPUTE_IP=192.30.9.5 + sudo python monitor.py "$COMPUTE_HOST" "$COMPUTE_IP" \ + "http://127.0.0.1:$INSPECTOR_PORT/events" > monitor.log 2>&1 & |