forked from elastic/built-docs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfiguration-file-structure.html
324 lines (302 loc) · 18.8 KB
/
configuration-file-structure.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="UTF-8">
<title>Structure of a Config File | Logstash Reference [2.0] | Elastic</title>
<meta class="elastic" name="content" content="Structure of a Config File | Logstash Reference [2.0]">
<link rel="home" href="index.html" title="Logstash Reference [2.0]"/>
<link rel="up" href="configuration.html" title="Configuring Logstash"/>
<link rel="prev" href="configuration.html" title="Configuring Logstash"/>
<link rel="next" href="event-dependent-configuration.html" title="Event Dependent Configuration"/>
<meta class="elastic" name="product_version" content="2.0"/>
<meta class="elastic" name="product_name" content="Logstash"/>
<meta class="elastic" name="website_area" content="documentation"/>
<meta name="DC.type" content="Learn/Docs/Logstash/Reference/2.0"/>
<meta name="DC.subject" content="Logstash"/>
<meta name="DC.identifier" content="2.0"/>
<meta name="robots" content="noindex,nofollow"/>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://cdn.optimizely.com/js/18132920325.js"></script>
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="/manifest.json">
<meta name="apple-mobile-web-app-title" content="Elastic">
<meta name="application-name" content="Elastic">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/mstile-144x144.png">
<meta name="theme-color" content="#ffffff">
<meta name="naver-site-verification" content="936882c1853b701b3cef3721758d80535413dbfd" />
<meta name="yandex-verification" content="d8a47e95d0972434" />
<meta name="localized" content="true" />
<meta name="st:robots" content="follow,index" />
<meta property="og:image" content="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt280217a63b82a734/6202d3378b1f312528798412/elastic-logo.svg" />
<meta property="og:image:width" content="500" />
<meta property="og:image:height" content="172" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon-precomposed" sizes="64x64" href="/favicon_64x64_16bit.png">
<link rel="apple-touch-icon-precomposed" sizes="32x32" href="/favicon_32x32.png">
<link rel="apple-touch-icon-precomposed" sizes="16x16" href="/favicon_16x16.png">
<!-- Give IE8 a fighting chance -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="/guide/static/styles.css" />
</head>
<!--© 2015-2022 Elasticsearch B.V. -->
<!-- All Elastic documentation is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. -->
<!-- http://creativecommons.org/licenses/by-nc-nd/4.0/ -->
<body>
<!-- Google Tag Manager -->
<script>dataLayer = [];</script><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-58RLH5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58RLH5');</script>
<!-- End Google Tag Manager -->
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-12395217-16"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-12395217-16');
</script>
<!-- Google Tag Manager for GA4 -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-KNJMG2M');</script>
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KNJMG2M" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager for GA4-->
<div id='elastic-nav' style="display:none;"></div>
<script src='https://www.elastic.co/elastic-nav.js'></script>
<div class="main-container">
<section id="content" >
<div class="content-wrapper">
<section id="guide" lang="en">
<div class="container-fluid">
<div class="row pb-3">
<div class="col-12 order-2 col-md-4 order-md-1 col-lg-3 h-almost-full-md sticky-top-md" id="left_col">
<!-- The TOC is appended here -->
</div>
<div class="col-12 order-1 col-md-8 order-md-2 col-lg-7 order-lg-2 guide-section" id="middle_col">
<!-- start body -->
<div class="page_header">
<strong>IMPORTANT</strong>: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
<a href="../current/index.html">current release documentation</a>.
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="/guide/">Elastic Docs</a></span>
<span class="chevron-right">›</span><span class="breadcrumb-link"><a href="index.html">Logstash Reference [2.0]</a></span>
<span class="chevron-right">›</span><span class="breadcrumb-link"><a href="logstash-reference.html">Logstash Reference</a></span>
<span class="chevron-right">›</span><span class="breadcrumb-link"><a href="configuration.html">Configuring Logstash</a></span>
</div>
<div class="navheader">
<span class="prev">
<a href="configuration.html">« Configuring Logstash</a>
</span>
<span class="next">
<a href="event-dependent-configuration.html">Event Dependent Configuration »</a>
</span>
</div>
<div class="section">
<div class="titlepage"><div><div>
<h2 class="title"><a id="configuration-file-structure"></a>Structure of a Config File<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/logstash/edit/master/docs/asciidoc/static/configuration.asciidoc">edit</a></h2>
</div></div></div>
<p>A Logstash config file has a separate section for each type of plugin you want to add to the event processing pipeline. For example:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js"># This is a comment. You should use comments to describe
# parts of your configuration.
input {
...
}
filter {
...
}
output {
...
}</pre>
</div>
<p>Each section contains the configuration options for one or more plugins. If you specify
multiple filters, they are applied in the order of their appearance in the configuration file.</p>
<h3><a id="plugin_configuration"></a>Plugin Configuration<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/logstash/edit/master/docs/asciidoc/static/configuration.asciidoc">edit</a></h3>
<p>The configuration of a plugin consists of the plugin name followed
by a block of settings for that plugin. For example, this input section configures two file inputs:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js">input {
file {
path => "/var/log/messages"
type => "syslog"
}
file {
path => "/var/log/apache/access.log"
type => "apache"
}
}</pre>
</div>
<p>In this example, two settings are configured for each of the file inputs: <em>path</em> and <em>type</em>.</p>
<p>The settings you can configure vary according to the plugin type. For information about each plugin, see <a class="xref" href="input-plugins.html" title="Input plugins">Input Plugins</a>, <a class="xref" href="output-plugins.html" title="Output plugins">Output Plugins</a>, <a class="xref" href="filter-plugins.html" title="Filter plugins">Filter Plugins</a>, and <a class="xref" href="codec-plugins.html" title="Codec plugins">Codec Plugins</a>.</p>
<h3><a id="plugin-value-types"></a>Value Types<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/logstash/edit/master/docs/asciidoc/static/configuration.asciidoc">edit</a></h3>
<p>A plugin can require that the value for a setting be a
certain type, such as boolean or hash. The following value
types are supported.</p>
<h4><a id="array"></a>Array<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/logstash/edit/master/docs/asciidoc/static/configuration.asciidoc">edit</a></h4>
<p>An array can be a single string value or multiple values. If you specify the same
setting multiple times, it appends to the array.</p>
<p>Example:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js"> path => [ "/var/log/messages", "/var/log/*.log" ]
path => "/data/mysql/mysql.log"</pre>
</div>
<p>This example configures <code class="literal">path</code> to be an array that contains an element for each of the three strings.</p>
<h4><a id="boolean"></a>Boolean<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/logstash/edit/master/docs/asciidoc/static/configuration.asciidoc">edit</a></h4>
<p>A boolean must be either <code class="literal">true</code> or <code class="literal">false</code>. Note that the <code class="literal">true</code> and <code class="literal">false</code> keywords
are not enclosed in quotes.</p>
<p>Example:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js"> ssl_enable => true</pre>
</div>
<h4><a id="bytes"></a>Bytes<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/logstash/edit/master/docs/asciidoc/static/configuration.asciidoc">edit</a></h4>
<p>A bytes field is a string field that represents a valid unit of bytes. It is a
convenient way to declare specific sizes in your plugin options. Both SI (k M G T P E Z Y)
and Binary (Ki Mi Gi Ti Pi Ei Zi Yi) units are supported. Binary units are in
base-1024 and SI units are in base-1000. This field is case-insensitive
and accepts space between the value and the unit. If no unit is specified, the integer string
represents the number of bytes.</p>
<p>Examples:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js"> my_bytes => "1113" # 1113 bytes
my_bytes => "10MiB" # 10485760 bytes
my_bytes => "100kib" # 102400 bytes
my_bytes => "180 mb" # 180000000 bytes</pre>
</div>
<h4><a id="codec"></a>Codec<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/logstash/edit/master/docs/asciidoc/static/configuration.asciidoc">edit</a></h4>
<p>A codec is the name of Logstash codec used to represent the data. Codecs can be
used in both inputs and outputs.</p>
<p>Input codecs provide a convenient way to decode your data before it enters the input.
Output codecs provide a convenient way to encode your data before it leaves the output.
Using an input or output codec eliminates the need for a separate filter in your Logstash pipeline.</p>
<p>A list of available codecs can be found at the <a class="xref" href="codec-plugins.html" title="Codec plugins">Codec Plugins</a> page.</p>
<p>Example:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js"> codec => "json"</pre>
</div>
<h4><a id="hash"></a>Hash<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/logstash/edit/master/docs/asciidoc/static/configuration.asciidoc">edit</a></h4>
<p>A hash is a collection of key value pairs specified in the format <code class="literal">"field1" => "value1"</code>.
Note that multiple key value entries are separated by spaces rather than commas.</p>
<p>Example:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js">match => {
"field1" => "value1"
"field2" => "value2"
...
}</pre>
</div>
<h4><a id="number"></a>Number<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/logstash/edit/master/docs/asciidoc/static/configuration.asciidoc">edit</a></h4>
<p>Numbers must be valid numeric values (floating point or integer).</p>
<p>Example:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js"> port => 33</pre>
</div>
<h4><a id="password"></a>Password<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/logstash/edit/master/docs/asciidoc/static/configuration.asciidoc">edit</a></h4>
<p>A password is a string with a single value that is not logged or printed.</p>
<p>Example:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js"> my_password => "password"</pre>
</div>
<h4><a id="path"></a>Path<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/logstash/edit/master/docs/asciidoc/static/configuration.asciidoc">edit</a></h4>
<p>A path is a string that represents a valid operating system path.</p>
<p>Example:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js"> my_path => "/tmp/logstash"</pre>
</div>
<h4><a id="string"></a>String<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/logstash/edit/master/docs/asciidoc/static/configuration.asciidoc">edit</a></h4>
<p>A string must be a single character sequence. Note that string values are
enclosed in quotes, either double or single. Literal quotes in the string
need to be escaped with a backslash if they are of the same kind as the string
delimiter, i.e. single quotes within a single-quoted string need to be escaped
as well as double quotes within a double-quoted string.</p>
<p>Example:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js"> name => "Hello world"
name => 'It\'s a beautiful day'</pre>
</div>
<h3><a id="comments"></a>Comments<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/logstash/edit/master/docs/asciidoc/static/configuration.asciidoc">edit</a></h3>
<p>Comments are the same as in perl, ruby, and python. A comment starts with a <em>#</em> character, and does not need to be at the beginning of a line. For example:</p>
<div class="pre_wrapper lang-js">
<pre class="programlisting prettyprint lang-js"># this is a comment
input { # comments can appear at the end of a line, too
# ...
}</pre>
</div>
</div>
<div class="navfooter">
<span class="prev">
<a href="configuration.html">« Configuring Logstash</a>
</span>
<span class="next">
<a href="event-dependent-configuration.html">Event Dependent Configuration »</a>
</span>
</div>
</div>
<!-- end body -->
</div>
<div class="col-12 order-3 col-lg-2 order-lg-3 h-almost-full-lg sticky-top-lg" id="right_col">
<div id="sticky_content">
<!-- The OTP is appended here -->
<div class="row">
<div class="col-0 col-md-4 col-lg-0" id="bottom_left_col"></div>
<div class="col-12 col-md-8 col-lg-12">
<div id="rtpcontainer">
<div class="mktg-promo" id="most-popular">
<p class="aside-heading">Most Popular</p>
<div class="pb-2">
<p class="media-type">Video</p>
<a href="https://www.elastic.co/webinars/getting-started-elasticsearch?baymax=default&elektra=docs&storm=top-video">
<p class="mb-0">Get Started with Elasticsearch</p>
</a>
</div>
<div class="pb-2">
<p class="media-type">Video</p>
<a href="https://www.elastic.co/webinars/getting-started-kibana?baymax=default&elektra=docs&storm=top-video">
<p class="mb-0">Intro to Kibana</p>
</a>
</div>
<div class="pb-2">
<p class="media-type">Video</p>
<a href="https://www.elastic.co/webinars/introduction-elk-stack?baymax=default&elektra=docs&storm=top-video">
<p class="mb-0">ELK for Logs & Metrics</p>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
<div id='elastic-footer'></div>
<script src='https://www.elastic.co/elastic-footer.js'></script>
<!-- Footer Section end-->
</section>
</div>
<script src="/guide/static/jquery.js"></script>
<script type="text/javascript" src="/guide/static/docs.js"></script>
<script type="text/javascript">
window.initial_state = {}</script>
</body>
</html>