View | Details | Raw Unified | Return to bug 194670
Collapse All | Expand All

(-)Makefile (-2 / +1 lines)
Lines 56-63 Link Here
56
	${MKDIR} ${STAGEDIR}${LOGSTASH_DATA_DIR}
56
	${MKDIR} ${STAGEDIR}${LOGSTASH_DATA_DIR}
57
	@(cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${LOGSTASH_DIR})
57
	@(cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${LOGSTASH_DIR})
58
	${INSTALL_DATA} ${FILESDIR}/logstash.conf.sample ${STAGEDIR}${ETCDIR}
58
	${INSTALL_DATA} ${FILESDIR}/logstash.conf.sample ${STAGEDIR}${ETCDIR}
59
	${INSTALL_DATA} ${FILESDIR}/logstash.conf ${STAGEDIR}${ETCDIR}
59
	${INSTALL_DATA} ${FILESDIR}/elasticsearch.yml.sample ${STAGEDIR}${ETCDIR}
60
	${INSTALL_DATA} ${FILESDIR}/elasticsearch.yml ${STAGEDIR}${ETCDIR}
61
.for x in ${LOGSTASH_BIN_FILES}
60
.for x in ${LOGSTASH_BIN_FILES}
62
	@${CHMOD} ${BINMODE} ${STAGEDIR}${LOGSTASH_DIR}/bin/${x}
61
	@${CHMOD} ${BINMODE} ${STAGEDIR}${LOGSTASH_DIR}/bin/${x}
63
.endfor
62
.endfor
(-)files/elasticsearch.yml (-337 lines)
Lines 1-337 Link Here
1
##################### ElasticSearch Configuration Example #####################
2
3
# This file contains an overview of various configuration settings,
4
# targeted at operations staff. Application developers should
5
# consult the guide at <http://elasticsearch.org/guide>.
6
#
7
# The installation procedure is covered at
8
# <http://elasticsearch.org/guide/reference/setup/installation.html>.
9
#
10
# ElasticSearch comes with reasonable defaults for most settings,
11
# so you can try it out without bothering with configuration.
12
#
13
# Most of the time, these defaults are just fine for running a production
14
# cluster. If you're fine-tuning your cluster, or wondering about the
15
# effect of certain configuration option, please _do ask_ on the
16
# mailing list or IRC channel [http://elasticsearch.org/community].
17
18
# Any element in the configuration can be replaced with environment variables
19
# by placing them in ${...} notation. For example:
20
#
21
# node.rack: ${RACK_ENV_VAR}
22
23
# See <http://elasticsearch.org/guide/reference/setup/configuration.html>
24
# for information on supported formats and syntax for the configuration file.
25
26
27
################################### Cluster ###################################
28
29
# Cluster name identifies your cluster for auto-discovery. If you're running
30
# multiple clusters on the same network, make sure you're using unique names.
31
#
32
# cluster.name: elasticsearch
33
34
35
#################################### Node #####################################
36
37
# Node names are generated dynamically on startup, so you're relieved
38
# from configuring them manually. You can tie this node to a specific name:
39
#
40
# node.name: "Franz Kafka"
41
42
# Every node can be configured to allow or deny being eligible as the master,
43
# and to allow or deny to store the data.
44
#
45
# Allow this node to be eligible as a master node (enabled by default):
46
#
47
# node.master: true
48
#
49
# Allow this node to store data (enabled by default):
50
#
51
# node.data: true
52
53
# You can exploit these settings to design advanced cluster topologies.
54
#
55
# 1. You want this node to never become a master node, only to hold data.
56
#    This will be the "workhorse" of your cluster.
57
#
58
# node.master: false
59
# node.data: true
60
#
61
# 2. You want this node to only serve as a master: to not store any data and
62
#    to have free resources. This will be the "coordinator" of your cluster.
63
#
64
# node.master: true
65
# node.data: false
66
#
67
# 3. You want this node to be neither master nor data node, but
68
#    to act as a "search load balancer" (fetching data from nodes,
69
#    aggregating results, etc.)
70
#
71
# node.master: false
72
# node.data: false
73
74
# Use the Cluster Health API [http://localhost:9200/_cluster/health], the
75
# Node Info API [http://localhost:9200/_cluster/nodes] or GUI tools
76
# such as <http://github.com/lukas-vlcek/bigdesk> and
77
# <http://mobz.github.com/elasticsearch-head> to inspect the cluster state.
78
79
# A node can have generic attributes associated with it, which can later be used
80
# for customized shard allocation filtering, or allocation awareness. An attribute
81
# is a simple key value pair, similar to node.key: value, here is an example:
82
#
83
# node.rack: rack314
84
85
86
#################################### Index ####################################
87
88
# You can set a number of options (such as shard/replica options, mapping
89
# or analyzer definitions, translog settings, ...) for indices globally,
90
# in this file.
91
#
92
# Note, that it makes more sense to configure index settings specifically for
93
# a certain index, either when creating it or by using the index templates API.
94
#
95
# See <http://elasticsearch.org/guide/reference/index-modules/> and
96
# <http://elasticsearch.org/guide/reference/api/admin-indices-create-index.html>
97
# for more information.
98
99
# Set the number of shards (splits) of an index (5 by default):
100
#
101
# index.number_of_shards: 5
102
103
# Set the number of replicas (additional copies) of an index (1 by default):
104
#
105
# index.number_of_replicas: 1
106
107
# Note, that for development on a local machine, with small indices, it usually
108
# makes sense to "disable" the distributed features:
109
#
110
# index.number_of_shards: 1
111
# index.number_of_replicas: 0
112
113
# These settings directly affect the performance of index and search operations
114
# in your cluster. Assuming you have enough machines to hold shards and
115
# replicas, the rule of thumb is:
116
#
117
# 1. Having more *shards* enhances the _indexing_ performance and allows to
118
#    _distribute_ a big index across machines.
119
# 2. Having more *replicas* enhances the _search_ performance and improves the
120
#    cluster _availability_.
121
#
122
# The "number_of_shards" is a one-time setting for an index.
123
#
124
# The "number_of_replicas" can be increased or decreased anytime,
125
# by using the Index Update Settings API.
126
#
127
# ElasticSearch takes care about load balancing, relocating, gathering the
128
# results from nodes, etc. Experiment with different settings to fine-tune
129
# your setup.
130
131
# Use the Index Status API (<http://localhost:9200/A/_status>) to inspect
132
# the index status.
133
134
135
#################################### Paths ####################################
136
137
# Path to directory containing configuration (this file and logging.yml):
138
#
139
# path.conf: /path/to/conf
140
141
# Path to directory where to store index data allocated for this node.
142
#
143
# path.data: /path/to/data
144
#
145
# Can optionally include more than one location, causing data to be striped across
146
# the locations on a file level, favouring locations with most free
147
# space on creation. For example:
148
#
149
# path.data: /path/to/data1,/path/to/data2
150
151
# Path to temporary files:
152
#
153
# path.work: /path/to/work
154
155
# Path to log files:
156
#
157
# path.logs: /path/to/logs
158
159
# Path to where plugins are installed:
160
#
161
# path.plugins: /path/to/plugins
162
163
164
################################### Memory ####################################
165
166
# ElasticSearch performs poorly when JVM starts swapping: you should ensure that
167
# it _never_ swaps.
168
#
169
# Set this property to true to lock the memory:
170
#
171
# bootstrap.mlockall: true
172
173
# Make sure that the ES_MIN_MEM and ES_MAX_MEM environment variables are set
174
# to the same value, and that the machine has enough memory to allocate
175
# for ElasticSearch, leaving enough memory for the operating system itself.
176
#
177
# You should also make sure that the ElasticSearch process is allowed to lock
178
# the memory, eg. by using `ulimit -l unlimited`.
179
180
181
############################## Network And HTTP ###############################
182
183
# ElasticSearch, by default, binds itself to the 0.0.0.0 address, and listens
184
# on port [9200-9300] for HTTP traffic and on port [9300-9400] for node-to-node
185
# communication. (the range means that if the port is busy, it will automatically
186
# try the next port).
187
188
# Set the bind address specifically (IPv4 or IPv6):
189
#
190
# network.bind_host: 192.168.0.1
191
192
# Set the address other nodes will use to communicate with this node. If not
193
# set, it is automatically derived. It must point to an actual IP address.
194
#
195
# network.publish_host: 192.168.0.1
196
197
# Set both 'bind_host' and 'publish_host':
198
#
199
# network.host: 192.168.0.1
200
201
# Set a custom port for the node to node communication (9300 by default):
202
#
203
# transport.port: 9300
204
205
# Enable compression for all communication between nodes (disabled by default):
206
#
207
# transport.tcp.compress: true
208
209
# Set a custom port to listen for HTTP traffic:
210
#
211
# http.port: 9200
212
213
# Set a custom allowed content length:
214
#
215
# http.max_content_length: 100mb
216
217
# Disable HTTP completely:
218
#
219
# http.enabled: false
220
221
222
################################### Gateway ###################################
223
224
# The gateway allows for persisting the cluster state between full cluster
225
# restarts. Every change to the state (such as adding an index) will be stored
226
# in the gateway, and when the cluster starts up for the first time,
227
# it will read its state from the gateway.
228
229
# There are several types of gateway implementations. For more information,
230
# see <http://elasticsearch.org/guide/reference/modules/gateway>.
231
232
# The default gateway type is the "local" gateway (recommended):
233
#
234
# gateway.type: local
235
236
# Settings below control how and when to start the initial recovery process on
237
# a full cluster restart (to reuse as much local data as possible).
238
239
# Allow recovery process after N nodes in a cluster are up:
240
#
241
# gateway.recover_after_nodes: 1
242
243
# Set the timeout to initiate the recovery process, once the N nodes
244
# from previous setting are up (accepts time value):
245
#
246
# gateway.recover_after_time: 5m
247
248
# Set how many nodes are expected in this cluster. Once these N nodes
249
# are up, begin recovery process immediately:
250
#
251
# gateway.expected_nodes: 2
252
253
254
############################# Recovery Throttling #############################
255
256
# These settings allow to control the process of shards allocation between
257
# nodes during initial recovery, replica allocation, rebalancing,
258
# or when adding and removing nodes.
259
260
# Set the number of concurrent recoveries happening on a node:
261
#
262
# 1. During the initial recovery
263
#
264
# cluster.routing.allocation.node_initial_primaries_recoveries: 4
265
#
266
# 2. During adding/removing nodes, rebalancing, etc
267
#
268
# cluster.routing.allocation.node_concurrent_recoveries: 2
269
270
# Set to throttle throughput when recovering (eg. 100mb, by default unlimited):
271
#
272
# indices.recovery.max_size_per_sec: 0
273
274
# Set to limit the number of open concurrent streams when
275
# recovering a shard from a peer:
276
#
277
# indices.recovery.concurrent_streams: 5
278
279
280
################################## Discovery ##################################
281
282
# Discovery infrastructure ensures nodes can be found within a cluster
283
# and master node is elected. Multicast discovery is the default.
284
285
# Set to ensure a node sees N other master eligible nodes to be considered
286
# operational within the cluster. Set this option to a higher value (2-4)
287
# for large clusters:
288
#
289
# discovery.zen.minimum_master_nodes: 1
290
291
# Set the time to wait for ping responses from other nodes when discovering.
292
# Set this option to a higher value on a slow or congested network
293
# to minimize discovery failures:
294
#
295
# discovery.zen.ping.timeout: 3s
296
297
# See <http://elasticsearch.org/guide/reference/modules/discovery/zen.html>
298
# for more information.
299
300
# Unicast discovery allows to explicitly control which nodes will be used
301
# to discover the cluster. It can be used when multicast is not present,
302
# or to restrict the cluster communication-wise.
303
#
304
# 1. Disable multicast discovery (enabled by default):
305
#
306
# discovery.zen.ping.multicast.enabled: false
307
#
308
# 2. Configure an initial list of master nodes in the cluster
309
#    to perform discovery when new nodes (master or data) are started:
310
#
311
# discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"]
312
313
# EC2 discovery allows to use AWS EC2 API in order to perform discovery.
314
#
315
# You have to install the cloud-aws plugin for enabling the EC2 discovery.
316
#
317
# See <http://elasticsearch.org/guide/reference/modules/discovery/ec2.html>
318
# for more information.
319
#
320
# See <http://elasticsearch.org/tutorials/2011/08/22/elasticsearch-on-ec2.html>
321
# for a step-by-step tutorial.
322
323
324
################################## Slow Log ##################################
325
326
# Shard level query and fetch threshold logging.
327
328
#index.search.slowlog.level: TRACE
329
#index.search.slowlog.threshold.query.warn: 10s
330
#index.search.slowlog.threshold.query.info: 5s
331
#index.search.slowlog.threshold.query.debug: 2s
332
#index.search.slowlog.threshold.query.trace: 500ms
333
334
#index.search.slowlog.threshold.fetch.warn: 1s
335
#index.search.slowlog.threshold.fetch.info: 800ms
336
#index.search.slowlog.threshold.fetch.debug: 500ms
337
#index.search.slowlog.threshold.fetch.trace: 200ms
(-)files/logstash.conf (-17 lines)
Lines 1-17 Link Here
1
input {
2
  file {
3
    path => "/var/log/messages"
4
    type => "syslog"
5
  }
6
}
7
8
output {
9
  stdout {
10
    # debug => true
11
  }
12
13
  elasticsearch {
14
    embedded => true
15
    host => "127.0.0.1"
16
  }
17
}
(-)files/logstash.conf.sample (-40 / +42 lines)
Lines 2-53 Link Here
2
2
3
	file {
3
	file {
4
		type => "syslog"
4
		type => "syslog"
5
	    #  # Wildcards work, here :)
5
		# path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ]
6
	    #  path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ]
6
		path => "/var/log/messages"
7
	    path => "/var/log/messages"
7
		start_position => "beginning"
8
	    start_position => "beginning"
9
	}
8
	}
10
}
9
}
11
10
12
filter {
11
filter {
13
  if [type] == "syslog" {
12
# An filter may change the regular expression used to match a record or a field,
14
	grok {
13
# alter the value of parsed fields, add or remove fields, etc.
15
	  match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} (%{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}|%{GREEDYDATA:syslog_message})" }
14
#
16
	  add_field => [ "received_at", "%{@timestamp}" ]
15
#	if [type] == "syslog" {
17
	  add_field => [ "received_from", "%{@source_host}" ]
16
#		grok {
18
	}
17
#			match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} (%{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}|%{GREEDYDATA:syslog_message})" }
19
    
18
#			add_field => [ "received_at", "%{@timestamp}" ]
20
    if !("_grokparsefailure" in [tags]) {
19
#			add_field => [ "received_from", "%{@source_host}" ]
21
      mutate {
20
#		}
22
        replace => [ "@source_host", "%{syslog_hostname}" ]
21
#    
23
        replace => [ "@message", "%{syslog_message}" ]
22
#		if !("_grokparsefailure" in [tags]) {
24
      }
23
#			mutate {
25
    }
24
#				replace => [ "@source_host", "%{syslog_hostname}" ]
26
    mutate {
25
#				replace => [ "@message", "%{syslog_message}" ]
27
      remove_field => [ "syslog_hostname", "syslog_message" ]
26
#			}
28
    }
27
#		}
29
    date {
28
#		mutate {
30
      match => [ "syslog_timestamp","MMM  d HH:mm:ss", "MMM dd HH:mm:ss", "ISO8601" ] 
29
#			remove_field => [ "syslog_hostname", "syslog_message" ]
31
    }
30
#		}
32
	syslog_pri { }
31
#		date {
33
  }
32
#			match => [ "syslog_timestamp","MMM  d HH:mm:ss", "MMM dd HH:mm:ss", "ISO8601" ] 
33
#		}
34
#		syslog_pri { }
35
#	}
34
}
36
}
35
37
36
output {
38
output {
37
  # Emit events to stdout for easy debugging of what is going through
39
	# Emit events to stdout for easy debugging of what is going through
38
  # logstash.
40
	# logstash.
39
  #stdout { debug => "true" }
41
	# stdout { debug => "true" }
40
42
41
  # This will use elasticsearch to store your logs.
43
	# This will use elasticsearch to store your logs.
42
  # The 'embedded' option will cause logstash to run the elasticsearch
44
	# The 'embedded' option will cause logstash to run the elasticsearch
43
  # server in the same process, so you don't have to worry about
45
	# server in the same process, so you don't have to worry about
44
  # how to download, configure, or run elasticsearch!
46
	# how to download, configure, or run elasticsearch!
45
  elasticsearch { 
47
	elasticsearch { 
46
     embedded => true
48
		embedded => true
47
     #embedded_http_port => 9200
49
		host => "127.0.0.1"
48
     #cluster => elasticsearch
50
		# embedded_http_port => 9200
49
     #host => host
51
		# cluster => elasticsearch
50
     #port => port
52
		# host => host
51
      
53
		# port => port
52
  }
54
	}
53
}
55
}
(-)pkg-plist (-3 / +2 lines)
Lines 1-6 Link Here
1
%%ETCDIR%%/elasticsearch.yml
1
@sample %%ETCDIR%%/elasticsearch.yml.sample
2
%%ETCDIR%%/logstash.conf
2
@sample %%ETCDIR%%/logstash.conf.sample
3
%%ETCDIR%%/logstash.conf.sample
4
logstash/LICENSE
3
logstash/LICENSE
5
logstash/README.md
4
logstash/README.md
6
logstash/bin/logstash
5
logstash/bin/logstash

Return to bug 194670