diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index 1862cda728..19e097eb4f 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -228,6 +228,8 @@ grafana_server_port: "3000"
tacker_server_port: "9890"
+fluentd_syslog_port: "5140"
+
public_protocol: "{{ 'https' if kolla_enable_tls_external | bool else 'http' }}"
internal_protocol: "http"
admin_protocol: "http"
diff --git a/ansible/roles/common/defaults/main.yml b/ansible/roles/common/defaults/main.yml
index 8e93160512..11db34b922 100644
--- a/ansible/roles/common/defaults/main.yml
+++ b/ansible/roles/common/defaults/main.yml
@@ -10,10 +10,6 @@ kolla_toolbox_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ d
kolla_toolbox_tag: "{{ openstack_release }}"
kolla_toolbox_image_full: "{{ kolla_toolbox_image }}:{{ kolla_toolbox_tag }}"
-heka_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-heka"
-heka_tag: "{{ openstack_release }}"
-heka_image_full: "{{ heka_image }}:{{ heka_tag }}"
-
cron_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-cron"
cron_tag: "{{ openstack_release }}"
cron_image_full: "{{ cron_image }}:{{ cron_tag }}"
diff --git a/ansible/roles/common/tasks/clean_heka.yml b/ansible/roles/common/tasks/clean_heka.yml
new file mode 100644
index 0000000000..94191031ff
--- /dev/null
+++ b/ansible/roles/common/tasks/clean_heka.yml
@@ -0,0 +1,13 @@
+---
+- name: Get container facts
+ kolla_container_facts:
+ name:
+ - heka
+ register: container_facts
+
+- name: Removing heka container
+ kolla_docker:
+ action: "remove_container"
+ name: "heka"
+ when:
+ - container_facts['heka'] is defined
diff --git a/ansible/roles/common/tasks/config.yml b/ansible/roles/common/tasks/config.yml
index a456bb81b0..badd29e256 100644
--- a/ansible/roles/common/tasks/config.yml
+++ b/ansible/roles/common/tasks/config.yml
@@ -5,7 +5,11 @@
state: "directory"
recurse: yes
with_items:
- - "heka"
+ - "fluentd"
+ - "fluentd/input"
+ - "fluentd/output"
+ - "fluentd/format"
+ - "fluentd/filter"
- "kolla-toolbox"
- "cron"
- "cron/logrotate"
@@ -15,56 +19,50 @@
src: "{{ item }}.json.j2"
dest: "{{ node_config_directory }}/{{ item }}/config.json"
with_items:
- - "heka"
+ - "fluentd"
- "kolla-toolbox"
- "cron"
-- name: Copying over heka config files
+- name: Copying over fluentd input config files
template:
- src: "heka-{{ item.src|default(item.name) }}.toml.j2"
- dest: "{{ node_config_directory }}/heka/heka-{{ item.name }}.toml"
- when: item.enabled | bool
+ src: "conf/input/{{ item }}.conf.j2"
+ dest: "{{ node_config_directory }}/fluentd/input/{{ item }}.conf"
with_items:
- - { name: "aodh", enabled: "{{ enable_aodh }}" }
- - { name: "barbican", enabled: "{{ enable_barbican }}"}
- - { name: "ceilometer", enabled: "{{ enable_ceilometer }}" }
- - { name: "elasticsearch", enabled: "{{ enable_elasticsearch }}" }
- - { name: "global", enabled: "yes" }
- - { name: "gnocchi", enabled: "{{ enable_gnocchi }}" }
- - { name: "grafana", enabled: "{{ enable_grafana }}" }
- - { name: "haproxy", enabled: "{{ enable_haproxy }}" }
- - { name: "horizon", enabled: "{{ enable_horizon }}" }
- - { name: "keepalived", enabled: "{{ enable_haproxy }}" }
- - { name: "keystone", enabled: "{{ enable_keystone }}" }
- - { name: "mariadb", enabled: "{{ enable_mariadb }}" }
- - { name: "openstack", enabled: "yes" }
- - { name: "panko", enabled: "{{ enable_panko }}" }
- - { name: "rabbitmq", enabled: "{{ enable_rabbitmq }}" }
- - { name: "swift-account-auditor", src: "swift", enabled: "{{ enable_swift }}" }
- - { name: "swift-account-reaper", src: "swift", enabled: "{{ enable_swift }}" }
- - { name: "swift-account-replicator", src: "swift", enabled: "{{ enable_swift }}" }
- - { name: "swift-account-server", src: "swift", enabled: "{{ enable_swift }}" }
- - { name: "swift-container-auditor", src: "swift", enabled: "{{ enable_swift }}" }
- - { name: "swift-container-replicator", src: "swift", enabled: "{{ enable_swift }}" }
- - { name: "swift-container-server", src: "swift", enabled: "{{ enable_swift }}" }
- - { name: "swift-container-updater", src: "swift", enabled: "{{ enable_swift }}" }
- - { name: "swift-object-auditor", src: "swift", enabled: "{{ enable_swift }}" }
- - { name: "swift-object-expirer", src: "swift", enabled: "{{ enable_swift }}" }
- - { name: "swift-object-replicator", src: "swift", enabled: "{{ enable_swift }}" }
- - { name: "swift-object-server", src: "swift", enabled: "{{ enable_swift }}" }
- - { name: "swift-object-updater", src: "swift", enabled: "{{ enable_swift }}" }
- - { name: "swift-proxy-server", src: "swift", enabled: "{{ enable_swift }}" }
- - { name: "swift-rsyncd", src: "swift", enabled: "{{ enable_swift }}" }
+ - "00-global"
+ - "01-syslog"
+ - "02-mariadb"
+ - "03-rabbitmq"
-- name: Heka custom config file exists
- local_action: stat path="{{ node_custom_config }}/heka/heka-custom.toml"
- register: heka_custom_stat_result
-
-- name: Copying over heka custom config file
+- name: Copying over fluentd ouput config files
template:
- src: "{{ node_custom_config }}/heka/heka-custom.toml"
- dest: "{{ node_config_directory }}/heka/heka-custom.toml"
- when: heka_custom_stat_result.stat.exists == true
+ src: "conf/output/{{ item }}.conf.j2"
+ dest: "{{ node_config_directory }}/fluentd/output/{{ item }}.conf"
+ with_items:
+ - "00-local"
+ - "01-es"
+- name: Copying over fluentd format config files
+ template:
+ src: "conf/format/{{ item }}.conf.j2"
+ dest: "{{ node_config_directory }}/fluentd/format/{{ item }}.conf"
+ with_items:
+ - "apache_access"
+ - "wsgi_access"
+ - "wsgi_python"
+
+- name: Copying over fluentd filter config files
+ template:
+ src: "conf/filter/{{ item }}.conf.j2"
+ dest: "{{ node_config_directory }}/fluentd/filter/{{ item }}.conf"
+ with_items:
+ - "00-record_transformer"
+ - "01-rewrite"
+
+- name: Copying over tg-agent.conf
+ template:
+ src: "td-agent.conf.j2"
+ dest: "{{ node_config_directory }}/{{ item }}/td-agent.conf"
+ with_items:
+ - "fluentd"
- name: Copying over cron logrotate config files
template:
diff --git a/ansible/roles/common/tasks/pull.yml b/ansible/roles/common/tasks/pull.yml
index e19971ce68..3cf41e2357 100644
--- a/ansible/roles/common/tasks/pull.yml
+++ b/ansible/roles/common/tasks/pull.yml
@@ -5,11 +5,11 @@
common_options: "{{ docker_common_options }}"
image: "{{ kolla_toolbox_image_full }}"
-- name: Pulling heka image
+- name: Pulling fluentd image
kolla_docker:
action: "pull_image"
common_options: "{{ docker_common_options }}"
- image: "{{ heka_image_full }}"
+ image: "{{ fluentd_image_full }}"
- name: Pulling cron image
kolla_docker:
diff --git a/ansible/roles/common/tasks/reconfigure.yml b/ansible/roles/common/tasks/reconfigure.yml
index 961c656fa3..84e5c86c2b 100644
--- a/ansible/roles/common/tasks/reconfigure.yml
+++ b/ansible/roles/common/tasks/reconfigure.yml
@@ -1,28 +1,28 @@
---
-- name: Ensuring the heka container is up
+- name: Ensuring the fluentd container is up
kolla_docker:
- name: "heka"
+ name: "fluentd"
action: "get_container_state"
register: container_state
failed_when: container_state.Running == false
- include: config.yml
-- name: Checking the heka config
- command: docker exec heka /usr/local/bin/kolla_set_configs --check
+- name: Checking the fluentd config
+ command: docker exec fluentd /usr/local/bin/kolla_set_configs --check
changed_when: false
failed_when: false
register: check_result
-- name: Getting the heka container config strategy
+- name: Getting the fluentd container config strategy
kolla_docker:
- name: "heka"
+ name: "fluentd"
action: "get_container_env"
register: container_env
-- name: Removing the heka container
+- name: Removing the fluentd container
kolla_docker:
- name: "heka"
+ name: "fluentd"
action: "remove_container"
register: remove_container
when:
@@ -32,9 +32,9 @@
- include: start.yml
when: remove_container.changed
-- name: Restarting the heka container
+- name: Restarting the fluentd container
kolla_docker:
- name: "heka"
+ name: "fluentd"
action: "restart_container"
when:
- config_strategy == "COPY_ALWAYS"
diff --git a/ansible/roles/common/tasks/start.yml b/ansible/roles/common/tasks/start.yml
index 963cd5de1c..cfba855032 100644
--- a/ansible/roles/common/tasks/start.yml
+++ b/ansible/roles/common/tasks/start.yml
@@ -1,19 +1,17 @@
---
-- name: Starting heka container
+- name: Starting fluentd container
kolla_docker:
action: "start_container"
common_options: "{{ docker_common_options }}"
environment:
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
SKIP_LOG_SETUP: "true"
- image: "{{ heka_image_full }}"
- name: "heka"
+ image: "{{ fluentd_image_full }}"
+ name: "fluentd"
volumes:
- - "{{ node_config_directory }}/heka/:{{ container_config_directory }}/:ro"
+ - "{{ node_config_directory }}/fluentd/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- "kolla_logs:/var/log/kolla/"
- - "heka:/var/cache/hekad"
- - "heka_socket:/var/lib/kolla/heka/"
- name: Starting kolla-toolbox container
kolla_docker:
@@ -45,5 +43,4 @@
volumes:
- "{{ node_config_directory }}/cron/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- - "heka_socket:/var/lib/kolla/heka/"
- "kolla_logs:/var/log/kolla/"
diff --git a/ansible/roles/common/tasks/upgrade.yml b/ansible/roles/common/tasks/upgrade.yml
index 1f16915ad9..b31527f661 100644
--- a/ansible/roles/common/tasks/upgrade.yml
+++ b/ansible/roles/common/tasks/upgrade.yml
@@ -1,4 +1,6 @@
---
- include: config.yml
+- include: clean_heka.yml
+
- include: start.yml
diff --git a/ansible/roles/common/templates/conf/filter/00-record_transformer.conf.j2 b/ansible/roles/common/templates/conf/filter/00-record_transformer.conf.j2
new file mode 100644
index 0000000000..1dbfaf5ecb
--- /dev/null
+++ b/ansible/roles/common/templates/conf/filter/00-record_transformer.conf.j2
@@ -0,0 +1,8 @@
+
+ @type record_transformer
+
+ Hostname ${hostname}
+ Logger openstack.${tag_parts[4]}
+ programname ${tag_parts[5]}
+
+
diff --git a/ansible/roles/common/templates/conf/filter/01-rewrite.conf.j2 b/ansible/roles/common/templates/conf/filter/01-rewrite.conf.j2
new file mode 100644
index 0000000000..3e9f0053af
--- /dev/null
+++ b/ansible/roles/common/templates/conf/filter/01-rewrite.conf.j2
@@ -0,0 +1,17 @@
+
+ @type rewrite_tag_filter
+ capitalize_regex_backreference yes
+ rewriterule1 programname ^(horizon-access|ceilometer-api-access|keystone-apache-admin-access|keystone-apache-public-access)$ apache_access
+ rewriterule2 programname ^aodh_wsgi_access$ wsgi_access
+ rewriterule3 programname ^(nova-api|nova-compute|nova-conductor|nova-consoleauth|nova-manage|nova-novncproxy|nova-scheduler|privsep-helper).* openstack_python
+ rewriterule4 programname ^(sahara-api|sahara-engine).* openstack_python
+ rewriterule5 programname ^(neutron-server|neutron-openvswitch-agent|neutron-ns-metadata-proxy|neutron-metadata-agent|neutron-l3-agent|neutron-dhcp-agent).* openstack_python
+ rewriterule6 programname ^(magnum-conductor|magnum-api).* openstack_python
+ rewriterule7 programname ^(keystone).* openstack_python
+ rewriterule8 programname ^(heat-engine|heat-api|heat-api-cfn).* openstack_python
+ rewriterule9 programname ^(registry|api).* openstack_python
+ rewriterule10 programname ^(cloudkitty-storage-init|cloudkitty-processor|cloudkitty-dbsync|cloudkitty-api).* openstack_python
+ rewriterule11 programname ^(ceilometer-polling|ceilometer-collector|ceilometer-agent-notification|loadwsgi).* openstack_python
+ rewriterule12 programname ^(barbican-worker|barbican-keystone-listener|barbican-db-manage|barbican-api|app).* openstack_python
+ rewriterule13 programname ^(aodh-notifier|aodh-listener|aodh-evaluator|aodh-dbsync).* openstack_python
+
diff --git a/ansible/roles/common/templates/conf/format/apache_access.conf.j2 b/ansible/roles/common/templates/conf/format/apache_access.conf.j2
new file mode 100644
index 0000000000..631b0180c2
--- /dev/null
+++ b/ansible/roles/common/templates/conf/format/apache_access.conf.j2
@@ -0,0 +1,20 @@
+
+ @type parser
+ reserve_data true
+ key_name message
+
+ @type "grok"
+ grok_pattern \[%{HTTPDATE:Timestamp}\] "(?:%{WORD:http_method} %{NOTSPACE:http_url}(?: HTTP/%{NUMBER:http_version})?|%{DATA:rawrequest})" %{NUMBER:http_status} (?:\d+|-)
+ time_key Timestamp
+ time_format %d/%b/%Y:%H:%M:%S %z
+ keep_time_key true
+
+
+
+
+ @type record_transformer
+
+ severity_label INFO
+ Severity 6
+
+
diff --git a/ansible/roles/common/templates/conf/format/wsgi_access.conf.j2 b/ansible/roles/common/templates/conf/format/wsgi_access.conf.j2
new file mode 100644
index 0000000000..52ac0fab10
--- /dev/null
+++ b/ansible/roles/common/templates/conf/format/wsgi_access.conf.j2
@@ -0,0 +1,12 @@
+
+ @type parser
+ reserve_data true
+ key_name message
+
+ @type "grok"
+ grok_pattern %{IPORHOST:clientip} %{HTTPDUSER:ident} %{USER:auth} \[%{HTTPDATE:Timestamp}\] "(?:%{WORD:http_method} %{NOTSPACE:http_url}(?: HTTP/%{NUMBER:http_version})?|%{DATA:rawrequest})" %{NUMBER:http_status} (?:%{NUMBER:http_bytes}|-) (?:%{NUMBER:http_response_time_us}|-) %{QS:referrer} %{QS:agent}
+ time_key Timestamp
+ time_format %d/%b/%Y:%H:%M:%S %z
+ keep_time_key true
+
+
diff --git a/ansible/roles/common/templates/conf/format/wsgi_python.conf.j2 b/ansible/roles/common/templates/conf/format/wsgi_python.conf.j2
new file mode 100644
index 0000000000..4f215f22ec
--- /dev/null
+++ b/ansible/roles/common/templates/conf/format/wsgi_python.conf.j2
@@ -0,0 +1,12 @@
+
+ @type parser
+ reserve_data true
+ key_name message
+
+ @type "grok"
+ grok_pattern %{TIMESTAMP_ISO8601:Timestamp} %{NUMBER:Pid} %{LOGLEVEL:severity_label} %{NOTSPACE:python_module} \[req-(?:%{NOTSPACE:request_id}) (?:%{NOTSPACE:user_id}) (?:%{NOTSPACE:tenant_id}) .*\] %{GREEDYDATA:Payload}
+ time_format "%Y-%m-%d %H:%M:%S.%L"
+ time_key Timestamp
+ keep_time_key true
+
+
diff --git a/ansible/roles/common/templates/conf/input/00-global.conf.j2 b/ansible/roles/common/templates/conf/input/00-global.conf.j2
new file mode 100644
index 0000000000..6bc0d5eb4f
--- /dev/null
+++ b/ansible/roles/common/templates/conf/input/00-global.conf.j2
@@ -0,0 +1,8 @@
+
+ @type tail
+ path /var/log/kolla/*/*.log
+ exclude_path ["/var/log/kolla/rabbitmq/*.log", "/var/log/kolla/mariadb/mariadb.log", "/var/log/kolla/haproxy/*.log", "/var/log/kolla/swift/*.log"]
+ pos_file /var/run/td-agent/kolla.pos
+ tag kolla.*
+ format /^(?.*)$/
+
diff --git a/ansible/roles/common/templates/conf/input/01-syslog.conf.j2 b/ansible/roles/common/templates/conf/input/01-syslog.conf.j2
new file mode 100644
index 0000000000..d82208b591
--- /dev/null
+++ b/ansible/roles/common/templates/conf/input/01-syslog.conf.j2
@@ -0,0 +1,7 @@
+
+ @type syslog
+ port {{ fluentd_syslog_port }}
+ bind {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
+ tag syslog
+ format /^(?.*)$/
+
diff --git a/ansible/roles/common/templates/conf/input/02-mariadb.conf.j2 b/ansible/roles/common/templates/conf/input/02-mariadb.conf.j2
new file mode 100644
index 0000000000..d2ef3b1cc6
--- /dev/null
+++ b/ansible/roles/common/templates/conf/input/02-mariadb.conf.j2
@@ -0,0 +1,10 @@
+
+ @type tail
+ path /var/log/kolla/mariadb/mariadb.log
+ pos_file /var/run/td-agent/mariadb.pos
+ tag mariadb.*
+ format multiline
+ format_firstline /^\d{6}/
+ format1 /^(?
diff --git a/ansible/roles/common/templates/conf/input/03-rabbitmq.conf.j2 b/ansible/roles/common/templates/conf/input/03-rabbitmq.conf.j2
new file mode 100644
index 0000000000..ac631877d4
--- /dev/null
+++ b/ansible/roles/common/templates/conf/input/03-rabbitmq.conf.j2
@@ -0,0 +1,10 @@
+
+ @type tail
+ path /var/log/kolla/rabbitmq/rabbit.log
+ pos_file /var/run/td-agent/rabbit.pos
+ tag rabbit.*
+ format multiline
+ format_firstline /^=/
+ format1 /^.*\n/
+ format2 /^(?.*)\n/
+
diff --git a/ansible/roles/common/templates/conf/output/00-local.conf.j2 b/ansible/roles/common/templates/conf/output/00-local.conf.j2
new file mode 100644
index 0000000000..650f5730ba
--- /dev/null
+++ b/ansible/roles/common/templates/conf/output/00-local.conf.j2
@@ -0,0 +1,41 @@
+
+ @type copy
+
+ @type file
+ path /var/log/kolla/swift/swift_latest.*.log
+ symlink_path /var/log/kolla/swift/swift_latest.log
+ utc
+ append true
+ compress gzip
+
+
+ type elasticsearch
+ host {{ kolla_external_vip_address }}
+ port {{ elasticsearch_port }}
+ logstash_format true
+ logstash_prefix flog
+ flush_interval 15s
+
+
+
+
+ @type copy
+
+ @type file
+ path /var/log/kolla/haproxy/haproxy_latest.*.log
+ symlink_path /var/log/kolla/haproxy/haproxy_latest.log
+ output_tag false
+ output_time false
+ utc
+ append true
+ compress gzip
+
+
+ type elasticsearch
+ host {{ kolla_external_vip_address }}
+ port {{ elasticsearch_port }}
+ logstash_format true
+ logstash_prefix flog
+ flush_interval 15s
+
+
diff --git a/ansible/roles/common/templates/conf/output/01-es.conf.j2 b/ansible/roles/common/templates/conf/output/01-es.conf.j2
new file mode 100644
index 0000000000..2367b8a7fa
--- /dev/null
+++ b/ansible/roles/common/templates/conf/output/01-es.conf.j2
@@ -0,0 +1,11 @@
+
+ type copy
+
+ type elasticsearch
+ host {{ kolla_external_vip_address }}
+ port {{ elasticsearch_port }}
+ logstash_format true
+ logstash_prefix flog
+ flush_interval 15s
+
+
diff --git a/ansible/roles/common/templates/fluentd.json.j2 b/ansible/roles/common/templates/fluentd.json.j2
new file mode 100644
index 0000000000..1e555de92c
--- /dev/null
+++ b/ansible/roles/common/templates/fluentd.json.j2
@@ -0,0 +1,84 @@
+{
+ "command": "/usr/sbin/td-agent",
+ "config_files": [
+ {
+ "source": "{{ container_config_directory }}/td-agent.conf",
+ "dest": "/etc/td-agent/td-agent.conf",
+ "owner": "td-agent",
+ "perm": "0600"
+ },
+ {
+ "source": "{{ container_config_directory }}/input/00-global.conf",
+ "dest": "/etc/td-agent/input/00-global.conf",
+ "owner": "td-agent",
+ "perm": "0600"
+ },
+ {
+ "source": "{{ container_config_directory }}/input/02-mariadb.conf",
+ "dest": "/etc/td-agent/input/02-mariadb.conf",
+ "owner": "td-agent",
+ "perm": "0600"
+ },
+ {
+ "source": "{{ container_config_directory }}/input/03-rabbitmq.conf",
+ "dest": "/etc/td-agent/input/03-rabbitmq.conf",
+ "owner": "td-agent",
+ "perm": "0600"
+ },
+ {
+ "source": "{{ container_config_directory }}/input/01-syslog.conf",
+ "dest": "/etc/td-agent/input/01-syslog.conf",
+ "owner": "td-agent",
+ "perm": "0600"
+ },
+ {
+ "source": "{{ container_config_directory }}/filter/00-record_transformer.conf",
+ "dest": "/etc/td-agent/filter/00-record_transformer.conf",
+ "owner": "td-agent",
+ "perm": "0600"
+ },
+ {
+ "source": "{{ container_config_directory }}/filter/01-rewrite.conf",
+ "dest": "/etc/td-agent/filter/01-rewrite.conf",
+ "owner": "td-agent",
+ "perm": "0600"
+ },
+ {
+ "source": "{{ container_config_directory }}/format/apache_access.conf",
+ "dest": "/etc/td-agent/format/apache_access.conf",
+ "owner": "td-agent",
+ "perm": "0600"
+ },
+ {
+ "source": "{{ container_config_directory }}/format/wsgi_access.conf",
+ "dest": "/etc/td-agent/format/wsgi_access.conf",
+ "owner": "td-agent",
+ "perm": "0600"
+ },
+ {
+ "source": "{{ container_config_directory }}/format/wsgi_python.conf",
+ "dest": "/etc/td-agent/format/wsgi_python.conf",
+ "owner": "td-agent",
+ "perm": "0600"
+ },
+ {
+ "source": "{{ container_config_directory }}/output/01-es.conf",
+ "dest": "/etc/td-agent/output/01-es.conf",
+ "owner": "td-agent",
+ "perm": "0600"
+ },
+ {
+ "source": "{{ container_config_directory }}/output/00-local.conf",
+ "dest": "/etc/td-agent/output/00-local.conf",
+ "owner": "td-agent",
+ "perm": "0600"
+ }
+ ],
+ "permissions": [
+ {
+ "path": "/var/log/kolla",
+ "owner": "td-agent:td-agent",
+ "recurse": true
+ }
+ ]
+}
diff --git a/ansible/roles/common/templates/heka-aodh.toml.j2 b/ansible/roles/common/templates/heka-aodh.toml.j2
deleted file mode 100644
index 419d923e98..0000000000
--- a/ansible/roles/common/templates/heka-aodh.toml.j2
+++ /dev/null
@@ -1,13 +0,0 @@
-[aodh_apache_log_decoder]
-type = "SandboxDecoder"
-filename = "lua_decoders/os_aodh_apache_log.lua"
- [aodh_apache_log_decoder.config]
- apache_log_pattern = '%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"'
-
-[aodh_apache_logstreamer_input]
-type = "LogstreamerInput"
-decoder = "aodh_apache_log_decoder"
-log_directory = "/var/log/kolla"
-file_match = 'aodh/aodh-apache-(?P.+)-access\.log\.?(?P\d*)$'
-priority = ["^Seq"]
-differentiator = ["aodh-apache-", "Service"]
diff --git a/ansible/roles/common/templates/heka-barbican.toml.j2 b/ansible/roles/common/templates/heka-barbican.toml.j2
deleted file mode 100644
index 9ec0e8c6b6..0000000000
--- a/ansible/roles/common/templates/heka-barbican.toml.j2
+++ /dev/null
@@ -1,13 +0,0 @@
-[barbican_apache_log_decoder]
-type = "SandboxDecoder"
-filename = "lua_decoders/os_barbican_apache_log.lua"
- [barbican_apache_log_decoder.config]
- apache_log_pattern = '%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"'
-
-[barbican_apache_logstreamer_input]
-type = "LogstreamerInput"
-decoder = "barbican_apache_log_decoder"
-log_directory = "/var/log/kolla"
-file_match = 'barbican/barbican-apache-(?P.+)-access\.log\.?(?P\d*)$'
-priority = ["^Seq"]
-differentiator = ["barbican-apache-", "Service"]
diff --git a/ansible/roles/common/templates/heka-ceilometer.toml.j2 b/ansible/roles/common/templates/heka-ceilometer.toml.j2
deleted file mode 100644
index ea37e53ce9..0000000000
--- a/ansible/roles/common/templates/heka-ceilometer.toml.j2
+++ /dev/null
@@ -1,13 +0,0 @@
-[ceilometer_apache_log_decoder]
-type = "SandboxDecoder"
-filename = "lua_decoders/os_ceilometer_apache_log.lua"
- [ceilometer_apache_log_decoder.config]
- apache_log_pattern = '%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"'
-
-[ceilometer_apache_logstreamer_input]
-type = "LogstreamerInput"
-decoder = "ceilometer_apache_log_decoder"
-log_directory = "/var/log/kolla"
-file_match = 'ceilometer/(?Pceilometer-.*)\.log\.?(?P\d*)$'
-priority = ["^Seq"]
-differentiator = ["Service"]
diff --git a/ansible/roles/common/templates/heka-elasticsearch.toml.j2 b/ansible/roles/common/templates/heka-elasticsearch.toml.j2
deleted file mode 100644
index f3d4b13465..0000000000
--- a/ansible/roles/common/templates/heka-elasticsearch.toml.j2
+++ /dev/null
@@ -1,16 +0,0 @@
-[elasticsearch_json_encoder]
-type = "ESJsonEncoder"
-index = {{'"%{Type}-%{%Y.%m.%d}"'}}
-es_index_from_timestamp = true
-fields = ["Timestamp", "Type", "Logger", "Severity", "Payload", "Pid", "Hostname", "DynamicFields"]
-
-[elasticsearch_output]
-type = "ElasticSearchOutput"
-server = "{{ elasticsearch_protocol }}://{{ elasticsearch_address }}:{{ elasticsearch_port }}"
-message_matcher = "Type == 'log'"
-encoder = "elasticsearch_json_encoder"
-use_buffering = true
- [elasticsearch_output.buffering]
- max_buffer_size = 1073741824 # 1024 * 1024 * 1024
- max_file_size = 134217728 # 128 * 1024 * 1024
- full_action = "drop"
diff --git a/ansible/roles/common/templates/heka-global.toml.j2 b/ansible/roles/common/templates/heka-global.toml.j2
deleted file mode 100644
index 5e325026ae..0000000000
--- a/ansible/roles/common/templates/heka-global.toml.j2
+++ /dev/null
@@ -1,30 +0,0 @@
-[hekad]
-maxprocs = {{ ansible_processor_count * ansible_processor_cores }}
-
-[syslog_encoder]
-type = "SandboxEncoder"
-filename = "lua_encoders/os_syslog.lua"
-
-[syslog_log_decoder]
-type = "SandboxDecoder"
-filename = "lua_decoders/os_syslog.lua"
- [syslog_log_decoder.config]
- hostname = "{{ ansible_hostname }}"
-
-[swift_log_decoder]
-type = "SandboxDecoder"
-filename = "lua_decoders/os_swift_log.lua"
- [swift_log_decoder.config]
- hostname = "{{ ansible_hostname }}"
-
-[multi_log_decoder]
-type = "MultiDecoder"
-subs = ["syslog_log_decoder", "swift_log_decoder"]
-cascade_strategy = "first-wins"
-
-[syslog_input]
-type = "UdpInput"
-net = "unixgram"
-address = "/var/lib/kolla/heka/log"
-decoder = "multi_log_decoder"
-splitter = "NullSplitter"
diff --git a/ansible/roles/common/templates/heka-gnocchi.toml.j2 b/ansible/roles/common/templates/heka-gnocchi.toml.j2
deleted file mode 100644
index e2596762d8..0000000000
--- a/ansible/roles/common/templates/heka-gnocchi.toml.j2
+++ /dev/null
@@ -1,13 +0,0 @@
-[gnocchi_apache_log_decoder]
-type = "SandboxDecoder"
-filename = "lua_decoders/os_gnocchi_apache_log.lua"
- [gnocchi_apache_log_decoder.config]
- apache_log_pattern = '%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"'
-
-[gnocchi_apache_logstreamer_input]
-type = "LogstreamerInput"
-decoder = "gnocchi_apache_log_decoder"
-log_directory = "/var/log/kolla"
-file_match = 'gnocchi/gnocchi-apache-(?P.+)-access\.log\.?(?P\d*)$'
-priority = ["^Seq"]
-differentiator = ["gnocchi-apache-", "Service"]
diff --git a/ansible/roles/common/templates/heka-grafana.toml.j2 b/ansible/roles/common/templates/heka-grafana.toml.j2
deleted file mode 100644
index 7565c083e1..0000000000
--- a/ansible/roles/common/templates/heka-grafana.toml.j2
+++ /dev/null
@@ -1,18 +0,0 @@
-[grafana_log_decoder]
-type = "SandboxDecoder"
-filename = "lua_decoders/os_grafana_log.lua"
-
-[grafana_log_splitter]
-type = "RegexSplitter"
-delimiter = '\n\n(=[^=]+====)'
-delimiter_eol = false
-deliver_incomplete_final = true
-
-[grafana_logstreamer_input]
-type = "LogstreamerInput"
-decoder = "grafana_log_decoder"
-splitter = "grafana_log_splitter"
-log_directory = "/var/log/kolla"
-file_match = 'grafana/(?Pgrafana.*)\.log\.?(?P\d*)$'
-priority = ["^Seq"]
-differentiator = ["Service"]
diff --git a/ansible/roles/common/templates/heka-haproxy.toml.j2 b/ansible/roles/common/templates/heka-haproxy.toml.j2
deleted file mode 100644
index 49338fd0a3..0000000000
--- a/ansible/roles/common/templates/heka-haproxy.toml.j2
+++ /dev/null
@@ -1,9 +0,0 @@
-# HAProxy writes its logs to Syslog, so the generic
-# Syslog input set in heka-global.toml.j2 is used.
-
-[haproxy_file_output]
-type = "FileOutput"
-message_matcher = "Fields[programname] =~ /(?i:haproxy)/"
-path = "/var/log/kolla/haproxy/haproxy.log"
-encoder = "syslog_encoder"
-folder_perm = "755"
diff --git a/ansible/roles/common/templates/heka-horizon.toml.j2 b/ansible/roles/common/templates/heka-horizon.toml.j2
deleted file mode 100644
index b447e9938a..0000000000
--- a/ansible/roles/common/templates/heka-horizon.toml.j2
+++ /dev/null
@@ -1,13 +0,0 @@
-[horizon_apache_log_decoder]
-type = "SandboxDecoder"
-filename = "lua_decoders/os_horizon_apache_log.lua"
- [horizon_apache_log_decoder.config]
- apache_log_pattern = '%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"'
-
-[horizon_apache_logstreamer_input]
-type = "LogstreamerInput"
-decoder = "horizon_apache_log_decoder"
-log_directory = "/var/log/kolla"
-file_match = 'horizon/(?Phorizon.*)\.log\.?(?P\d*)$'
-priority = ["^Seq"]
-differentiator = ["Service"]
diff --git a/ansible/roles/common/templates/heka-keepalived.toml.j2 b/ansible/roles/common/templates/heka-keepalived.toml.j2
deleted file mode 100644
index 2159982343..0000000000
--- a/ansible/roles/common/templates/heka-keepalived.toml.j2
+++ /dev/null
@@ -1,9 +0,0 @@
-# Keepalived writes its logs to Syslog, so the generic
-# Syslog input set in heka-global.toml.j2 is used.
-
-[keepalived_file_output]
-type = "FileOutput"
-message_matcher = "Fields[programname] =~ /(?i:keepalived)/"
-path = "/var/log/kolla/keepalived/keepalived.log"
-encoder = "syslog_encoder"
-folder_perm = "755"
diff --git a/ansible/roles/common/templates/heka-keystone.toml.j2 b/ansible/roles/common/templates/heka-keystone.toml.j2
deleted file mode 100644
index 19cc69c6d9..0000000000
--- a/ansible/roles/common/templates/heka-keystone.toml.j2
+++ /dev/null
@@ -1,13 +0,0 @@
-[keystone_apache_log_decoder]
-type = "SandboxDecoder"
-filename = "lua_decoders/os_keystone_apache_log.lua"
- [keystone_apache_log_decoder.config]
- apache_log_pattern = '%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"'
-
-[keystone_apache_logstreamer_input]
-type = "LogstreamerInput"
-decoder = "keystone_apache_log_decoder"
-log_directory = "/var/log/kolla"
-file_match = 'keystone/keystone-apache-(?P.+)-access\.log\.?(?P\d*)$'
-priority = ["^Seq"]
-differentiator = ["keystone-apache-", "Service"]
diff --git a/ansible/roles/common/templates/heka-mariadb.toml.j2 b/ansible/roles/common/templates/heka-mariadb.toml.j2
deleted file mode 100644
index 07d7105410..0000000000
--- a/ansible/roles/common/templates/heka-mariadb.toml.j2
+++ /dev/null
@@ -1,11 +0,0 @@
-[mariadb_log_decoder]
-type = "SandboxDecoder"
-filename = "lua_decoders/os_mysql_log.lua"
-
-[mariadb_logstreamer_input]
-type = "LogstreamerInput"
-decoder = "mariadb_log_decoder"
-log_directory = "/var/log/kolla"
-file_match = 'mariadb/mariadb\.log\.?(?P\d*)$'
-priority = ["^Seq"]
-differentiator = ['mariadb']
diff --git a/ansible/roles/common/templates/heka-openstack.toml.j2 b/ansible/roles/common/templates/heka-openstack.toml.j2
deleted file mode 100644
index 2715965089..0000000000
--- a/ansible/roles/common/templates/heka-openstack.toml.j2
+++ /dev/null
@@ -1,11 +0,0 @@
-[openstack_log_decoder]
-type = "SandboxDecoder"
-filename = "lua_decoders/os_openstack_log.lua"
-
-[openstack_logstreamer_input]
-type = "LogstreamerInput"
-decoder = "openstack_log_decoder"
-log_directory = "/var/log/kolla"
-file_match = '(?Pcloudkitty|designate|nova|glance|keystone|neutron|ceph|cinder|heat|murano|magnum|mistral|manila|octavia|searchlight|senlin|sahara|tacker)/(?P.*)\.log\.?(?P\d*)$'
-priority = ["^Seq"]
-differentiator = ["Service", "_", "Program"]
diff --git a/ansible/roles/common/templates/heka-panko.toml.j2 b/ansible/roles/common/templates/heka-panko.toml.j2
deleted file mode 100644
index 367db41813..0000000000
--- a/ansible/roles/common/templates/heka-panko.toml.j2
+++ /dev/null
@@ -1,13 +0,0 @@
-[panko_apache_log_decoder]
-type = "SandboxDecoder"
-filename = "lua_decoders/os_panko_apache_log.lua"
- [panko_apache_log_decoder.config]
- apache_log_pattern = '%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"'
-
-[panko_apache_logstreamer_input]
-type = "LogstreamerInput"
-decoder = "panko_apache_log_decoder"
-log_directory = "/var/log/kolla"
-file_match = 'panko/panko-apache-(?P.+)-access\.log\.?(?P\d*)$'
-priority = ["^Seq"]
-differentiator = ["panko-apache-", "Service"]
diff --git a/ansible/roles/common/templates/heka-rabbitmq.toml.j2 b/ansible/roles/common/templates/heka-rabbitmq.toml.j2
deleted file mode 100644
index d2c49aa1e7..0000000000
--- a/ansible/roles/common/templates/heka-rabbitmq.toml.j2
+++ /dev/null
@@ -1,18 +0,0 @@
-[rabbitmq_log_decoder]
-type = "SandboxDecoder"
-filename = "lua_decoders/os_rabbitmq_log.lua"
-
-[rabbitmq_log_splitter]
-type = "RegexSplitter"
-delimiter = '\n\n(=[^=]+====)'
-delimiter_eol = false
-deliver_incomplete_final = true
-
-[rabbitmq_logstreamer_input]
-type = "LogstreamerInput"
-decoder = "rabbitmq_log_decoder"
-splitter = "rabbitmq_log_splitter"
-log_directory = "/var/log/kolla"
-file_match = 'rabbitmq/(?Prabbit.*)\.log\.?(?P\d*)$'
-priority = ["^Seq"]
-differentiator = ["Service"]
diff --git a/ansible/roles/common/templates/heka-swift.toml.j2 b/ansible/roles/common/templates/heka-swift.toml.j2
deleted file mode 100644
index c70b1631db..0000000000
--- a/ansible/roles/common/templates/heka-swift.toml.j2
+++ /dev/null
@@ -1,9 +0,0 @@
-# Swift writes its logs to Syslog, so the generic Syslog input set in
-# heka-global.toml.j2 is used.
-
-[{{ item.name }}_file_output]
-type = "FileOutput"
-message_matcher = "Fields[programname] == '{{ item.name }}'"
-path = "/var/log/kolla/swift/{{ item.name }}.log"
-encoder = "syslog_encoder"
-folder_perm = "755"
diff --git a/ansible/roles/common/templates/heka.json.j2 b/ansible/roles/common/templates/heka.json.j2
deleted file mode 100644
index f7b583f86b..0000000000
--- a/ansible/roles/common/templates/heka.json.j2
+++ /dev/null
@@ -1,153 +0,0 @@
-{% set swift_services = ["swift-account-auditor", "swift-account-reaper", "swift-account-replicator", "swift-account-server", "swift-container-auditor", "swift-container-replicator", "swift-container-server", "swift-container-updater", "swift-object-auditor", "swift-object-expirer", "swift-object-replicator", "swift-object-server", "swift-object-updater", "swift-proxy-server", "swift-rsyncd"] %}
-{
- "command": "/usr/bin/hekad -config=/etc/heka/",
- "config_files": [
- {
- "source": "{{ container_config_directory }}/heka-elasticsearch.toml",
- "dest": "/etc/heka/heka-elasticsearch.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": {{ (not enable_central_logging | bool) | string | lower }}
- },
- {
- "source": "{{ container_config_directory }}/heka-global.toml",
- "dest": "/etc/heka/heka-global.toml",
- "owner": "heka",
- "perm": "0600"
- },
- {
- "source": "{{ container_config_directory }}/heka-aodh.toml",
- "dest": "/etc/heka/heka-aodh.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": {{ (not enable_aodh | bool) | string | lower }}
- },
- {
- "source": "{{ container_config_directory }}/heka-gnocchi.toml",
- "dest": "/etc/heka/heka-gnocchi.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": {{ (not enable_gnocchi | bool) | string | lower }}
- },
- {
- "source": "{{ container_config_directory }}/heka-grafana.toml",
- "dest": "/etc/heka/heka-grafana.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": {{ (not enable_grafana | bool) | string | lower }}
- },
- {
- "source": "{{ container_config_directory }}/heka-barbican.toml",
- "dest": "/etc/heka/heka-barbican.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": {{ (not enable_barbican | bool) | string | lower }}
- },
- {
- "source": "{{ container_config_directory }}/heka-ceilometer.toml",
- "dest": "/etc/heka/heka-ceilometer.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": {{ (not enable_ceilometer | bool) | string | lower }}
- },
- {
- "source": "{{ container_config_directory }}/heka-custom.toml",
- "dest": "/etc/heka/heka-custom.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": true
- },
- {
- "source": "{{ container_config_directory }}/heka-haproxy.toml",
- "dest": "/etc/heka/heka-haproxy.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": {{ (not enable_haproxy | bool) | string | lower }}
- },
- {
- "source": "{{ container_config_directory }}/heka-keepalived.toml",
- "dest": "/etc/heka/heka-keepalived.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": {{ (not enable_haproxy | bool) | string | lower }}
- },
- {
- "source": "{{ container_config_directory }}/heka-rabbitmq.toml",
- "dest": "/etc/heka/heka-rabbitmq.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": {{ (not enable_rabbitmq | bool) | string | lower }}
- },
- {
- "source": "{{ container_config_directory }}/heka-openstack.toml",
- "dest": "/etc/heka/heka-openstack.toml",
- "owner": "heka",
- "perm": "0600"
- },
- {
- "source": "{{ container_config_directory }}/heka-mariadb.toml",
- "dest": "/etc/heka/heka-mariadb.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": {{ (not enable_mariadb | bool) | string | lower }}
- },
- {
- "source": "{{ container_config_directory }}/heka-panko.toml",
- "dest": "/etc/heka/heka-panko.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": {{ (not enable_panko | bool) | string | lower }}
- },
- {
- "source": "{{ container_config_directory }}/heka-keystone.toml",
- "dest": "/etc/heka/heka-keystone.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": {{ (not enable_keystone | bool) | string | lower }}
- },
- {
- "source": "{{ container_config_directory }}/heka-horizon.toml",
- "dest": "/etc/heka/heka-horizon.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": {{ (not enable_horizon | bool) | string | lower }}
- },
-{% for swift_service in swift_services %}
- {
- "source": "{{ container_config_directory }}/heka-{{ swift_service }}.toml",
- "dest": "/etc/heka/heka-{{ swift_service }}.toml",
- "owner": "heka",
- "perm": "0600",
- "optional": {{ (not enable_swift | bool) | string | lower }}
- }{% if not loop.last %},{% endif %}
-{% endfor %}
-
- ],
- "permissions": [
- {
- "path": "/var/cache/hekad",
- "owner": "heka:heka",
- "recurse": true
- },
- {
- "path": "/var/lib/kolla/heka",
- "owner": "heka:heka",
- "recurse": true
- },
- {
- "path": "/var/log/kolla/haproxy",
- "owner": "heka:kolla",
- "recurse": true
- },
- {
- "path": "/var/log/kolla/keepalived",
- "owner": "heka:kolla",
- "recurse": true
- },
- {
- "path": "/var/log/kolla/swift",
- "owner": "heka:kolla",
- "recurse": true
- }
- ]
-}
diff --git a/ansible/roles/common/templates/td-agent.conf.j2 b/ansible/roles/common/templates/td-agent.conf.j2
new file mode 100644
index 0000000000..42c8df0769
--- /dev/null
+++ b/ansible/roles/common/templates/td-agent.conf.j2
@@ -0,0 +1,4 @@
+@include input/*.conf
+@include filter/*.conf
+@include format/*.conf
+@include output/*.conf
diff --git a/ansible/roles/haproxy/tasks/start.yml b/ansible/roles/haproxy/tasks/start.yml
index 692de8591c..aa76e2b4a2 100644
--- a/ansible/roles/haproxy/tasks/start.yml
+++ b/ansible/roles/haproxy/tasks/start.yml
@@ -10,7 +10,6 @@
- "{{ node_config_directory }}/haproxy/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- "haproxy_socket:/var/lib/kolla/haproxy/"
- - "heka_socket:/var/lib/kolla/heka/"
- name: Starting keepalived container
kolla_docker:
@@ -24,7 +23,6 @@
- "/etc/localtime:/etc/localtime:ro"
- "/lib/modules:/lib/modules:ro"
- "haproxy_socket:/var/lib/kolla/haproxy/"
- - "heka_socket:/var/lib/kolla/heka/"
- name: Ensuring latest haproxy config is used
command: docker exec haproxy /usr/local/bin/kolla_ensure_haproxy_latest_config
diff --git a/ansible/roles/haproxy/templates/haproxy.cfg.j2 b/ansible/roles/haproxy/templates/haproxy.cfg.j2
index 1bd9e1b717..91157020d0 100644
--- a/ansible/roles/haproxy/templates/haproxy.cfg.j2
+++ b/ansible/roles/haproxy/templates/haproxy.cfg.j2
@@ -4,7 +4,7 @@ global
user haproxy
group haproxy
daemon
- log /var/lib/kolla/heka/log local0
+ log {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}:{{ fluentd_syslog_port }} local1
maxconn 4000
stats socket /var/lib/kolla/haproxy/haproxy.sock
{% if kolla_enable_tls_external | bool %}
diff --git a/ansible/roles/swift/tasks/start.yml b/ansible/roles/swift/tasks/start.yml
index 39b08f174b..b83b8c962d 100644
--- a/ansible/roles/swift/tasks/start.yml
+++ b/ansible/roles/swift/tasks/start.yml
@@ -41,7 +41,6 @@
- "{{ node_config_directory }}/swift-rsyncd/:{{ container_config_directory }}/:ro"
- "{{ swift_devices_mount_point }}:{{ swift_devices_mount_point }}"
- "/etc/localtime:/etc/localtime:ro"
- - "heka_socket:/var/lib/kolla/heka/"
when: inventory_hostname in groups['swift-account-server'] or
inventory_hostname in groups['swift-container-server'] or
inventory_hostname in groups['swift-object-server']
@@ -57,7 +56,6 @@
- "{{ node_config_directory }}/swift-account-server/:{{ container_config_directory }}/:ro"
- "{{ swift_devices_mount_point }}:{{ swift_devices_mount_point }}"
- "/etc/localtime:/etc/localtime:ro"
- - "heka_socket:/var/lib/kolla/heka/"
when: inventory_hostname in groups['swift-account-server']
- name: Starting swift-account-auditor container
@@ -71,7 +69,6 @@
- "{{ node_config_directory }}/swift-account-auditor/:{{ container_config_directory }}/:ro"
- "{{ swift_devices_mount_point }}:{{ swift_devices_mount_point }}"
- "/etc/localtime:/etc/localtime:ro"
- - "heka_socket:/var/lib/kolla/heka/"
when: inventory_hostname in groups['swift-account-server']
- name: Starting swift-account-replicator container
@@ -85,7 +82,6 @@
- "{{ node_config_directory }}/swift-account-replicator/:{{ container_config_directory }}/:ro"
- "{{ swift_devices_mount_point }}:{{ swift_devices_mount_point }}"
- "/etc/localtime:/etc/localtime:ro"
- - "heka_socket:/var/lib/kolla/heka/"
when: inventory_hostname in groups['swift-account-server']
- name: Starting swift-account-reaper container
@@ -99,7 +95,6 @@
- "{{ node_config_directory }}/swift-account-reaper/:{{ container_config_directory }}/:ro"
- "{{ swift_devices_mount_point }}:{{ swift_devices_mount_point }}"
- "/etc/localtime:/etc/localtime:ro"
- - "heka_socket:/var/lib/kolla/heka/"
when: inventory_hostname in groups['swift-account-server']
- name: Starting swift-container-server container
@@ -113,7 +108,6 @@
- "{{ node_config_directory }}/swift-container-server/:{{ container_config_directory }}/:ro"
- "{{ swift_devices_mount_point }}:{{ swift_devices_mount_point }}"
- "/etc/localtime:/etc/localtime:ro"
- - "heka_socket:/var/lib/kolla/heka/"
when: inventory_hostname in groups['swift-container-server']
- name: Starting swift-container-auditor container
@@ -127,7 +121,6 @@
- "{{ node_config_directory }}/swift-container-auditor/:{{ container_config_directory }}/:ro"
- "{{ swift_devices_mount_point }}:{{ swift_devices_mount_point }}"
- "/etc/localtime:/etc/localtime:ro"
- - "heka_socket:/var/lib/kolla/heka/"
when: inventory_hostname in groups['swift-container-server']
- name: Starting swift-container-replicator container
@@ -141,7 +134,6 @@
- "{{ node_config_directory }}/swift-container-replicator/:{{ container_config_directory }}/:ro"
- "{{ swift_devices_mount_point }}:{{ swift_devices_mount_point }}"
- "/etc/localtime:/etc/localtime:ro"
- - "heka_socket:/var/lib/kolla/heka/"
when: inventory_hostname in groups['swift-container-server']
- name: Starting swift-container-updater container
@@ -155,7 +147,6 @@
- "{{ node_config_directory }}/swift-container-updater/:{{ container_config_directory }}/:ro"
- "{{ swift_devices_mount_point }}:{{ swift_devices_mount_point }}"
- "/etc/localtime:/etc/localtime:ro"
- - "heka_socket:/var/lib/kolla/heka/"
when: inventory_hostname in groups['swift-container-server']
- name: Starting swift-object-server container
@@ -197,7 +188,6 @@
- "{{ node_config_directory }}/swift-object-replicator/:{{ container_config_directory }}/:ro"
- "{{ swift_devices_mount_point }}:{{ swift_devices_mount_point }}"
- "/etc/localtime:/etc/localtime:ro"
- - "heka_socket:/var/lib/kolla/heka/"
when: inventory_hostname in groups['swift-object-server']
- name: Starting swift-object-updater container
@@ -211,7 +201,6 @@
- "{{ node_config_directory }}/swift-object-updater/:{{ container_config_directory }}/:ro"
- "{{ swift_devices_mount_point }}:{{ swift_devices_mount_point }}"
- "/etc/localtime:/etc/localtime:ro"
- - "heka_socket:/var/lib/kolla/heka/"
when: inventory_hostname in groups['swift-object-server']
- name: Starting swift-object-expirer container
@@ -225,7 +214,6 @@
- "{{ node_config_directory }}/swift-object-expirer/:{{ container_config_directory }}/:ro"
- "{{ swift_devices_mount_point }}:{{ swift_devices_mount_point }}"
- "/etc/localtime:/etc/localtime:ro"
- - "heka_socket:/var/lib/kolla/heka/"
when: inventory_hostname in groups['swift-object-server']
- name: Starting swift-proxy-server container
@@ -238,5 +226,4 @@
- "{{ node_config_directory }}/swift/:/var/lib/kolla/swift/:ro"
- "{{ node_config_directory }}/swift-proxy-server/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- - "heka_socket:/var/lib/kolla/heka/"
when: inventory_hostname in groups['swift-proxy-server']
diff --git a/ansible/roles/swift/templates/account.conf.j2 b/ansible/roles/swift/templates/account.conf.j2
index 37bae3e5d0..753423db96 100644
--- a/ansible/roles/swift/templates/account.conf.j2
+++ b/ansible/roles/swift/templates/account.conf.j2
@@ -3,7 +3,8 @@ bind_ip = {{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4'
bind_port = {{ swift_account_server_port }}
devices = {{ swift_devices_mount_point }}
mount_check = false
-log_address = /var/lib/kolla/heka/log
+log_udp_host = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
+log_udp_port = {{ fluentd_syslog_port }}
log_name = {{ service_name }}
log_facility = LOG_LOCAL0
log_level = INFO
diff --git a/ansible/roles/swift/templates/container.conf.j2 b/ansible/roles/swift/templates/container.conf.j2
index 563cdcc2f6..6867ca8499 100644
--- a/ansible/roles/swift/templates/container.conf.j2
+++ b/ansible/roles/swift/templates/container.conf.j2
@@ -3,7 +3,8 @@ bind_ip = {{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4'
bind_port = {{ swift_container_server_port }}
devices = {{ swift_devices_mount_point }}
mount_check = false
-log_address = /var/lib/kolla/heka/log
+log_udp_host = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
+log_udp_port = {{ fluentd_syslog_port }}
log_name = {{ service_name }}
log_facility = LOG_LOCAL0
log_level = INFO
diff --git a/ansible/roles/swift/templates/object.conf.j2 b/ansible/roles/swift/templates/object.conf.j2
index 2fdad13509..6fa1c77d1a 100644
--- a/ansible/roles/swift/templates/object.conf.j2
+++ b/ansible/roles/swift/templates/object.conf.j2
@@ -4,7 +4,8 @@ bind_port = {{ swift_object_server_port }}
devices = {{ swift_devices_mount_point }}
mount_check = false
-log_address = /var/lib/kolla/heka/log
+log_udp_host = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
+log_udp_port = {{ fluentd_syslog_port }}
log_name = {{ service_name }}
log_facility = LOG_LOCAL0
log_level = INFO
diff --git a/ansible/roles/swift/templates/proxy-server.conf.j2 b/ansible/roles/swift/templates/proxy-server.conf.j2
index 596d96cb43..6177700f89 100644
--- a/ansible/roles/swift/templates/proxy-server.conf.j2
+++ b/ansible/roles/swift/templates/proxy-server.conf.j2
@@ -2,7 +2,8 @@
bind_ip = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
bind_port = {{ swift_proxy_server_port }}
-log_address = /var/lib/kolla/heka/log
+log_udp_host = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
+log_udp_port = {{ fluentd_syslog_port }}
log_name = {{ service_name }}
log_facility = LOG_LOCAL0
log_level = INFO
diff --git a/releasenotes/notes/add-fluentd-role-bc3f4976c807a50b.yaml b/releasenotes/notes/add-fluentd-role-bc3f4976c807a50b.yaml
new file mode 100644
index 0000000000..1cea8af500
--- /dev/null
+++ b/releasenotes/notes/add-fluentd-role-bc3f4976c807a50b.yaml
@@ -0,0 +1,5 @@
+---
+upgrade:
+ - Heka is deprecated and is replaced with Fluentd
+features:
+ - Add Fluentd role, Fluentd is an open source data collector for unified logging layer
diff --git a/tools/setup_gate.sh b/tools/setup_gate.sh
index 4b63252fd2..10b1245462 100755
--- a/tools/setup_gate.sh
+++ b/tools/setup_gate.sh
@@ -64,7 +64,7 @@ registry = 127.0.0.1:4000
push = true
[profiles]
-gate = cron,glance,haproxy,keepalived,keystone,kolla-toolbox,mariadb,memcached,neutron,nova,openvswitch,rabbitmq,heka,horizon
+gate = cron,fluentd,glance,haproxy,keepalived,keystone,kolla-toolbox,mariadb,memcached,neutron,nova,openvswitch,rabbitmq,horizon
EOF
if [[ "${DISTRO}" == "Debian" ]]; then