Break out collectd config files.

+ Trimmed down Ceph Process list
+ Added Graphite host type, consolidated all generic host types to single playbook collectd-generic (baremetal, guest, cfme, graphite, satellite6)

Change-Id: I2af61fc8dc507407dd7983e44cd3302713fd3ddd
This commit is contained in:
Alex Krzos 2016-03-10 16:07:47 -05:00
parent 9067be0953
commit f54470ee9d
15 changed files with 1230 additions and 214 deletions

View File

@ -0,0 +1,52 @@
# Installing and configuring collectd agent on other machines
Collectd configurations are built for these types of machines:
* baremetal
* guest
* cfme
* graphite/grafana
* satellite6
To install collectd agent and configure collectd to send metrics to your Graphite server, simply add the host to your ansible inventory file under the correct group.
Complete Example Inventory file:
```
[undercloud]
undercloud
[controller]
overcloud-controller-0
overcloud-controller-1
overcloud-controller-2
[compute]
overcloud-compute-0
overcloud-compute-1
[ceph]
overcloud-cephstorage-0
[baremetal]
x.x.x.x # An ip adddress or fqdn or specificed host in ~/.ssh/config
[guest]
x.x.x.x # An ip adddress or fqdn or specificed vm in ~/.ssh/config
[cfme]
x.x.x.x # An ip address of a Red Hat Cloud Forms appliance or ManageIQ appliance
[graphite]
x.x.x.x # An ip address of a Graphite/Grafana Server
[satellite6]
x.x.x.x # An ip address of a Red Hat Satellite 6 Server
```
Example run the collectd-generic playbook on the above specified cfme machine:
```
# ansible-playbook -i hosts install/collectd-generic.yml --tags "cfme"
```
Replace "cfme" with whatever machines you intend to install collectd on.
Note: Openstack host groups (undercloud, controller, compute, ceph) are ignored with the collectd-generic.yml playbook.

View File

@ -1,15 +1,19 @@
Table of Contents
=================
- [Ansible for Browbeat](#)
- [To use](#)
- [Ansible Installers](#)
- [Performance Check](#)
- [Performance Tune](#)
- [Adjust your overcloud](#)
# Ansible for Browbeat # Ansible for Browbeat
Currently we only support Ansible 1.9.4. Currently we support Ansible 1.9.4 within browbeat-venv and ansible 2.0 for installation.
Playbooks for: Playbooks for:
* Install Browbeat * Installing Browbeat, collectd, connmon, graphite, grafana, and grafana dashboards
* Install collectd
* Install connmon
* Install graphite service
* Install grafana service
* Install grafana dashboards
* Install shaker
* Check overcloud for performance issues * Check overcloud for performance issues
* Tune overcloud for performance (Experimental) * Tune overcloud for performance (Experimental)
* Adjust number of workers for cinder/keystone/neutron/nova * Adjust number of workers for cinder/keystone/neutron/nova
@ -30,65 +34,64 @@ Then run gen_hosts.sh script to generate your overcloud's hosts file for ansible
``` ```
# ./gen_hostfile.sh <undercloud-ip> ~/.ssh/config # ./gen_hostfile.sh <undercloud-ip> ~/.ssh/config
``` ```
**Review the hosts file the script generates. *Review the hosts file the script generates.
## Ansible Installers: ## Ansible Installers
Install Browbeat ##### Install Browbeat
Image upload requires Ansible 2.0
``` ```
# vi install/group_vars/all # Edit ansible vars file (Installation parameters)
# ansible-playbook -i hosts install/browbeat.yml # ansible-playbook -i hosts install/browbeat.yml
``` ```
Install Collectd Agent (Requires a Graphite Server) ##### Install Collectd Agent (Requires a Graphite Server)
Prior to installing the agent, please review the install/group_vars/all to ensure the Prior to installing the agent, please review the install/group_vars/all to ensure the
correct params are passed correct parameters are passed
``` ```
# ansible-playbook -i hosts install/collectd # ansible-playbook -i hosts install/collectd-openstack.yml
``` ```
To install collectd on everything other than Openstack machines, view the [README for collectd-generic](README.collectd-generic.md).
Install Connmon ##### Install Connmon
Requires Ansible 2.0
``` ```
# ansible-playbook -i hosts install/connmon.yml # ansible-playbook -i hosts install/connmon.yml
``` ```
Install graphite service ##### Install graphite service
``` ```
# ansible-playbook -i hosts install/graphite.yml # ansible-playbook -i hosts install/graphite.yml
``` ```
Install grafana service ##### Install grafana service
* Default user is admin/admin and the graphite data source will need to be defined. Default user is admin/admin and the graphite data source will need to be defined.
``` ```
# ansible-playbook -i hosts install/grafana.yml # ansible-playbook -i hosts install/grafana.yml
``` ```
Install Grafana Dashboards (Requires a Grafana Server) ##### Install Grafana Dashboards (Requires a Grafana Server)
* Review install/group_vars/all before deploying the grafana dashboards Review install/group_vars/all before deploying the grafana dashboards
``` ```
# ansible-playbook -i hosts install/dashboards.yml # ansible-playbook -i hosts install/dashboards.yml
``` ```
Install Shaker ## Performance Check
```
# ansible-playbook -i hosts install/shaker.yml
```
## Performance Checks:
Run the check playbook to identify common performance issues: Run the check playbook to identify common performance issues:
``` ```
# ansible-playbook -i hosts check/site.yml # ansible-playbook -i hosts check/site.yml
``` ```
## Performance Tune: ## Performance Tune
Run the tune playbook to tune your OSPd deployed cloud for performance: Run the tune playbook to tune your OSPd deployed cloud for performance:
``` ```
# ansible-playbook -i hosts tune/tune.yml # ansible-playbook -i hosts tune/tune.yml
``` ```
## Adjust your overcloud: ## Adjust your overcloud
To modify the number of workers each service is running: To modify the number of workers each service is running:
``` ```

View File

@ -1,10 +1,53 @@
--- ---
# #
# Generic Playbook to install collectd on generic machines # Generic Playbook to install collectd on generic machine types, use tags to seperate machine type:
#
# Examples:
#
# ansible-playbook -i hosts install/collectd-generic.yml --tags="baremetal"
# ansible-playbook -i hosts install/collectd-generic.yml --tags="guest"
# ansible-playbook -i hosts install/collectd-generic.yml --tags="cfme"
# ansible-playbook -i hosts install/collectd-generic.yml --tags="graphite"
# ansible-playbook -i hosts install/collectd-generic.yml --tags="satellite6"
# ansible-playbook -i hosts install/collectd-generic.yml --tags="baremetal,guest"
# #
- hosts: nodes - hosts: baremetal
remote_user: root remote_user: root
vars:
config_type: baremetal
roles: roles:
- common
- collectd-generic - collectd-generic
tags: baremetal
- hosts: guest
remote_user: root
vars:
config_type: guest
roles:
- collectd-generic
tags: guest
- hosts: cfme
remote_user: root
vars:
config_type: cfme
roles:
- collectd-generic
tags: cfme
- hosts: graphite
remote_user: root
vars:
config_type: graphite
roles:
- collectd-generic
tags: graphite
- hosts: satellite6
remote_user: root
vars:
config_type: satellite6
roles:
- collectd-generic
tags: satellite6

View File

@ -5,6 +5,8 @@
- hosts: undercloud - hosts: undercloud
remote_user: "{{ local_remote_user }}" remote_user: "{{ local_remote_user }}"
vars:
config_type: undercloud
roles: roles:
- { role: common, when: collectd_undercloud } - { role: common, when: collectd_undercloud }
- { role: collectd-openstack, when: collectd_undercloud } - { role: collectd-openstack, when: collectd_undercloud }
@ -16,6 +18,8 @@
- hosts: controller - hosts: controller
remote_user: "{{ host_remote_user }}" remote_user: "{{ host_remote_user }}"
vars:
config_type: controller
roles: roles:
- { role: common, when: collectd_controller } - { role: common, when: collectd_controller }
- { role: collectd-openstack, when: collectd_controller } - { role: collectd-openstack, when: collectd_controller }
@ -27,6 +31,8 @@
- hosts: ceph - hosts: ceph
remote_user: "{{ host_remote_user }}" remote_user: "{{ host_remote_user }}"
vars:
config_type: ceph
roles: roles:
- { role: common, when: collectd_ceph } - { role: common, when: collectd_ceph }
- { role: collectd-openstack, when: collectd_ceph } - { role: collectd-openstack, when: collectd_ceph }
@ -38,6 +44,8 @@
- hosts: compute - hosts: compute
remote_user: "{{ host_remote_user }}" remote_user: "{{ host_remote_user }}"
vars:
config_type: compute
roles: roles:
- { role: common, when: collectd_compute } - { role: common, when: collectd_compute }
- { role: collectd-openstack, when: collectd_compute } - { role: collectd-openstack, when: collectd_compute }

View File

@ -1,6 +1,6 @@
--- ---
# #
# Install/run collectd for browbeat # Install/run collectd for browbeat (Generic)
# #
- name: Check for epel - name: Check for epel
@ -22,7 +22,7 @@
- name: Configure collectd.conf - name: Configure collectd.conf
template: template:
src=collectd.conf.j2 src={{config_type}}.collectd.conf.j2
dest=/etc/collectd.conf dest=/etc/collectd.conf
owner=root owner=root
group=root group=root
@ -39,10 +39,12 @@
ignore_errors: true ignore_errors: true
changed_when: false changed_when: false
# This command is not always found?
- name: Set permissive for collectd - name: Set permissive for collectd
shell: semanage permissive -a collectd_t shell: semanage permissive -a collectd_t
become: true become: true
when: collectd_permissive.rc != 0 when: collectd_permissive.rc != 0
ignore_errors: true
# #
# Additional policy bits may be needed for exec # Additional policy bits may be needed for exec

View File

@ -1,4 +1,5 @@
# Installed by Browbeat Ansible Installer # Installed by Browbeat Ansible Installer
# Config type: {{config_type}}
# Interval default is 10s # Interval default is 10s
Interval {{collectd_interval}} Interval {{collectd_interval}}
@ -17,7 +18,6 @@ LoadPlugin disk
LoadPlugin interface LoadPlugin interface
LoadPlugin irq LoadPlugin irq
LoadPlugin load LoadPlugin load
LoadPlugin match_regex
LoadPlugin memory LoadPlugin memory
LoadPlugin numa LoadPlugin numa
LoadPlugin processes LoadPlugin processes
@ -25,25 +25,6 @@ LoadPlugin swap
LoadPlugin turbostat LoadPlugin turbostat
LoadPlugin uptime LoadPlugin uptime
PreCacheChain "PreCache"
<Chain "PreCache">
<Rule "ignore_tap">
<Match "regex">
Plugin "^interface$"
PluginInstance "^tap*"
</Match>
Target "stop"
</Rule>
<Rule "ignore_interfaces_q">
<Match "regex">
Plugin "^interface$"
PluginInstance "^q.*"
</Match>
Target "stop"
</Rule>
Target "return"
</Chain>
# Graphite Host Configuration # Graphite Host Configuration
<Plugin write_graphite> <Plugin write_graphite>
<Carbon> <Carbon>
@ -80,6 +61,5 @@ PreCacheChain "PreCache"
ValuesPercentage true ValuesPercentage true
</Plugin> </Plugin>
# Include other collectd configuration files # Include other collectd configuration files
Include "/etc/collectd.d" Include "/etc/collectd.d"

View File

@ -0,0 +1,256 @@
# Installed by Browbeat Ansible Installer
# Config type: {{config_type}}
# Interval default is 10s
Interval {{collectd_interval}}
# Hostname for this machine, if not defined, use gethostname(2) system call
Hostname "{{inventory_hostname}}"
# Allow collectd to log
LoadPlugin syslog
# Loaded Plugins:
LoadPlugin write_graphite
LoadPlugin cpu
LoadPlugin df
LoadPlugin disk
LoadPlugin interface
LoadPlugin irq
LoadPlugin load
LoadPlugin memory
LoadPlugin processes
LoadPlugin swap
LoadPlugin tail
LoadPlugin uptime
# Graphite Host Configuration
<Plugin write_graphite>
<Carbon>
Host "{{graphite_host}}"
Port "2003"
Prefix "{{graphite_prefix}}."
Protocol "tcp"
LogSendErrors true
StoreRates true
AlwaysAppendDS false
EscapeCharacter "_"
</Carbon>
</Plugin>
<Plugin df>
ValuesPercentage true
</Plugin>
<Plugin disk>
Disk "/^[hsv]d[a-z]+[0-9]?$/"
IgnoreSelected false
</Plugin>
<Plugin processes>
ProcessMatch "evm_server.rb" ".*evm_server\.rb$"
ProcessMatch "evm_watchdog.rb" "/bin/evm_watchdog.rb"
Process "evm:dbsync:replicate"
Process "appliance_console.rb"
# Workers
ProcessMatch "MiqEventHandler" ".*MiqEventHandler.*"
ProcessMatch "MiqGenericWorker" "MiqGenericWorker.*"
ProcessMatch "MiqPriorityWorker" "MiqPriorityWorker.*"
ProcessMatch "MiqReportingWorker" "MiqReportingWorker.*"
ProcessMatch "MiqScheduleWorker" "MiqScheduleWorker.*"
ProcessMatch "MiqUiWorker" "MiqUiWorker.*"
ProcessMatch "MiqWebServiceWorker" "MiqWebServiceWorker.*"
ProcessMatch "MiqReplicationWorker" "MiqReplicationWorker.*"
ProcessMatch "MiqEmsMetricsProcessorWorker" "MiqEmsMetricsProcessorWorker.*"
Processmatch "MiqSmartProxyWorker" "MiqSmartProxyWorker.*"
Processmatch "MiqVimBrokerWorker" "MiqVimBrokerWorker.*"
Processmatch "MiqEmsRefreshCoreWorker" "MiqEmsRefreshCoreWorker.*"
# Provider Refresh Workers:
ProcessMatch "Vmware::InfraManager::RefreshWorker" "Vmware::InfraManager::RefreshWorker.*"
ProcessMatch "Redhat::InfraManager::RefreshWorker" "Redhat::InfraManager::RefreshWorker.*"
ProcessMatch "Microsoft::InfraManager::RefreshWorker" "Microsoft::InfraManager::RefreshWorker.*"
ProcessMatch "Openstack::InfraManager::RefreshWorker" "Openstack::InfraManager::RefreshWorker.*"
ProcessMatch "MiqEmsRefreshWorkerVmware" "MiqEmsRefreshWorkerVmware.*"
ProcessMatch "MiqEmsRefreshWorkerRedhat" "MiqEmsRefreshWorkerRedhat.*"
ProcessMatch "MiqEmsRefreshWorkerMicrosoft" "MiqEmsRefreshWorkerMicrosoft.*"
ProcessMatch "Foreman::ConfigurationManager::RefreshWorker" "Foreman::ConfigurationManager::RefreshWorker.*"
ProcessMatch "Foreman::ProvisioningManager::RefreshWorker" "Foreman::ProvisioningManager::RefreshWorker.*"
ProcessMatch "MiqEmsRefreshWorkerForemanConfiguration" "MiqEmsRefreshWorkerForemanConfiguration.*"
ProcessMatch "MiqEmsRefreshWorkerForemanProvisioning" "MiqEmsRefreshWorkerForemanProvisioning.*"
ProcessMatch "Amazon::CloudManager::RefreshWorker" "Amazon::CloudManager::RefreshWorker.*"
ProcessMatch "Azure::CloudManager::RefreshWorker" "Azure::CloudManager::RefreshWorker.*"
ProcessMatch "Openstack::CloudManager::RefreshWorker" "Openstack::CloudManager::RefreshWorker.*"
ProcessMatch "MiqEmsRefreshWorkerAmazon" "MiqEmsRefreshWorkerAmazon.*"
ProcessMatch "MiqEmsRefreshWorkerOpenstack" "MiqEmsRefreshWorkerOpenstack.*"
ProcessMatch "Atomic::ContainerManager::RefreshWorker" "Atomic::ContainerManager::RefreshWorker.*"
ProcessMatch "Kubernetes::ContainerManager::RefreshWorker" "Kubernetes::ContainerManager::RefreshWorker.*"
ProcessMatch "Openshift::ContainerManager::RefreshWorker" "Openshift::ContainerManager::RefreshWorker.*"
ProcessMatch "OpenshiftEnterprise::ContainerManager::RefreshWorker" "OpenshiftEnterprise::ContainerManager::RefreshWorker.*"
# Provider EventCatcher Workers:
ProcessMatch "Vmware::InfraManager::EventCatcher" "Vmware::InfraManager::EventCatcher.*"
ProcessMatch "Redhat::InfraManager::EventCatcher" "Redhat::InfraManager::EventCatcher.*"
ProcessMatch "Openstack::InfraManager::EventCatcher" "Openstack::InfraManager::EventCatcher.*"
ProcessMatch "MiqEventCatcherVmware" "MiqEventCatcherVmware.*"
ProcessMatch "MiqEventCatcherRedhat" "MiqEventCatcherRedhat.*"
ProcessMatch "Amazon::CloudManager::EventCatcher" "Amazon::CloudManager::EventCatcher.*"
ProcessMatch "Azure::CloudManager::EventCatcher" "Azure::CloudManager::EventCatcher.*"
ProcessMatch "Openstack::CloudManager::EventCatcher" "Openstack::CloudManager::EventCatcher.*"
ProcessMatch "MiqEventCatcherAmazon" "MiqEventCatcherAmazon.*"
ProcessMatch "MiqEventCatcherOpenstack" "MiqEventCatcherOpenstack.*"
ProcessMatch "Atomic::ContainerManager::EventCatcher" "Atomic::ContainerManager::EventCatcher.*"
ProcessMatch "Kubernetes::ContainerManager::EventCatcher" "Kubernetes::ContainerManager::EventCatcher.*"
ProcessMatch "Openshift::ContainerManager::EventCatcher" "Openshift::ContainerManager::EventCatcher.*"
ProcessMatch "OpenshiftEnterprise::ContainerManager::EventCatcher" "OpenshiftEnterprise::ContainerManager::EventCatcher.*"
# Provider MetricsCollector Workers:
ProcessMatch "Vmware::InfraManager::MetricsCollectorWorker" "Vmware::InfraManager::MetricsCollectorWorker.*"
ProcessMatch "Redhat::InfraManager::MetricsCollectorWorker" "Redhat::InfraManager::MetricsCollectorWorker.*"
ProcessMatch "MiqEmsMetricsCollectorWorkerVmware" "MiqEmsMetricsCollectorWorkerVmware.*"
ProcessMatch "MiqEmsMetricsCollectorWorkerRedhat" "MiqEmsMetricsCollectorWorkerRedhat.*"
ProcessMatch "Amazon::CloudManager::MetricsCollectorWorker" "Amazon::CloudManager::MetricsCollectorWorker.*"
ProcessMatch "Openstack::CloudManager::MetricsCollectorWorker" "Openstack::CloudManager::MetricsCollectorWorker.*"
ProcessMatch "MiqEmsMetricsCollectorWorkerAmazon" "MiqEmsMetricsCollectorWorkerAmazon.*"
ProcessMatch "MiqEmsMetricsCollectorWorkerOpenstack" "MiqEmsMetricsCollectorWorkerOpenstack.*"
ProcessMatch "Atomic::ContainerManager::MetricsCollectorWorker" "Atomic::ContainerManager::MetricsCollectorWorker.*"
ProcessMatch "Kubernetes::ContainerManager::MetricsCollectorWorker" "Kubernetes::ContainerManager::MetricsCollectorWorker.*"
ProcessMatch "Openshift::ContainerManager::MetricsCollectorWorker" "Openshift::ContainerManager::MetricsCollectorWorker.*"
ProcessMatch "OpenshiftEnterprise::ContainerManager::MetricsCollectorWorker" "OpenshiftEnterprise::ContainerManager::MetricsCollectorWorker.*"
ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf"
Process "httpd"
Process "memcached"
ProcessMatch "postgres" "postgres.*"
# Catch all-other ruby processes:
Process "ruby"
</Plugin>
<Plugin swap>
ReportBytes true
ValuesPercentage true
</Plugin>
<Plugin "tail">
<File "/var/www/miq/vmdb/log/api.log">
Instance "api"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/www/miq/vmdb/log/appliance_console.log">
Instance "appliance_console"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/www/miq/vmdb/log/audit.log">
Instance "audit"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/www/miq/vmdb/log/automation.log">
Instance "automation"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/www/miq/vmdb/log/aws.log">
Instance "aws"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/www/miq/vmdb/log/evm.log">
Instance "evm"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/www/miq/vmdb/log/fog.log">
Instance "fog"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/www/miq/vmdb/log/kubernetes.log">
Instance "kubernetes"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/www/miq/vmdb/log/policy.log">
Instance "policy"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/www/miq/vmdb/log/production.log">
Instance "production"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/www/miq/vmdb/log/rhevm.log">
Instance "rhevm"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/www/miq/vmdb/log/scvmm.log">
Instance "scvmm"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/www/miq/vmdb/log/vim.log">
Instance "vim"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
</Plugin>
# Include other collectd configuration files
Include "/etc/collectd.d"

View File

@ -0,0 +1,65 @@
# Installed by Browbeat Ansible Installer
# Config type: {{config_type}}
# Interval default is 10s
Interval {{collectd_interval}}
# Hostname for this machine, if not defined, use gethostname(2) system call
Hostname "{{inventory_hostname}}"
# Allow collectd to log
LoadPlugin syslog
# Loaded Plugins:
LoadPlugin write_graphite
LoadPlugin cpu
LoadPlugin df
LoadPlugin disk
LoadPlugin interface
LoadPlugin irq
LoadPlugin load
LoadPlugin memory
LoadPlugin numa
LoadPlugin processes
LoadPlugin swap
LoadPlugin turbostat
LoadPlugin uptime
# Graphite Host Configuration
<Plugin write_graphite>
<Carbon>
Host "{{graphite_host}}"
Port "2003"
Prefix "{{graphite_prefix}}."
Protocol "tcp"
LogSendErrors true
StoreRates true
AlwaysAppendDS false
EscapeCharacter "_"
</Carbon>
</Plugin>
<Plugin df>
ValuesPercentage true
</Plugin>
<Plugin disk>
Disk "/^[hsv]d[a-z]+[0-9]?$/"
IgnoreSelected false
</Plugin>
<Plugin processes>
ProcessMatch "carbon-cache" "python.+carbon-cache"
Process "grafana-server"
Process "httpd"
# Collect on collectd process
ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf"
</Plugin>
<Plugin swap>
ReportBytes true
ValuesPercentage true
</Plugin>
# Include other collectd configuration files
Include "/etc/collectd.d"

View File

@ -0,0 +1,63 @@
# Installed by Browbeat Ansible Installer
# Config type: {{config_type}}
# Interval default is 10s
Interval {{collectd_interval}}
# Hostname for this machine, if not defined, use gethostname(2) system call
Hostname "{{inventory_hostname}}"
# Allow collectd to log
LoadPlugin syslog
# Loaded Plugins:
LoadPlugin write_graphite
LoadPlugin cpu
LoadPlugin df
LoadPlugin disk
LoadPlugin interface
LoadPlugin irq
LoadPlugin load
LoadPlugin memory
LoadPlugin processes
LoadPlugin swap
LoadPlugin uptime
# Graphite Host Configuration
<Plugin write_graphite>
<Carbon>
Host "{{graphite_host}}"
Port "2003"
Prefix "{{graphite_prefix}}."
Protocol "tcp"
LogSendErrors true
StoreRates true
AlwaysAppendDS false
EscapeCharacter "_"
</Carbon>
</Plugin>
<Plugin df>
ValuesPercentage true
</Plugin>
<Plugin disk>
Disk "/^[hsv]d[a-z]+[0-9]?$/"
IgnoreSelected false
</Plugin>
<Plugin processes>
# Example, collect on all httpd processes:
Process "httpd"
# Collect on collectd process
ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf"
</Plugin>
<Plugin swap>
ReportBytes true
ValuesPercentage true
</Plugin>
# Include other collectd configuration files
Include "/etc/collectd.d"

View File

@ -0,0 +1,105 @@
# Installed by Browbeat Ansible Installer
# Config type: {{config_type}}
# Interval default is 10s
Interval {{collectd_interval}}
# Hostname for this machine, if not defined, use gethostname(2) system call
Hostname "{{inventory_hostname}}"
# Allow collectd to log
LoadPlugin syslog
# Loaded Plugins:
LoadPlugin write_graphite
LoadPlugin cpu
LoadPlugin df
LoadPlugin disk
LoadPlugin interface
LoadPlugin irq
LoadPlugin load
LoadPlugin memory
LoadPlugin numa
LoadPlugin processes
LoadPlugin swap
LoadPlugin turbostat
LoadPlugin uptime
# Graphite Host Configuration
<Plugin write_graphite>
<Carbon>
Host "{{graphite_host}}"
Port "2003"
Prefix "{{graphite_prefix}}."
Protocol "tcp"
LogSendErrors true
StoreRates true
AlwaysAppendDS false
EscapeCharacter "_"
</Carbon>
</Plugin>
<Plugin df>
ValuesPercentage true
</Plugin>
<Plugin disk>
Disk "/^[hsv]d[a-z]+[0-9]?$/"
IgnoreSelected false
</Plugin>
<Plugin processes>
# DynFlow
Process "dynflow_executor"
Process "dynflow_executor_monitor"
# Elasticsearch
ProcessMatch "Elasticsearch" ".*elasticsearch.*"
# Apache
Process "httpd"
# Mongodb
Process "mongod"
# Passenger
ProcessMatch "Passenger-Forman" "Passenger.+RackApp:.+/usr/share/foreman"
ProcessMatch "Passenger-Puppet" "Passenger.+RackApp:.+/etc/puppet/rack"
Process "PassengerHelperAgent"
Process "PassengerLoggingAgent"
Process "PassengerWatchdog"
# Postgres database
ProcessMatch "postgres" "postgres.*"
# Pulp
ProcessMatch "Pulp-Scheduler" "/usr/bin/python.+/usr/bin/celery.+beat.+--scheduler=pulp.server.async.scheduler.Scheduler"
ProcessMatch "Pulp-Resource-Manager" "/usr/bin/python.+/usr/bin/celery.+worker.+-A.+pulp.server.async.app.+-n.+resource_manager"
ProcessMatch "Pulp-Resource-Worker" "/usr/bin/python.+/usr/bin/celery.+worker.+-n.+reserved_resource_worker"
# Puppet Agent
ProcessMatch "Puppet-Agent" "/usr/bin/ruby.+/usr/bin/puppet.+agent.+--no-daemonize"
# Qpidd + dispatch router
Process "qdrouterd"
Process "qpidd"
# Foreman smart proxy
ProcessMatch "Foreman-SmartProxy" "ruby.+/usr/share/foreman-proxy/bin/smart-proxy"
# Tomcat
ProcessMatch "Tomcat" ".*tomcat.*"
Process "ruby"
# Collect on collectd process
ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf"
</Plugin>
<Plugin swap>
ReportBytes true
ValuesPercentage true
</Plugin>
# Include other collectd configuration files
Include "/etc/collectd.d"

View File

@ -22,7 +22,7 @@
- name: Configure collectd.conf - name: Configure collectd.conf
template: template:
src=collectd.conf.j2 src={{config_type}}.collectd.conf.j2
dest=/etc/collectd.conf dest=/etc/collectd.conf
owner=root owner=root
group=root group=root

View File

@ -0,0 +1,101 @@
# Installed by Browbeat Ansible Installer
# Config type: {{config_type}}
# Interval default is 10s
Interval {{collectd_interval}}
# Hostname for this machine, if not defined, use gethostname(2) system call
Hostname "{{inventory_hostname}}"
# Allow collectd to log
LoadPlugin syslog
# Loaded Plugins:
LoadPlugin write_graphite
LoadPlugin cpu
LoadPlugin conntrack
LoadPlugin df
LoadPlugin disk
LoadPlugin exec
LoadPlugin interface
LoadPlugin irq
LoadPlugin load
LoadPlugin match_regex
LoadPlugin memory
LoadPlugin numa
LoadPlugin processes
LoadPlugin swap
LoadPlugin tail
LoadPlugin turbostat
LoadPlugin uptime
PreCacheChain "PreCache"
<Chain "PreCache">
<Rule "ignore_tap">
<Match "regex">
Plugin "^interface$"
PluginInstance "^tap*"
</Match>
Target "stop"
</Rule>
<Rule "ignore_interfaces_q">
<Match "regex">
Plugin "^interface$"
PluginInstance "^q.*"
</Match>
Target "stop"
</Rule>
Target "return"
</Chain>
# Graphite Host Configuration
<Plugin write_graphite>
<Carbon>
Host "{{graphite_host}}"
Port "2003"
Prefix "{{graphite_prefix}}."
Protocol "tcp"
LogSendErrors true
StoreRates true
AlwaysAppendDS false
EscapeCharacter "_"
</Carbon>
</Plugin>
<Plugin df>
ValuesPercentage true
</Plugin>
<Plugin disk>
Disk "/^[hsv]d[a-z]+[0-9]?$/"
IgnoreSelected false
</Plugin>
<Plugin processes>
# Ceph
ProcessMatch "ceph-mon" "^/usr/bin/ceph-mon"
ProcessMatch "ceph-osd" "^/usr/bin/ceph-osd"
ProcessMatch "diamond" "python.+diamond"
ProcessMatch "salt-minion" "python.+salt-minion"
ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf"
Process "corosync"
Process "httpd"
Process "memcached"
ProcessMatch "ovs-vswitchd" "ovs-vswitchd.+openvswitch"
ProcessMatch "ovsdb-server" "ovsdb-server.+openvswitch"
ProcessMatch "qemu-kvm" "/usr/libexec/qemu-kvm"
</Plugin>
<Plugin swap>
ReportBytes true
ValuesPercentage true
</Plugin>
# Tail plugin configuration
<Plugin "tail">
{# Add ceph logs to tail #}
</Plugin>
# Include other collectd configuration files
Include "/etc/collectd.d"

View File

@ -0,0 +1,200 @@
# Installed by Browbeat Ansible Installer
# Config type: {{config_type}}
# Interval default is 10s
Interval {{collectd_interval}}
# Hostname for this machine, if not defined, use gethostname(2) system call
Hostname "{{inventory_hostname}}"
# Allow collectd to log
LoadPlugin syslog
# Loaded Plugins:
LoadPlugin write_graphite
LoadPlugin cpu
LoadPlugin conntrack
LoadPlugin df
LoadPlugin disk
LoadPlugin exec
LoadPlugin interface
LoadPlugin irq
LoadPlugin load
LoadPlugin match_regex
LoadPlugin memory
LoadPlugin numa
LoadPlugin processes
LoadPlugin swap
LoadPlugin tail
LoadPlugin turbostat
LoadPlugin uptime
PreCacheChain "PreCache"
<Chain "PreCache">
<Rule "ignore_tap">
<Match "regex">
Plugin "^interface$"
PluginInstance "^tap*"
</Match>
Target "stop"
</Rule>
<Rule "ignore_interfaces_q">
<Match "regex">
Plugin "^interface$"
PluginInstance "^q.*"
</Match>
Target "stop"
</Rule>
Target "return"
</Chain>
# Graphite Host Configuration
<Plugin write_graphite>
<Carbon>
Host "{{graphite_host}}"
Port "2003"
Prefix "{{graphite_prefix}}."
Protocol "tcp"
LogSendErrors true
StoreRates true
AlwaysAppendDS false
EscapeCharacter "_"
</Carbon>
</Plugin>
<Plugin df>
ValuesPercentage true
</Plugin>
<Plugin disk>
Disk "/^[hsv]d[a-z]+[0-9]?$/"
IgnoreSelected false
</Plugin>
<Plugin processes>
# Ceilometer
ProcessMatch "ceilometer-agent-central" "python.+ceilometer-agent-central"
ProcessMatch "ceilometer-agent-compute" "python.+ceilometer-agent-compute"
ProcessMatch "ceilometer-agent-notification" "python.+ceilometer-agent-notification"
ProcessMatch "ceilometer-alarm-evaluator" "python.+ceilometer-alarm-evaluator"
ProcessMatch "ceilometer-alarm-notifier" "python.+ceilometer-alarm-notifier"
ProcessMatch "ceilometer-api" "python.+ceilometer-api"
ProcessMatch "ceilometer-collector" "python.+ceilometer-collector"
# Ceph
ProcessMatch "ceph-mon" "^/usr/bin/ceph-mon"
ProcessMatch "ceph-osd" "^/usr/bin/ceph-osd"
ProcessMatch "diamond" "python.+diamond"
ProcessMatch "salt-minion" "python.+salt-minion"
# Cinder
ProcessMatch "cinder-api" "python.+cinder-api"
ProcessMatch "cinder-scheduler" "python.+cinder-scheduler"
ProcessMatch "cinder-volume" "python.+cinder-volume"
# Glance
ProcessMatch "glance-api" "python.+glance-api"
ProcessMatch "glance-registry" "python.+glance-registry"
# Heat
ProcessMatch "heat-api" "python.+heat-api"
ProcessMatch "heat-api-cfn" "python.+heat-api-cfn"
ProcessMatch "heat-api-cloudwatch" "python.+heat-api-cloudwatch"
ProcessMatch "heat-engine" "python.+heat-engine"
# Ironic
ProcessMatch "ironic-api" "python.+ironic-api"
ProcessMatch "ironic-conductor" "python.+ironic-conductor"
# Keystone
ProcessMatch "keystone-all" "python.+keystone-all"
# Neutron
ProcessMatch "neutron-dhcp-agent" "python.+neutron-dhcp-agent"
ProcessMatch "neutron-l3-agent" "python.+neutron-l3-agent"
ProcessMatch "neutron-metadata-agent" "python.+neutron-metadata-agent"
ProcessMatch "neutron-ns-metadata-proxy" "python.+neutron-ns-metadata-proxy"
ProcessMatch "neutron-openvswitch-agent" "python.+neutron-openvswitch-agent"
ProcessMatch "neutron-server" "python.+neutron-server"
# Nova Processes
ProcessMatch "nova-api" "python.+nova-api"
ProcessMatch "nova-cert" "python.+nova-cert"
ProcessMatch "nova-compute" "python.+nova-compute"
ProcessMatch "nova-conductor" "python.+nova-conductor"
ProcessMatch "nova-consoleauth" "python.+nova-consoleauth"
ProcessMatch "nova-novncproxy" "python.+nova-novncproxy"
ProcessMatch "nova-scheduler" "python.+nova-scheduler"
# Swift
ProcessMatch "swift-account-auditor" "python.+swift-account-auditor"
ProcessMatch "swift-account-reaper" "python.+swift-account-reaper"
ProcessMatch "swift-account-replicator" "python.+swift-account-replicator"
ProcessMatch "swift-account-server" "python.+swift-account-server"
ProcessMatch "swift-container-auditor" "python.+swift-container-auditor"
ProcessMatch "swift-container-updater" "python.+swift-container-updater"
ProcessMatch "swift-container-replicator" "python.+swift-container-replicator"
ProcessMatch "swift-container-server" "python.+swift-container-server"
ProcessMatch "swift-object-auditor" "python.+swift-object-auditor"
ProcessMatch "swift-object-updater" "python.+swift-object-updater"
ProcessMatch "swift-object-replicator" "python.+swift-object-replicator"
ProcessMatch "swift-object-server" "python.+swift-object-server"
ProcessMatch "swift-proxy-server" "python.+swift-proxy-server"
# Pacemaker
ProcessMatch "pacemakerd" "/usr/sbin/pacemakerd"
ProcessMatch "cib" "/usr/libexec/pacemaker/cib"
ProcessMatch "stonithd" "/usr/libexec/pacemaker/stonithd"
ProcessMatch "attrd" "/usr/libexec/pacemaker/attrd"
ProcessMatch "pengine" "/usr/libexec/pacemaker/pengine"
ProcessMatch "crmd" "/usr/libexec/pacemaker/crmd"
ProcessMatch "lrmd" "/usr/libexec/pacemaker/lrmd"
ProcessMatch "pcsd" "^/usr/bin/ruby.+/usr/lib/pcsd"
ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf"
Process "corosync"
ProcessMatch "dnsmasq" "^dnsmasq.+"
ProcessMatch "dnsmasq-ironic" "/sbin/dnsmasq.+/etc/ironic-discoverd/dnsmasq.conf"
ProcessMatch "haproxy" "/usr/sbin/haproxy.+/etc/haproxy/haproxy.cfg"
Process "httpd"
Process "memcached"
Process "mongod"
ProcessMatch "mysqld" "/usr/libexec/mysqld"
ProcessMatch "ovs-vswitchd" "ovs-vswitchd.+openvswitch"
ProcessMatch "ovsdb-server" "ovsdb-server.+openvswitch"
ProcessMatch "qemu-kvm" "/usr/libexec/qemu-kvm"
ProcessMatch "rabbitmq" "/usr/lib64/erlang/erts-.+/bin/beam.smp"
Process "redis-server"
ProcessMatch "tuskar-api" "python.+tuskar-api"
</Plugin>
<Plugin swap>
ReportBytes true
ValuesPercentage true
</Plugin>
# Tail plugin configuration
<Plugin "tail">
<File "/var/log/nova/nova-compute.log">
Instance "nova-compute"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/neutron/openvswitch-agent.log">
Instance "neutron-openvswitch-agent"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
</Plugin>
# Include other collectd configuration files
Include "/etc/collectd.d"

View File

@ -0,0 +1,296 @@
# Installed by Browbeat Ansible Installer
# Config type: {{config_type}}
# Interval default is 10s
Interval {{collectd_interval}}
# Hostname for this machine, if not defined, use gethostname(2) system call
Hostname "{{inventory_hostname}}"
# Allow collectd to log
LoadPlugin syslog
# Loaded Plugins:
LoadPlugin write_graphite
LoadPlugin cpu
LoadPlugin conntrack
LoadPlugin df
LoadPlugin disk
LoadPlugin exec
LoadPlugin interface
LoadPlugin irq
LoadPlugin load
LoadPlugin match_regex
LoadPlugin memory
LoadPlugin numa
LoadPlugin processes
LoadPlugin swap
LoadPlugin tail
LoadPlugin turbostat
LoadPlugin uptime
PreCacheChain "PreCache"
<Chain "PreCache">
<Rule "ignore_tap">
<Match "regex">
Plugin "^interface$"
PluginInstance "^tap*"
</Match>
Target "stop"
</Rule>
<Rule "ignore_interfaces_q">
<Match "regex">
Plugin "^interface$"
PluginInstance "^q.*"
</Match>
Target "stop"
</Rule>
Target "return"
</Chain>
# Graphite Host Configuration
<Plugin write_graphite>
<Carbon>
Host "{{graphite_host}}"
Port "2003"
Prefix "{{graphite_prefix}}."
Protocol "tcp"
LogSendErrors true
StoreRates true
AlwaysAppendDS false
EscapeCharacter "_"
</Carbon>
</Plugin>
<Plugin df>
ValuesPercentage true
</Plugin>
<Plugin disk>
Disk "/^[hsv]d[a-z]+[0-9]?$/"
IgnoreSelected false
</Plugin>
#<Plugin exec>
# Exec nobody "/usr/local/bin/collectd-redis.sh"
#</Plugin>
<Plugin processes>
# Ceilometer
ProcessMatch "ceilometer-agent-central" "python.+ceilometer-agent-central"
ProcessMatch "ceilometer-agent-compute" "python.+ceilometer-agent-compute"
ProcessMatch "ceilometer-agent-notification" "python.+ceilometer-agent-notification"
ProcessMatch "ceilometer-alarm-evaluator" "python.+ceilometer-alarm-evaluator"
ProcessMatch "ceilometer-alarm-notifier" "python.+ceilometer-alarm-notifier"
ProcessMatch "ceilometer-api" "python.+ceilometer-api"
ProcessMatch "ceilometer-collector" "python.+ceilometer-collector"
# Ceph
ProcessMatch "ceph-mon" "^/usr/bin/ceph-mon"
ProcessMatch "ceph-osd" "^/usr/bin/ceph-osd"
ProcessMatch "diamond" "python.+diamond"
ProcessMatch "salt-minion" "python.+salt-minion"
# Cinder
ProcessMatch "cinder-api" "python.+cinder-api"
ProcessMatch "cinder-scheduler" "python.+cinder-scheduler"
ProcessMatch "cinder-volume" "python.+cinder-volume"
# Glance
ProcessMatch "glance-api" "python.+glance-api"
ProcessMatch "glance-registry" "python.+glance-registry"
# Heat
ProcessMatch "heat-api" "python.+heat-api"
ProcessMatch "heat-api-cfn" "python.+heat-api-cfn"
ProcessMatch "heat-api-cloudwatch" "python.+heat-api-cloudwatch"
ProcessMatch "heat-engine" "python.+heat-engine"
# Ironic
ProcessMatch "ironic-api" "python.+ironic-api"
ProcessMatch "ironic-conductor" "python.+ironic-conductor"
# Keystone
ProcessMatch "keystone-all" "python.+keystone-all"
# Neutron
ProcessMatch "neutron-dhcp-agent" "python.+neutron-dhcp-agent"
ProcessMatch "neutron-l3-agent" "python.+neutron-l3-agent"
ProcessMatch "neutron-metadata-agent" "python.+neutron-metadata-agent"
ProcessMatch "neutron-ns-metadata-proxy" "python.+neutron-ns-metadata-proxy"
ProcessMatch "neutron-openvswitch-agent" "python.+neutron-openvswitch-agent"
ProcessMatch "neutron-server" "python.+neutron-server"
# Nova Processes
ProcessMatch "nova-api" "python.+nova-api"
ProcessMatch "nova-cert" "python.+nova-cert"
ProcessMatch "nova-compute" "python.+nova-compute"
ProcessMatch "nova-conductor" "python.+nova-conductor"
ProcessMatch "nova-consoleauth" "python.+nova-consoleauth"
ProcessMatch "nova-novncproxy" "python.+nova-novncproxy"
ProcessMatch "nova-scheduler" "python.+nova-scheduler"
# Swift
ProcessMatch "swift-account-auditor" "python.+swift-account-auditor"
ProcessMatch "swift-account-reaper" "python.+swift-account-reaper"
ProcessMatch "swift-account-replicator" "python.+swift-account-replicator"
ProcessMatch "swift-account-server" "python.+swift-account-server"
ProcessMatch "swift-container-auditor" "python.+swift-container-auditor"
ProcessMatch "swift-container-updater" "python.+swift-container-updater"
ProcessMatch "swift-container-replicator" "python.+swift-container-replicator"
ProcessMatch "swift-container-server" "python.+swift-container-server"
ProcessMatch "swift-object-auditor" "python.+swift-object-auditor"
ProcessMatch "swift-object-updater" "python.+swift-object-updater"
ProcessMatch "swift-object-replicator" "python.+swift-object-replicator"
ProcessMatch "swift-object-server" "python.+swift-object-server"
ProcessMatch "swift-proxy-server" "python.+swift-proxy-server"
# Pacemaker
ProcessMatch "pacemakerd" "/usr/sbin/pacemakerd"
ProcessMatch "cib" "/usr/libexec/pacemaker/cib"
ProcessMatch "stonithd" "/usr/libexec/pacemaker/stonithd"
ProcessMatch "attrd" "/usr/libexec/pacemaker/attrd"
ProcessMatch "pengine" "/usr/libexec/pacemaker/pengine"
ProcessMatch "crmd" "/usr/libexec/pacemaker/crmd"
ProcessMatch "lrmd" "/usr/libexec/pacemaker/lrmd"
ProcessMatch "pcsd" "^/usr/bin/ruby.+/usr/lib/pcsd"
ProcessMatch "collectd" "/usr/sbin/collectd.+-C.+/etc/collectd.conf"
Process "corosync"
ProcessMatch "dnsmasq" "^dnsmasq.+"
ProcessMatch "dnsmasq-ironic" "/sbin/dnsmasq.+/etc/ironic-discoverd/dnsmasq.conf"
ProcessMatch "haproxy" "/usr/sbin/haproxy.+/etc/haproxy/haproxy.cfg"
Process "httpd"
Process "memcached"
Process "mongod"
ProcessMatch "mysqld" "/usr/libexec/mysqld"
ProcessMatch "ovs-vswitchd" "ovs-vswitchd.+openvswitch"
ProcessMatch "ovsdb-server" "ovsdb-server.+openvswitch"
ProcessMatch "qemu-kvm" "/usr/libexec/qemu-kvm"
ProcessMatch "rabbitmq" "/usr/lib64/erlang/erts-.+/bin/beam.smp"
Process "redis-server"
ProcessMatch "tuskar-api" "python.+tuskar-api"
</Plugin>
<Plugin swap>
ReportBytes true
ValuesPercentage true
</Plugin>
# Tail plugin configuration
<Plugin "tail">
<File "/var/log/keystone/keystone.log">
Instance "keystone"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/nova/nova-api.log">
Instance "nova-api"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/nova/nova-conductor.log">
Instance "nova-conductor"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/nova/nova-scheduler.log">
Instance "nova-scheduler"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/neutron/dhcp-agent.log">
Instance "neutron-dhcp-agent"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/neutron/l3-agent.log">
Instance "neutron-l3-agent"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/neutron/metadata-agent.log">
Instance "neutron-metadata-agent"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/neutron/openvswitch-agent.log">
Instance "neutron-openvswitch-agent"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/neutron/server.log">
Instance "neutron-server"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/cinder/api.log">
Instance "cinder-api"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/cinder/scheduler.log">
Instance "cinder-scheduler"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/cinder/volume.log">
Instance "cinder-volume"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
</Plugin>
# Include other collectd configuration files
Include "/etc/collectd.d"

View File

@ -1,4 +1,5 @@
# Installed by Browbeat Ansible Installer # Installed by Browbeat Ansible Installer
# Config type: {{config_type}}
# Interval default is 10s # Interval default is 10s
Interval {{collectd_interval}} Interval {{collectd_interval}}
@ -24,10 +25,7 @@ LoadPlugin memory
LoadPlugin numa LoadPlugin numa
LoadPlugin processes LoadPlugin processes
LoadPlugin swap LoadPlugin swap
{% if 'controller' in group_names or 'undercloud' in group_names %}
LoadPlugin tail LoadPlugin tail
{% endif %}
#LoadPlugin tcpconns
LoadPlugin turbostat LoadPlugin turbostat
LoadPlugin uptime LoadPlugin uptime
@ -64,13 +62,6 @@ PreCacheChain "PreCache"
</Carbon> </Carbon>
</Plugin> </Plugin>
# Collectd to graphite uses derive type so no need for ValuesPercentage
#<Plugin cpu>
# ReportByCpu true
# ReportByState true
# ValuesPercentage true
#</Plugin>
<Plugin df> <Plugin df>
ValuesPercentage true ValuesPercentage true
</Plugin> </Plugin>
@ -80,10 +71,6 @@ PreCacheChain "PreCache"
IgnoreSelected false IgnoreSelected false
</Plugin> </Plugin>
#<Plugin exec>
# Exec nobody "/usr/local/bin/collectd-redis.sh"
#</Plugin>
<Plugin processes> <Plugin processes>
# Ceilometer # Ceilometer
ProcessMatch "ceilometer-agent-central" "python.+ceilometer-agent-central" ProcessMatch "ceilometer-agent-central" "python.+ceilometer-agent-central"
@ -186,10 +173,8 @@ PreCacheChain "PreCache"
ValuesPercentage true ValuesPercentage true
</Plugin> </Plugin>
# Tail plugin configuration # Tail plugin configuration
<Plugin "tail"> <Plugin "tail">
{% if 'undercloud' in group_names %}
<File "/var/log/keystone/keystone.log"> <File "/var/log/keystone/keystone.log">
Instance "keystone" Instance "keystone"
<Match> <Match>
@ -320,150 +305,7 @@ PreCacheChain "PreCache"
Instance "total" Instance "total"
</Match> </Match>
</File> </File>
{% endif %}
{% if 'controller' in group_names %}
<File "/var/log/keystone/keystone.log">
Instance "keystone"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/nova/nova-api.log">
Instance "nova-api"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/nova/nova-conductor.log">
Instance "nova-conductor"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/nova/nova-scheduler.log">
Instance "nova-scheduler"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/neutron/dhcp-agent.log">
Instance "neutron-dhcp-agent"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/neutron/l3-agent.log">
Instance "neutron-l3-agent"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/neutron/metadata-agent.log">
Instance "neutron-metadata-agent"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/neutron/openvswitch-agent.log">
Instance "neutron-openvswitch-agent"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/neutron/server.log">
Instance "neutron-server"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/cinder/api.log">
Instance "cinder-api"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/cinder/scheduler.log">
Instance "cinder-scheduler"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/cinder/volume.log">
Instance "cinder-volume"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
{% endif %}
{% if 'compute' in group_names %}
<File "/var/log/nova/nova-compute.log">
Instance "nova-compute"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
<File "/var/log/neutron/openvswitch-agent.log">
Instance "neutron-openvswitch-agent"
<Match>
Regex " ERROR "
DSType "CounterInc"
Type "counter"
Instance "total"
</Match>
</File>
{% endif %}
{% if 'ceph' in group_names %}
{# Add ceph logs to tail #}
{% endif %}
</Plugin> </Plugin>
#<Plugin tcpconns>
# ListeningPorts true
#</Plugin>
# Include other collectd configuration files # Include other collectd configuration files
Include "/etc/collectd.d" Include "/etc/collectd.d"