163 lines
5.7 KiB
YAML
163 lines
5.7 KiB
YAML
- name: Installs DBs, kafka and other core dependencies.
|
|
hosts: mini-mon
|
|
sudo: yes
|
|
vars:
|
|
influxdb:
|
|
version: 0.8.1
|
|
raft_port: 9090
|
|
seed_servers: []
|
|
replication_factor: 1
|
|
mini_mon_host: 192.168.10.4
|
|
zookeeper_hosts: "{{mini_mon_host}}:2181"
|
|
pre_tasks:
|
|
- name: apt-get update
|
|
apt: update_cache=yes
|
|
tasks:
|
|
- name: Install postfix, needed by notification engine
|
|
apt: name=postfix state=present
|
|
- name: Install pip from apt
|
|
apt: name=python-pip state=present
|
|
- name: pip upgrade pip
|
|
pip: name=pip state=latest
|
|
- name: Install python-dev
|
|
apt: name=python-dev state=present
|
|
roles:
|
|
- {role: zookeeper, tags: [zookeeper]}
|
|
- {role: kafka, kafka_listen_address: "{{mini_mon_host}}", tags: [kafka]}
|
|
- {role: influxdb, tags: [influxdb]}
|
|
- {role: percona, mysql_root_password: password, percona_package: percona-xtradb-cluster-56, tags: [mysql, percona]}
|
|
|
|
- name: Sets up schema and Installs Monasca apps
|
|
hosts: mini-mon
|
|
sudo: yes
|
|
vars:
|
|
mini_mon_host: 192.168.10.4
|
|
influxdb_url: "http://{{mini_mon_host}}:8086"
|
|
influxdb_users:
|
|
mon_api: password
|
|
mon_persister: password
|
|
kafka_topics:
|
|
metrics: { replicas: 1, partitions: 4 }
|
|
events: { replicas: 1, partitions: 4 }
|
|
raw-events: { replicas: 1, partitions: 4 }
|
|
transformed-events: { replicas: 1, partitions: 4 }
|
|
alarm-state-transitions: { replicas: 1, partitions: 4 }
|
|
alarm-notifications: { replicas: 1, partitions: 4 }
|
|
kafka_hosts: "{{mini_mon_host}}:9092"
|
|
keystone_url: http://192.168.10.5:35357/v3
|
|
monasca_agent:
|
|
user: monasca-agent
|
|
password: password
|
|
project: mini-mon
|
|
service: monitoring
|
|
monasca_api_url: http://192.168.10.4:8080/v2.0
|
|
monasca_checks:
|
|
host_alive:
|
|
init_config:
|
|
ssh_port: 22
|
|
ssh_timeout: 0.5
|
|
ping_timeout: 1
|
|
instances:
|
|
- name: devstack
|
|
host_name: 192.168.10.5
|
|
alive_test: ssh
|
|
mysql_host: "{{mini_mon_host}}"
|
|
mysql_users:
|
|
notification: password
|
|
monapi: password
|
|
thresh: password
|
|
storm_worker_ports: [6701, 6702]
|
|
zookeeper_hosts: "{{mini_mon_host}}:2181"
|
|
roles:
|
|
- {role: monasca-schema, tags: [schema]}
|
|
- {role: monasca-api,
|
|
api_region: useast,
|
|
influxdb_user: mon_api,
|
|
influxdb_password: password,
|
|
keystone_host: 192.168.10.5,
|
|
keystone_admin: admin,
|
|
keystone_admin_password: password,
|
|
keystone_admin_token: ADMIN,
|
|
mysql_user: monapi,
|
|
mysql_password: password,
|
|
tags: [api]}
|
|
- {role: monasca-persister,
|
|
influxdb_user: mon_persister,
|
|
influxdb_password: password,
|
|
tags: [persister]}
|
|
- {role: monasca-notification,
|
|
mysql_user: notification,
|
|
mysql_password: password,
|
|
smtp_host: localhost,
|
|
tags: [notification]}
|
|
- {role: storm, nimbus_host: "{{mini_mon_host}}", storm_nimbus_enabled: true, storm_supervisor_enabled: true, tags: [storm]}
|
|
- {role: monasca-thresh,
|
|
mysql_user: thresh,
|
|
mysql_password: password,
|
|
tags: [thresh]}
|
|
- {role: monasca-agent, tags: [agent]}
|
|
|
|
- name: Define default alarms
|
|
hosts: mini-mon
|
|
gather_facts: no
|
|
vars:
|
|
keystone_url: http://192.168.10.5:35357/v3/
|
|
keystone_user: mini-mon
|
|
keystone_password: password
|
|
tasks:
|
|
- name: Setup root email notification method
|
|
monasca_notification_method:
|
|
name: "Email Root"
|
|
type: 'EMAIL'
|
|
address: 'root@localhost'
|
|
keystone_url: "{{keystone_url}}"
|
|
keystone_user: "{{keystone_user}}"
|
|
keystone_password: "{{keystone_password}}"
|
|
tags:
|
|
- alarms
|
|
- system_alarms
|
|
- monasca_alarms
|
|
register: out
|
|
- name: Create System Alarm Definitions
|
|
monasca_alarm_definition:
|
|
name: "{{item.name}}"
|
|
expression: "{{item.expression}}"
|
|
keystone_token: "{{out.keystone_token}}"
|
|
monasca_api_url: "{{out.monasca_api_url}}"
|
|
alarm_actions:
|
|
- "{{out.notification_method_id}}"
|
|
ok_actions:
|
|
- "{{out.notification_method_id}}"
|
|
undetermined_actions:
|
|
- "{{out.notification_method_id}}"
|
|
with_items:
|
|
- { name: "Host Alive Alarm", expression: "host_alive_status > 0" }
|
|
- { name: "High CPU usage", expression: "avg(cpu.idle_perc) < 10 times 3" }
|
|
- { name: "Disk Inode Usage", expression: "disk.inode_used_perc > 90" }
|
|
- { name: "Disk Usage", expression: "disk.space_used_perc > 90" }
|
|
- { name: "Memory usage", expression: "avg(mem.usable_perc) < 10 times 3" }
|
|
- { name: "Network Errors", expression: "net.in_errors >5 or net.out_errors > 5" }
|
|
tags:
|
|
- alarms
|
|
- system_alarms
|
|
- name: Create Monasca Alarm Definitions
|
|
monasca_alarm_definition:
|
|
name: "{{item.name}}"
|
|
expression: "{{item.expression}}"
|
|
keystone_token: "{{out.keystone_token}}"
|
|
monasca_api_url: "{{out.monasca_api_url}}"
|
|
alarm_actions:
|
|
- "{{out.notification_method_id}}"
|
|
ok_actions:
|
|
- "{{out.notification_method_id}}"
|
|
undetermined_actions:
|
|
- "{{out.notification_method_id}}"
|
|
with_items:
|
|
- { name: "Monasca Agent emit time", expression: "avg(monasca.emit_time_sec) > 2 times 3" }
|
|
- { name: "Monasca Agent collection time", expression: "avg(monasca.collection_time_sec) > 5 times 3" }
|
|
- { name: "Monasca Configuration DB query time", expression: "avg(monasca.config_db_time.95percentile) > 5 times 3" }
|
|
- { name: "Zookeeper Average Latency", expression: "avg(zookeeper.avg_latency_sec) > 1 times 3" }
|
|
tags:
|
|
- alarms
|
|
- monasca_alarms
|