Add fluentd role

* add fluentd role
* remove heka configure

Co-Authored-By: yangzb09 <yangzb09@qq.com>

Partially-Implements: blueprint add-fluentd-role

Change-Id: Ica804a99f5bb8b157f406299c5982b7b6283b3e3
This commit is contained in:
zhubingbing 2016-12-02 14:35:28 +00:00 committed by zhubingbing
parent 6f15d6b826
commit d3d4a933be
47 changed files with 334 additions and 463 deletions

View File

@ -224,6 +224,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"

View File

@ -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 }}"

View File

@ -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

View File

@ -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:

View File

@ -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:

View File

@ -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"

View File

@ -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/"

View File

@ -1,4 +1,6 @@
---
- include: config.yml
- include: clean_heka.yml
- include: start.yml

View File

@ -0,0 +1,8 @@
<filter *.var.log.kolla.*.*.log>
@type record_transformer
<record>
Hostname ${hostname}
Logger openstack.${tag_parts[4]}
programname ${tag_parts[5]}
</record>
</filter>

View File

@ -0,0 +1,17 @@
<match kolla.var.log.kolla.*.*.log>
@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
</match>

View File

@ -0,0 +1,20 @@
<filter apache_access>
@type parser
reserve_data true
key_name message
<parse>
@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
</parse>
</filter>
<filter apache_access>
@type record_transformer
<record>
severity_label INFO
Severity 6
</record>
</filter>

View File

@ -0,0 +1,12 @@
<filter wsgi_access>
@type parser
reserve_data true
key_name message
<parse>
@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
</parse>
</filter>

View File

@ -0,0 +1,12 @@
<filter openstack_python>
@type parser
reserve_data true
key_name message
<parse>
@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
</parse>
</filter>

View File

@ -0,0 +1,8 @@
<source>
@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 /^(?<message>.*)$/
</source>

View File

@ -0,0 +1,7 @@
<source>
@type syslog
port {{ fluentd_syslog_port }}
bind {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
tag syslog
format /^(?<Payload>.*)$/
</source>

View File

@ -0,0 +1,10 @@
<source>
@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 /^(?<time>\d{6} \d{1,2}:\d{1,2}:\d{1,2}) \[(?<severity_label>\S+)\] (?<Payload>.*)/
time_format %y%m%d %k:%M:%S
</source>

View File

@ -0,0 +1,10 @@
<source>
@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 /^(?<Payload>.*)\n/
</source>

View File

@ -0,0 +1,41 @@
<match syslog.local0.**>
@type copy
<store>
@type file
path /var/log/kolla/swift/swift_latest.*.log
symlink_path /var/log/kolla/swift/swift_latest.log
utc
append true
compress gzip
</store>
<store>
type elasticsearch
host {{ kolla_external_vip_address }}
port {{ elasticsearch_port }}
logstash_format true
logstash_prefix flog
flush_interval 15s
</store>
</match>
<match syslog.local1.**>
@type copy
<store>
@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
</store>
<store>
type elasticsearch
host {{ kolla_external_vip_address }}
port {{ elasticsearch_port }}
logstash_format true
logstash_prefix flog
flush_interval 15s
</store>
</match>

View File

@ -0,0 +1,11 @@
<match *.**>
type copy
<store>
type elasticsearch
host {{ kolla_external_vip_address }}
port {{ elasticsearch_port }}
logstash_format true
logstash_prefix flog
flush_interval 15s
</store>
</match>

View File

@ -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
}
]
}

View File

@ -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<Service>.+)-access\.log\.?(?P<Seq>\d*)$'
priority = ["^Seq"]
differentiator = ["aodh-apache-", "Service"]

View File

@ -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<Service>.+)-access\.log\.?(?P<Seq>\d*)$'
priority = ["^Seq"]
differentiator = ["barbican-apache-", "Service"]

View File

@ -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/(?P<Service>ceilometer-.*)\.log\.?(?P<Seq>\d*)$'
priority = ["^Seq"]
differentiator = ["Service"]

View File

@ -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"

View File

@ -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"

View File

@ -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<Service>.+)-access\.log\.?(?P<Seq>\d*)$'
priority = ["^Seq"]
differentiator = ["gnocchi-apache-", "Service"]

View File

@ -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/(?P<Service>grafana.*)\.log\.?(?P<Seq>\d*)$'
priority = ["^Seq"]
differentiator = ["Service"]

View File

@ -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"

View File

@ -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/(?P<Service>horizon.*)\.log\.?(?P<Seq>\d*)$'
priority = ["^Seq"]
differentiator = ["Service"]

View File

@ -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"

View File

@ -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<Service>.+)-access\.log\.?(?P<Seq>\d*)$'
priority = ["^Seq"]
differentiator = ["keystone-apache-", "Service"]

View File

@ -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<Seq>\d*)$'
priority = ["^Seq"]
differentiator = ['mariadb']

View File

@ -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 = '(?P<Service>cloudkitty|designate|nova|glance|keystone|neutron|ceph|cinder|heat|murano|magnum|mistral|manila|octavia|searchlight|senlin|sahara|tacker)/(?P<Program>.*)\.log\.?(?P<Seq>\d*)$'
priority = ["^Seq"]
differentiator = ["Service", "_", "Program"]

View File

@ -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<Service>.+)-access\.log\.?(?P<Seq>\d*)$'
priority = ["^Seq"]
differentiator = ["panko-apache-", "Service"]

View File

@ -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/(?P<Service>rabbit.*)\.log\.?(?P<Seq>\d*)$'
priority = ["^Seq"]
differentiator = ["Service"]

View File

@ -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"

View File

@ -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
}
]
}

View File

@ -0,0 +1,4 @@
@include input/*.conf
@include filter/*.conf
@include format/*.conf
@include output/*.conf

View File

@ -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

View File

@ -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 %}

View File

@ -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']

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -68,7 +68,7 @@ install_type = ${INSTALL_TYPE}
profile = gate
[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