Merge "Added playbook to deploy Kapacitor"
This commit is contained in:
commit
763125e4b3
41
cluster_metrics/playbook-kapacitor.yml
Normal file
41
cluster_metrics/playbook-kapacitor.yml
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
# Copyright 2016, Rackspace US, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
- name: Deploy kapacitor
|
||||
hosts: "cluster-metrics"
|
||||
gather_facts: true
|
||||
user: root
|
||||
tasks:
|
||||
- name: Add kapacitor repo
|
||||
apt_repository:
|
||||
repo: "deb https://repos.influxdata.com/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable"
|
||||
state: "present"
|
||||
- name: Install kapacitor
|
||||
apt:
|
||||
pkg: "kapacitor"
|
||||
state: "latest"
|
||||
- name: Drop kapacitor config file
|
||||
template:
|
||||
src: templates/kapacitor.conf.j2
|
||||
dest: /etc/kapacitor/kapacitor.conf
|
||||
- name: Enable and restart kapacitor
|
||||
service:
|
||||
name: "kapacitor"
|
||||
enabled: true
|
||||
state: restarted
|
||||
- name: Start kapacitor server
|
||||
shell: kapacitord -config /etc/kapacitor/kapacitor.conf -log-file /var/log/kapacitor/kapacitor.log &
|
||||
vars_files:
|
||||
- vars.yml
|
@ -8,7 +8,8 @@ Gather and visualize cluster wide metrics
|
||||
About this repository
|
||||
---------------------
|
||||
|
||||
This set of playbooks will deploy InfluxDB, Telegraf, and Grafana for the purpose of collecting metrics on an OpenStack cluster.
|
||||
This set of playbooks will deploy InfluxDB, Telegraf, Grafana and Kapacitor for the purpose of collecting
|
||||
metrics on an OpenStack cluster.
|
||||
|
||||
Process
|
||||
-------
|
||||
@ -66,3 +67,9 @@ If you're proxy'ing grafana you will need to provide the full ``root_path`` when
|
||||
openstack-ansible playbook-grafana.yml -e galera_root_user=root -e galera_address='127.0.0.1'
|
||||
|
||||
Once that last playbook is completed you will have a functioning InfluxDB, Telegraf, and Grafana metric collection system active and collecting metrics. Grafana will need some setup, however functional dash boards have been provided in the ``grafana-dashboards`` directory.
|
||||
|
||||
Install Kapacitor
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
openstack-ansible playbook-kapacitor.yml
|
||||
|
172
cluster_metrics/templates/kapacitor.conf.j2
Normal file
172
cluster_metrics/templates/kapacitor.conf.j2
Normal file
@ -0,0 +1,172 @@
|
||||
#jinja2:variable_start_string:'[%' , variable_end_string:'%]', trim_blocks: False
|
||||
hostname = "localhost"
|
||||
data_dir = "/var/lib/kapacitor"
|
||||
|
||||
[http]
|
||||
bind-address = ":[% kapacitor_port %]"
|
||||
auth-enabled = false
|
||||
log-enabled = true
|
||||
write-tracing = false
|
||||
pprof-enabled = false
|
||||
https-enabled = false
|
||||
https-certificate = "/etc/ssl/kapacitor.pem"
|
||||
shutdown-timeout = "10s"
|
||||
shared-secret = ""
|
||||
|
||||
[replay]
|
||||
dir = "/var/lib/kapacitor/replay"
|
||||
|
||||
[storage]
|
||||
boltdb = "/var/lib/kapacitor/kapacitor.db"
|
||||
|
||||
[task]
|
||||
dir = "/var/lib/kapacitor/tasks"
|
||||
snapshot-interval = "1m0s"
|
||||
|
||||
[[influxdb]]
|
||||
enabled = true
|
||||
name = "[% influxdb_db_name %]"
|
||||
default = true
|
||||
urls = ["http://[% hostvars[groups['cluster-metrics'][0]]['ansible_ssh_host'] %]:[% influxdb_port %]"]
|
||||
username = "[% influxdb_db_root_name %]"
|
||||
password = "[% influxdb_db_root_password %]"
|
||||
ssl-ca = ""
|
||||
ssl-cert = ""
|
||||
ssl-key = ""
|
||||
insecure-skip-verify = false
|
||||
timeout = "0"
|
||||
disable-subscriptions = false
|
||||
subscription-protocol = "http"
|
||||
udp-bind = ""
|
||||
udp-buffer = 1000
|
||||
udp-read-buffer = 0
|
||||
startup-timeout = "5m0s"
|
||||
subscriptions-sync-interval = "1m0s"
|
||||
[influxdb.subscriptions]
|
||||
[influxdb.excluded-subscriptions]
|
||||
_kapacitor = ["autogen"]
|
||||
|
||||
[logging]
|
||||
file = "/var/log/kapacitor/kapacitor.log"
|
||||
level = "INFO"
|
||||
|
||||
[collectd]
|
||||
enabled = false
|
||||
bind-address = ":25826"
|
||||
database = "collectd"
|
||||
retention-policy = ""
|
||||
batch-size = 1000
|
||||
batch-pending = 5
|
||||
batch-timeout = "10s"
|
||||
read-buffer = 0
|
||||
typesdb = "/usr/share/collectd/types.db"
|
||||
|
||||
[opentsdb]
|
||||
enabled = false
|
||||
bind-address = ":4242"
|
||||
database = "opentsdb"
|
||||
retention-policy = ""
|
||||
consistency-level = "one"
|
||||
tls-enabled = false
|
||||
certificate = "/etc/ssl/influxdb.pem"
|
||||
batch-size = 1000
|
||||
batch-pending = 5
|
||||
batch-timeout = "1s"
|
||||
log-point-errors = true
|
||||
|
||||
[smtp]
|
||||
enabled = false
|
||||
host = "localhost"
|
||||
port = 25
|
||||
username = ""
|
||||
password = ""
|
||||
no-verify = false
|
||||
global = false
|
||||
state-changes-only = false
|
||||
from = ""
|
||||
idle-timeout = "30s"
|
||||
|
||||
[opsgenie]
|
||||
enabled = false
|
||||
api-key = ""
|
||||
url = "https://api.opsgenie.com/v1/json/alert"
|
||||
recovery_url = "https://api.opsgenie.com/v1/json/alert/note"
|
||||
global = false
|
||||
|
||||
[victorops]
|
||||
enabled = false
|
||||
api-key = ""
|
||||
routing-key = ""
|
||||
url = "https://alert.victorops.com/integrations/generic/20131114/alert"
|
||||
global = false
|
||||
|
||||
[pagerduty]
|
||||
enabled = false
|
||||
url = "https://events.pagerduty.com/generic/2010-04-15/create_event.json"
|
||||
service-key = ""
|
||||
global = false
|
||||
|
||||
[sensu]
|
||||
enabled = false
|
||||
addr = "sensu-client:3030"
|
||||
source = "Kapacitor"
|
||||
|
||||
[slack]
|
||||
enabled = false
|
||||
url = ""
|
||||
channel = ""
|
||||
global = false
|
||||
state-changes-only = false
|
||||
|
||||
[telegram]
|
||||
enabled = false
|
||||
url = "https://api.telegram.org/bot"
|
||||
token = ""
|
||||
chat-id = ""
|
||||
parse-mode = ""
|
||||
disable-web-page-preview = false
|
||||
disable-notification = false
|
||||
global = false
|
||||
state-changes-only = false
|
||||
|
||||
[hipchat]
|
||||
enabled = false
|
||||
url = "https://subdomain.hipchat.com/v2/room"
|
||||
token = ""
|
||||
room = ""
|
||||
global = false
|
||||
state-changes-only = false
|
||||
|
||||
[alerta]
|
||||
enabled = false
|
||||
url = ""
|
||||
token = ""
|
||||
environment = ""
|
||||
origin = "kapacitor"
|
||||
|
||||
[reporting]
|
||||
enabled = true
|
||||
url = "https://usage.influxdata.com"
|
||||
|
||||
[stats]
|
||||
enabled = true
|
||||
stats-interval = "10s"
|
||||
database = "_kapacitor"
|
||||
retention-policy = "autogen"
|
||||
timing-sample-rate = 0.1
|
||||
timing-movavg-size = 1000
|
||||
|
||||
[udf]
|
||||
[udf.functions]
|
||||
|
||||
[deadman]
|
||||
interval = "10s"
|
||||
threshold = 0.0
|
||||
id = "node 'NODE_NAME' in task '{{ .TaskName }}'"
|
||||
message = "{{ .ID }} is {{ if eq .Level \"OK\" }}alive{{ else }}dead{{ end }}: {{ index .Fields \"collected\" | printf \"%0.3f\" }} points/INTERVAL."
|
||||
global = false
|
||||
|
||||
[talk]
|
||||
enabled = false
|
||||
url = "https://jianliao.com/v2/services/webhook/uuid"
|
||||
author_name = "Kapacitor"
|
@ -32,3 +32,6 @@ influxdb_db_root_name: root
|
||||
influxdb_db_root_password: SuperSecrete
|
||||
influxdb_db_metric_user: openstack
|
||||
influxdb_db_metric_password: SuperDuperSecrete
|
||||
|
||||
# Kapacitor Vars
|
||||
kapacitor_port: 9092
|
||||
|
Loading…
Reference in New Issue
Block a user