Skip to content

Commit 834ce90

Browse files
author
ahochor
committed
init
0 parents  commit 834ce90

File tree

10 files changed

+341
-0
lines changed

10 files changed

+341
-0
lines changed

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
*.pyc
2+
*.swp
3+
*.swo
4+
*.idea
5+
*.swp
6+
*.swo
7+
*.idea
8+
.molecule
9+
.cache
10+
**__pycache__**

defaults/main.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
filebeat_inputs:
3+
- type: "docker"
4+
combine_partial: "false"
5+
containers.ids:
6+
- "*"
7+
8+
### beats
9+
filebeat_output:
10+
type: "logstash"
11+
hosts: "0.0.0.0:5044"
12+
13+
processors:
14+
- "add_docker_metadata: ~"

handlers/main.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
- name: restart filebeat
3+
service:
4+
name: "filebeat"
5+
state: restarted

molecule.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
ansible:
3+
playbook: tests/playbook.yml
4+
verbose: vv
5+
driver:
6+
name: docker
7+
verifier:
8+
name: testinfra
9+
docker:
10+
containers:
11+
- name: xenial
12+
image: solita/ubuntu-systemd
13+
image_version: 16.04
14+
privileged: true
15+
- name: centos
16+
image: solita/centos-systemd
17+
image_version: latest
18+
privileged: true

tasks/configure.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
- name: configure filebeat
3+
template:
4+
src: 'filebeat.yml.j2'
5+
dest: '/etc/filebeat/filebeat.yml'
6+
mode: 0644
7+
backup: yes
8+
notify: restart filebeat

tasks/install.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
- name: install apt-transport-https
3+
apt:
4+
name: apt-transport-https
5+
state: present
6+
when: ansible_pkg_mgr == "apt"
7+
8+
- name: add GPG key
9+
apt_key:
10+
url: https://artifacts.elastic.co/GPG-KEY-elasticsearch
11+
state: present
12+
when: ansible_pkg_mgr == "apt"
13+
14+
- name: add elatic repository
15+
apt_repository:
16+
repo: deb https://artifacts.elastic.co/packages/6.x/apt stable main
17+
state: present
18+
update_cache: yes
19+
when: ansible_pkg_mgr == "apt"
20+
21+
- name: install filebeat
22+
apt:
23+
name: filebeat
24+
state: present
25+
when: ansible_pkg_mgr == "apt"
26+
27+
- name: add GPG key
28+
rpm_key:
29+
key: https://artifacts.elastic.co/GPG-KEY-elasticsearch
30+
state: present
31+
when: ansible_pkg_mgr == "yum"
32+
33+
- name: add elastic repository
34+
template:
35+
src: elastic.repo
36+
dest: /etc/yum.repos.d/elastic.repo
37+
when: ansible_pkg_mgr == "yum"
38+
39+
- name: install filebeat
40+
yum:
41+
name: filebeat
42+
state: present
43+
when: ansible_pkg_mgr == "yum"

tasks/main.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
- include: install.yml
3+
- include: configure.yml

templates/elastic.repo

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[elastic-6.x]
2+
name=Elastic repository for 6.x packages
3+
baseurl=https://artifacts.elastic.co/packages/6.x/yum
4+
gpgcheck=1
5+
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
6+
enabled=1
7+
autorefresh=1
8+
type=rpm-md

templates/filebeat.yml.j2

Lines changed: 228 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,228 @@
1+
###################### Filebeat Configuration Example #########################
2+
3+
# This file is an example configuration file highlighting only the most common
4+
# options. The filebeat.reference.yml file from the same directory contains all the
5+
# supported options with more comments. You can use it as a reference.
6+
#
7+
# You can find the full configuration reference here:
8+
# https://www.elastic.co/guide/en/beats/filebeat/index.html
9+
10+
# For more available modules and options, please see the filebeat.reference.yml sample
11+
# configuration file.
12+
13+
#=========================== Filebeat inputs =============================
14+
15+
#filebeat.inputs:
16+
17+
# Each - is an input. Most options can be set at the input level, so
18+
# you can use different inputs for various configurations.
19+
# Below are the input specific configurations.
20+
21+
#- type: log
22+
23+
# Change to true to enable this input configuration.
24+
# enabled: false
25+
26+
# Paths that should be crawled and fetched. Glob based paths.
27+
# paths:
28+
# - /var/log/*.log
29+
#- c:\programdata\elasticsearch\logs\*
30+
31+
# Exclude lines. A list of regular expressions to match. It drops the lines that are
32+
# matching any regular expression from the list.
33+
#exclude_lines: ['^DBG']
34+
35+
# Include lines. A list of regular expressions to match. It exports the lines that are
36+
# matching any regular expression from the list.
37+
#include_lines: ['^ERR', '^WARN']
38+
39+
# Exclude files. A list of regular expressions to match. Filebeat drops the files that
40+
# are matching any regular expression from the list. By default, no files are dropped.
41+
#exclude_files: ['.gz$']
42+
43+
# Optional additional fields. These fields can be freely picked
44+
# to add additional information to the crawled log files for filtering
45+
#fields:
46+
# level: debug
47+
# review: 1
48+
49+
### Multiline options
50+
51+
# Multiline can be used for log messages spanning multiple lines. This is common
52+
# for Java Stack Traces or C-Line Continuation
53+
54+
# The regexp Pattern that has to be matched. The example pattern matches all lines starting with [
55+
#multiline.pattern: ^\[
56+
57+
# Defines if the pattern set under pattern should be negated or not. Default is false.
58+
#multiline.negate: true
59+
60+
# Match can be set to "after" or "before". It is used to define if lines should be append to a pattern
61+
# that was (not) matched before or after or as long as a pattern is not matched based on negate.
62+
# Note: After is the equivalent to previous and before is the equivalent to to next in Logstash
63+
#multiline.match: after
64+
65+
#-------------------------------------------------------------------------------
66+
filebeat.inputs:
67+
{% for input in filebeat_inputs %}
68+
- type: {{ input.type }}
69+
{% for key in input %}
70+
{% if key != "type" %}
71+
{{ key }} : {{ input[key] | to_json }}
72+
{% endif %}
73+
{% endfor %}
74+
{% endfor %}
75+
76+
multiline.pattern: ^\[
77+
multiline.negate: true
78+
multiline.match: after
79+
80+
#============================= Filebeat modules ===============================
81+
82+
filebeat.config.modules:
83+
# Glob pattern for configuration loading
84+
path: ${path.config}/modules.d/*.yml
85+
86+
# Set to true to enable config reloading
87+
reload.enabled: false
88+
89+
# Period on which files under path should be checked for changes
90+
#reload.period: 10s
91+
92+
#==================== Elasticsearch template setting ==========================
93+
94+
setup.template.settings:
95+
index.number_of_shards: 3
96+
#index.codec: best_compression
97+
_source.enabled: true
98+
99+
#================================ General =====================================
100+
101+
# The name of the shipper that publishes the network data. It can be used to group
102+
# all the transactions sent by a single shipper in the web interface.
103+
#name:
104+
105+
# The tags of the shipper are included in their own field with each
106+
# transaction published.
107+
#tags: ["service-X", "web-tier"]
108+
109+
# Optional fields that you can specify to add additional information to the
110+
# output.
111+
#fields:
112+
# env: staging
113+
114+
115+
#============================== Dashboards =====================================
116+
# These settings control loading the sample dashboards to the Kibana index. Loading
117+
# the dashboards is disabled by default and can be enabled either by setting the
118+
# options here, or by using the `-setup` CLI flag or the `setup` command.
119+
#setup.dashboards.enabled: false
120+
121+
# The URL from where to download the dashboards archive. By default this URL
122+
# has a value which is computed based on the Beat name and version. For released
123+
# versions, this URL points to the dashboard archive on the artifacts.elastic.co
124+
# website.
125+
#setup.dashboards.url:
126+
127+
#============================== Kibana =====================================
128+
129+
# Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API.
130+
# This requires a Kibana endpoint configuration.
131+
setup.kibana:
132+
133+
# Kibana Host
134+
# Scheme and port can be left out and will be set to the default (http and 5601)
135+
# In case you specify and additional path, the scheme is required: http://localhost:5601/path
136+
# IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
137+
#host: "localhost:5601"
138+
139+
# Kibana Space ID
140+
# ID of the Kibana Space into which the dashboards should be loaded. By default,
141+
# the Default Space will be used.
142+
#space.id:
143+
144+
#============================= Elastic Cloud ==================================
145+
146+
# These settings simplify using filebeat with the Elastic Cloud (https://cloud.elastic.co/).
147+
148+
# The cloud.id setting overwrites the `output.elasticsearch.hosts` and
149+
# `setup.kibana.host` options.
150+
# You can find the `cloud.id` in the Elastic Cloud web UI.
151+
#cloud.id:
152+
153+
# The cloud.auth setting overwrites the `output.elasticsearch.username` and
154+
# `output.elasticsearch.password` settings. The format is `<user>:<pass>`.
155+
#cloud.auth:
156+
157+
#================================ Outputs =====================================
158+
159+
# Configure what output to use when sending the data collected by the beat.
160+
161+
#-------------------------- Elasticsearch output ------------------------------
162+
#output.elasticsearch:
163+
# Array of hosts to connect to.
164+
# hosts: ["localhost:9200"]
165+
166+
# Optional protocol and basic auth credentials.
167+
#protocol: "https"
168+
#username: "elastic"
169+
#password: "changeme"
170+
171+
#----------------------------- Logstash output --------------------------------
172+
#output.logstash:
173+
# The Logstash hosts
174+
# hosts: ["localhost:5044"]
175+
176+
# Optional SSL. By default is off.
177+
# List of root certificates for HTTPS server verifications
178+
#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
179+
180+
# Certificate for SSL client authentication
181+
#ssl.certificate: "/etc/pki/client/cert.pem"
182+
183+
# Client Certificate Key
184+
#ssl.key: "/etc/pki/client/cert.key"
185+
186+
#------------------------------------------------------------------------------
187+
188+
output.{{ filebeat_output.type }}:
189+
hosts: ["{{ filebeat_output.hosts }}"]
190+
191+
#================================ Procesors =====================================
192+
193+
# Configure processors to enhance or manipulate events generated by the beat.
194+
195+
#processors:
196+
# - add_host_metadata: ~
197+
# - add_cloud_metadata: ~
198+
199+
processors:
200+
{% for processor in processors %}
201+
- {{ processor }}
202+
{% endfor %}
203+
204+
#================================ Logging =====================================
205+
206+
# Sets log level. The default log level is info.
207+
# Available log levels are: error, warning, info, debug
208+
logging.level: debug
209+
210+
# At debug level, you can selectively enable logging only for some components.
211+
# To enable all selectors use ["*"]. Examples of other selectors are "beat",
212+
# "publish", "service".
213+
logging.selectors: ["*"]
214+
215+
#============================== Xpack Monitoring ===============================
216+
# filebeat can export internal metrics to a central Elasticsearch monitoring
217+
# cluster. This requires xpack monitoring to be enabled in Elasticsearch. The
218+
# reporting is disabled by default.
219+
220+
# Set to true to enable the monitoring reporter.
221+
#xpack.monitoring.enabled: false
222+
223+
# Uncomment to send the metrics to Elasticsearch. Most settings from the
224+
# Elasticsearch output are accepted here as well. Any setting that is not set is
225+
# automatically inherited from the Elasticsearch output configuration, so if you
226+
# have the Elasticsearch output configured, you can simply uncomment the
227+
# following line.
228+
#xpack.monitoring.elasticsearch:

tests/playbook.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
- hosts: all
3+
roles:
4+
- ansible-filebeat

0 commit comments

Comments
 (0)