Support services definition
diff --git a/metadata/service/support.yml b/metadata/service/support.yml
new file mode 100644
index 0000000..0e2e398
--- /dev/null
+++ b/metadata/service/support.yml
@@ -0,0 +1,11 @@
+parameters:
+ salt:
+ _support:
+ collectd:
+ enabled: true
+ heka:
+ enabled: true
+ sensu:
+ enabled: true
+ sphinx:
+ enabled: true
diff --git a/nova/files/collectd.conf b/nova/files/collectd_libvirt.conf
similarity index 98%
rename from nova/files/collectd.conf
rename to nova/files/collectd_libvirt.conf
index 03806b2..e88266b 100644
--- a/nova/files/collectd.conf
+++ b/nova/files/collectd_libvirt.conf
@@ -1,6 +1,4 @@
-
LoadPlugin libvirt
-
<Plugin "libvirt">
Connection "qemu:///system"
RefreshInterval 60
diff --git a/nova/meta/collectd.yml b/nova/meta/collectd.yml
new file mode 100644
index 0000000..df5b0fe
--- /dev/null
+++ b/nova/meta/collectd.yml
@@ -0,0 +1,5 @@
+plugin:
+ nova_compute_libvirt:
+ plugin: interface
+ interval: 60
+ template: nova/files/collectd_libvirt.conf
\ No newline at end of file
diff --git a/nova/meta/heka.yml b/nova/meta/heka.yml
new file mode 100644
index 0000000..9e847fd
--- /dev/null
+++ b/nova/meta/heka.yml
@@ -0,0 +1,54 @@
+input:
+ {%- if pillar.nova.compute is defined %}
+ nova_compute:
+ engine: logstreamer
+ log_directory: /var/log/nova
+ file_match: nova-compute\.log\.?(?P<Index>\d+)?(.gz)?
+ priority: ["^Index"]
+ decoder: multidecoder_openstack
+ libvirtd:
+ engine: logstreamer
+ log_directory: /var/log/libvirt
+ file_match: libvirtd\.log\.?(?P<Index>\d+)?(.gz)?
+ priority: ['^Index']
+ decoder: multidecoder_libvirtd
+ {%- endif %}
+ {%- if pillar.nova.controller is defined %}
+ nova_compute:
+ engine: logstreamer
+ log_directory: /var/log/nova
+ file_match: nova-api\.log\.?(?P<Index>\d+)?(.gz)?
+ priority: ["^Index"]
+ decoder: multidecoder_openstack
+ {%- endif %}
+decoder:
+ openstack:
+ engine: multidecoder
+ subs: [ 'Payloadregex_OpenStackLog','Payloadregex_OpenStackLogTrace' ]
+ cascade_strategy: first-wins
+ log_sub_errors: "false"
+ OpenStackLog:
+ engine: payloadregex
+ match_regex: ^(?P<timestamp>\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2}.\d{3})\s(?P<pid>\d+)\s(?P<severity>\w+)\s(?P<programname>\D+)\s\[(?P<id>.+)\]\s(?P<payload>.*)
+ timestamp_layout: "2015-10-06 11:34:37.243"
+ OpenStackLogTrace:
+ engine: payloadregex
+ match_regex: ^(?P<timestamp>\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2}.\d{3})\s(?P<pid>\d+)\s(?P<severity>TRACE)\s(?P<programname>.\S+)\s(?P<payload>.*)
+ timestamp_layout: "2015-10-06 11:34:37.243"
+ openstacksandbox:
+ engine: sandbox
+ file_name: "/etc/heka/plugins.d/decoders/openstack.lua"
+ module_directory: "/etc/heka/plugins.d/common;/usr/share/heka/lua_modules"
+ libvirtd:
+ engine: multidecoder
+ subs: [ 'Payloadregex_libvirtcommon', 'Payloadregex_libvirtaudit' ]
+ cascade_strategy: first-wins
+ log_sub_errors: "false"
+ libvirtcommon:
+ engine: payloadregex
+ match_regex: ^(?P<timestamp>\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2}.\d{3}\+\d{4}):\s+(?P<pid>\d+):\s+(?P<severity>\w+)\s+:\s+(?P<qemutrace>\w+:\d+)\s+:\s+(?P<payload>.*)
+ timestamp_layout: "2015-09-01 15:56:14.675+0000"
+ libvirtaudit:
+ engine: payloadregex
+ match_regex: ^(?P<timestamp>\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2}.\d{3}\+\d{4}):\s+(?P<pid>\d+):\s+(?P<severity>\w+)\s+:\s+(?P<message>.+):\s(?P<payload>.+)
+ timestamp_layout: "2015-09-01 15:56:14.675+0000"
diff --git a/nova/meta/sensu.yml b/nova/meta/sensu.yml
new file mode 100644
index 0000000..d5e1df0
--- /dev/null
+++ b/nova/meta/sensu.yml
@@ -0,0 +1,75 @@
+check:
+ local_nova_api_proc:
+ command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_procs -C nova-api -u nova -c 1:30"
+ interval: 60
+ occurrences: 1
+ subscribers:
+ - local-nova-controller
+ local_nova_scheduler_proc:
+ command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_procs -C nova-scheduler -u nova -c 1:4"
+ interval: 60
+ occurrences: 1
+ subscribers:
+ - local-nova-controller
+ local_nova_novncproxy_proc:
+ command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_procs -C nova-novncproxy -u nova -c 1:5"
+ interval: 60
+ occurrences: 2
+ subscribers:
+ - local-nova-controller
+ local_nova_cert_proc:
+ command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_procs -C nova-cert -u nova -c 1:4"
+ interval: 60
+ occurrences: 1
+ subscribers:
+ - local-nova-controller
+ local_nova_conductor_proc:
+ command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_procs -C nova-conductor -u nova -c 1:10"
+ interval: 60
+ occurrences: 1
+ subscribers:
+ - local-nova-controller
+ local_nova_consoleauth_proc:
+ command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_procs -C nova-consoleaut -u nova -c 1:1"
+ interval: 60
+ occurrences: 1
+ subscribers:
+ - local-nova-controller
+ #local_nova_api_rabbitmq_logs:
+ # command: "PATH=$PATH:/etc/sensu/plugins check_log.sh -p /var/log/nova/nova-api.log -l 10 -r 'Queue not found' -c 5"
+ # interval: 60
+ # occurrences: 1
+ # subscribers:
+ # - local-nova-controller
+ local_nova_compute_proc:
+ command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_procs -C nova-compute -u nova -c 1:10"
+ interval: 60
+ occurrences: 1
+ asset: asset01
+ customer: cloudlab
+ subscribers:
+ - local-nova-compute
+ local_linux_storage_nova_instances_usage:
+ command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_disk -w 15% -c 5% -p /var/lib/nova/instances"
+ interval: 60
+ occurrences: 1
+ subscribers:
+ - local-nova-compute
+ remote_openstack_nova_instance:
+ command: "PATH=$PATH:/usr/local/bin oschecks-check_nova_instance --auth_url='http://:::openstack.host:::::::openstack.port:::/v2.0' --username :::openstack.user::: --password :::openstack.password::: --tenant :::openstack.tenant:::"
+ interval: 300
+ occurrences: 1
+ subscribers:
+ - remote-network
+ remote_openstack_nova_api:
+ command: "PATH=$PATH:/usr/local/bin oschecks-check_nova_api --os-auth-url 'http://:::openstack.host:::::::openstack.port:::/v2.0' --os-username :::openstack.user::: --os-password :::openstack.password::: --os-tenant-name :::openstack.tenant:::"
+ interval: 60
+ occurrences: 1
+ subscribers:
+ - remote-network
+ remote_nova_services:
+ command: "PATH=$PATH:/etc/sensu/plugins check_nova_services.sh -u :::openstack.user::: -p :::openstack.password::: -t :::openstack.tenant::: -h 'http://:::openstack.host:::::::openstack.port:::/v2.0'"
+ interval: 60
+ occurrences: 1
+ subscribers:
+ - remote-network
\ No newline at end of file
diff --git a/nova/meta/sphinx.yml b/nova/meta/sphinx.yml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/nova/meta/sphinx.yml