Skip to content

Commit 045267d

Browse files
committed
Support deploying Monasca Agent via Docker
1 parent 0041a1d commit 045267d

File tree

11 files changed

+212
-0
lines changed

11 files changed

+212
-0
lines changed

ansible/deploy_swarm_monitoring.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
hosts: cluster
77
become: yes
88
roles:
9+
- role: monasca_agent_docker
910
- role: monasca_fluentd
1011
- role: prometheus-docker-node
1112

ansible/group_vars/all/all

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,16 @@ monasca_fluentd_password: "{{ monasca_agent_p3_password }}"
3636
monasca_fluentd_project_domain_id: default
3737
monasca_fluentd_project_name: p3
3838

39+
# Monasca Agent (Docker) config
40+
monasca_agent_docker_forwarder_port: 17120
41+
monasca_agent_docker_log_level: INFO
42+
monasca_agent_docker_api_uri: http://{{ controller_vip }}:8082/v2.0
43+
monasca_agent_docker_keystone_uri: http://{{ controller_vip }}:5000/v3
44+
monasca_agent_docker_username: "{{ monasca_agent_p3_username }}"
45+
monasca_agent_docker_password: "{{ monasca_agent_p3_password }}"
46+
monasca_agent_docker_project_name: p3
47+
48+
3949
# Local Grafana admin account for configuring Grafana
4050
grafana_admin_username: grafana-admin
4151
grafana_admin_password: "{{ vault_grafana_admin_password }}"
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
#
2+
# Copyright StackHPC, 2018
3+
#
4+
---
5+
- name: Start monasca-agent-forwarder container
6+
docker_container:
7+
name: monasca-agent-forwarder
8+
pull: true
9+
image: stackhpc/agent-forwarder:latest
10+
state: started
11+
volumes:
12+
- plugins:/etc/monasca/agent/conf.d:ro
13+
ports:
14+
- "{{ monasca_agent_docker_forwarder_port }}:{{ monasca_agent_docker_forwarder_port }}"
15+
env:
16+
LOG_LEVEL: "{{ monasca_agent_docker_log_level }}"
17+
OS_AUTH_URL: "{{ monasca_agent_docker_keystone_uri }}"
18+
OS_USERNAME: "{{ monasca_agent_docker_username }}"
19+
OS_PASSWORD: "{{ monasca_agent_docker_password }}"
20+
OS_USER_DOMAIN_NAME: Default
21+
OS_PROJECT_NAME: "{{ monasca_agent_docker_project_name }}"
22+
OS_PROJECT_DOMAIN_NAME: Default
23+
MONASCA_URL: "{{ monasca_agent_docker_api_uri }}"
24+
SERVICE_TYPE: monitoring
25+
ENDPOINT_TYPE: public
26+
REGION_NAME: RegionOne
27+
AGENT_HOSTNAME: "{{ ansible_hostname }}"
28+
FORWARDER_URL: "http://monasca_agent-forwarder:{{ monasca_agent_docker_forwarder_port }}"
29+
FORWARDER_PORT: "{{ monasca_agent_docker_forwarder_port }}"
30+
31+
- name: Create Monasca collector plugin directory
32+
file:
33+
path: /etc/monasca/agent/conf.d/
34+
state: directory
35+
owner: root
36+
group: root
37+
mode: 0755
38+
39+
- name: Template Monasca collector plugins
40+
template:
41+
src: "{{ item }}.j2"
42+
dest: "/etc/monasca/agent/conf.d/{{ item }}"
43+
owner: root
44+
mode: 0644
45+
with_items:
46+
- cpu.yaml
47+
- docker.yaml
48+
- disk.yaml
49+
- ib_network.yaml
50+
- load.yaml
51+
- memory.yaml
52+
- network.yaml
53+
54+
- name: Wait for forwarder service
55+
wait_for:
56+
port: "{{ monasca_agent_docker_forwarder_port }}"
57+
delay: 1
58+
59+
- name: Start monasca-agent-collector container
60+
docker_container:
61+
name: monasca-agent-collector
62+
pull: true
63+
links:
64+
- monasca-agent-forwarder
65+
image: stackhpc/agent-collector:latest
66+
state: started
67+
env:
68+
DOCKER: True
69+
LOG_LEVEL: "{{ monasca_agent_docker_log_level }}"
70+
OS_AUTH_URL: "{{ monasca_agent_docker_keystone_uri }}"
71+
OS_USERNAME: "{{ monasca_agent_docker_username }}"
72+
OS_PASSWORD: "{{ monasca_agent_docker_password }}"
73+
OS_USER_DOMAIN_NAME: Default
74+
OS_PROJECT_NAME: "{{ monasca_agent_docker_project_name }}"
75+
OS_PROJECT_DOMAIN_NAME: Default
76+
MONASCA_URL: "{{ monasca_agent_docker_api_uri }}"
77+
SERVICE_TYPE: monitoring
78+
ENDPOINT_TYPE: public
79+
REGION_NAME: RegionOne
80+
AGENT_HOSTNAME: "{{ ansible_hostname }}"
81+
FORWARDER_URL: "http://monasca-agent-forwarder:{{ monasca_agent_docker_forwarder_port }}"
82+
FORWARDER_PORT: "{{ monasca_agent_docker_forwarder_port }}"
83+
volumes:
84+
- "/:/rootfs"
85+
- "/var/run:/var/run:rw"
86+
- "/sys:/sys:ro"
87+
- "/var/lib/docker/:/var/lib/docker:ro"
88+
- "/dev/disk/:/dev/disk:ro"
89+
- "/etc/monasca/agent/conf.d:/etc/monasca/agent/conf.d:ro"
90+
91+
- name: Start monasca-agent-statsd container
92+
docker_container:
93+
name: monasca-agent-statsd
94+
pull: true
95+
links:
96+
- monasca-agent-forwarder
97+
image: stackhpc/agent-statsd:latest
98+
state: started
99+
ports:
100+
- "8125:8125/udp"
101+
env:
102+
DOCKER: True
103+
LOG_LEVEL: "{{ monasca_agent_docker_log_level }}"
104+
OS_AUTH_URL: "{{ monasca_agent_docker_keystone_uri }}"
105+
OS_USERNAME: "{{ monasca_agent_docker_username }}"
106+
OS_PASSWORD: "{{ monasca_agent_docker_password }}"
107+
OS_USER_DOMAIN_NAME: Default
108+
OS_PROJECT_NAME: "{{ monasca_agent_docker_project_name }}"
109+
OS_PROJECT_DOMAIN_NAME: Default
110+
MONASCA_URL: "{{ monasca_agent_docker_api_uri }}"
111+
SERVICE_TYPE: monitoring
112+
ENDPOINT_TYPE: public
113+
REGION_NAME: RegionOne
114+
AGENT_HOSTNAME: "{{ ansible_hostname }}"
115+
FORWARDER_URL: "http://monasca-agent-forwarder:{{ monasca_agent_docker_forwarder_port }}"
116+
FORWARDER_PORT: "{{ monasca_agent_docker_forwarder_port }}"
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
init_config: null
2+
instances:
3+
- built_by: System
4+
name: cpu_stats
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
init_config: null
2+
instances:
3+
- built_by: System
4+
device_blacklist_re: .*freezer_backup_snap.*
5+
ignore_filesystem_types: iso9660,tmpfs
6+
name: disk_stats
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
init_config:
2+
docker_root: '/'
3+
4+
instances:
5+
- url: 'unix://var/run/docker.sock'
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<source>
2+
@type forward
3+
port 24224
4+
bind 0.0.0.0
5+
</source>
6+
7+
# Add a timestamp dimension to all logs to record the event time. The
8+
# event time is the time extracted from the log message in all cases
9+
# where the time_key is set, and the time the record entered fluentd
10+
# if no time_key is set. Kolla sets a time_key for OpenStack service
11+
# logs.
12+
<filter *.**>
13+
@type record_transformer
14+
<record>
15+
timestamp ${time}
16+
</record>
17+
</filter>
18+
19+
#TODO: Extract log levels
20+
21+
<filter access>
22+
@type *.**
23+
<record>
24+
hostname ${hostname}
25+
</record>
26+
</filter>
27+
28+
# Docker saves all logs under the 'log' field. The fluentd-monasca
29+
# plugin assumes that they are saved under the 'message' field. Here
30+
# we map the 'log' field to the 'message' field for all logs.
31+
<filter *.**>
32+
@type record_transformer
33+
enable_ruby true
34+
<record>
35+
message ${record["log"]}
36+
</record>
37+
remove_keys log
38+
</filter>
39+
40+
<match *.**>
41+
type copy
42+
<store>
43+
@type monasca
44+
keystone_url {{ keystone_url }}
45+
monasca_log_api {{ monasca_log_api_uri }}
46+
monasca_log_api_version v3.0
47+
username {{ monasca_username }}
48+
password {{ monasca_password }}
49+
domain_id {{ openstack_domain_id }}
50+
project_name {{ openstack_project_name }}
51+
</store>
52+
</match>
53+
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
init_config: null
2+
instances:
3+
- built_by: IBNetworkDetect
4+
name: ib_network_stats
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
init_config: null
2+
instances:
3+
- built_by: System
4+
name: load_stats
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
init_config: null
2+
instances:
3+
- built_by: System
4+
name: memory_stats

0 commit comments

Comments
 (0)