rubber 2.13.1 → 2.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +20 -0
- data/lib/rubber/cloud/vsphere.rb +3 -1
- data/lib/rubber/recipes/rubber/setup.rb +5 -6
- data/lib/rubber/version.rb +1 -1
- data/templates/base/config/rubber/rubber.yml +1 -1
- data/templates/collectd/script/collectd/collectd-runner.rb +25 -8
- data/templates/collectd/script/collectd/role/postgresql_slave/replication_status.rb +26 -24
- data/templates/graylog/config/rubber/deploy-graylog.rb +7 -7
- data/templates/graylog/config/rubber/role/graylog_server/graylog2.conf +112 -22
- data/templates/graylog/config/rubber/role/graylog_web/graylog2-web-interface.conf +1 -1
- data/templates/graylog/config/rubber/rubber-graylog.yml +2 -2
- data/templates/postgresql/config/rubber/deploy-postgresql.rb +1 -1
- data/templates/postgresql/config/rubber/role/postgresql/pg_hba.conf +2 -2
- data/templates/postgresql/config/rubber/role/postgresql/postgresql.conf +73 -41
- data/templates/postgresql/config/rubber/role/postgresql_slave/recovery.conf +2 -2
- data/templates/postgresql/config/rubber/rubber-postgresql.yml +2 -2
- data/templates/redis/config/rubber/role/redis/redis.conf +75 -7
- data/templates/redis/config/rubber/rubber-redis.yml +1 -1
- metadata +2 -3
- data/templates/postgresql/config/rubber/role/postgresql/postgresql-sysctl.conf +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 30a59a4d64e36a68db212a6981a372bca1c068dd
|
4
|
+
data.tar.gz: 7ceb0e3669077e1c233cfe4591070138bf34950f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16199697b6e470ef26c5408a628abee2ac085fb72db8ce240d37b544aae62d32923988b188d292472cf38e141392c181eaa29f479c16d9b77e4eb551cbb1668d
|
7
|
+
data.tar.gz: 74e1de3912d38cb50150d6c80d40e4c82ad3f66423c70770b424b75de7bbdde5a40e9e76eb81a403c162826b2312ccdca113a8011b3f6af72d378b6d24475f37
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,23 @@
|
|
1
|
+
2.14.0 (10/13/2014)
|
2
|
+
|
3
|
+
Improvements:
|
4
|
+
============
|
5
|
+
|
6
|
+
[base] Updated the base template to play a bit nicer when reading the rubber secret file at runtime. <dc0663c>
|
7
|
+
[collectd] Updated the collectd runner scripts to play nicer with JRuby. <283ba21>
|
8
|
+
[graylog] Upgraded from Graylog2 0.20.2 to 0.90.0. <6b3d47e>
|
9
|
+
[postgresql] Upgraded PostgreSQL from 9.1 to 9.3. <3b2b322>
|
10
|
+
[redis] Upgraded Redis from 2.8.8 to 2.8.17. <15c8040>
|
11
|
+
|
12
|
+
Bug Fixes:
|
13
|
+
=========
|
14
|
+
|
15
|
+
[core] Make sure we follow the full after_refresh_instance chain for vSphere (fixes a bug with not creating iptables rules introduced in 2.13.0). <46c8506>
|
16
|
+
[core] Make sure we always normalize hostnames with underscores in them. <4b4b4c7>
|
17
|
+
[postgresql] Make sure the PostgreSQL client version matches the server version. <f7b5223>
|
18
|
+
[postgresql] Reference the correct Ubuntu release in the PostgreSQL apt line. <82127cd>
|
19
|
+
|
20
|
+
|
1
21
|
2.13.1 (10/01/2014)
|
2
22
|
|
3
23
|
Improvements:
|
data/lib/rubber/cloud/vsphere.rb
CHANGED
@@ -103,6 +103,8 @@ module Rubber
|
|
103
103
|
end
|
104
104
|
|
105
105
|
def after_refresh_instance(instance)
|
106
|
+
super
|
107
|
+
|
106
108
|
rubber_cfg = Rubber::Configuration.get_configuration(Rubber.env)
|
107
109
|
host_env = rubber_cfg.environment.bind(nil, instance.name)
|
108
110
|
|
@@ -312,4 +314,4 @@ module Rubber
|
|
312
314
|
end
|
313
315
|
end
|
314
316
|
end
|
315
|
-
end
|
317
|
+
end
|
@@ -166,7 +166,7 @@ namespace :rubber do
|
|
166
166
|
|
167
167
|
if ic.role_names.include?('web_tools')
|
168
168
|
Array(rubber_env.web_tools_proxies).each do |name, settings|
|
169
|
-
hosts_data << "#{name}-#{ic.full_name}"
|
169
|
+
hosts_data << "#{name.gsub('_', '-')}-#{ic.full_name}"
|
170
170
|
end
|
171
171
|
end
|
172
172
|
|
@@ -185,7 +185,7 @@ namespace :rubber do
|
|
185
185
|
# graphite web app)
|
186
186
|
if ic.role_names.include?('web_tools')
|
187
187
|
Array(rubber_env.web_tools_proxies).each do |name, settings|
|
188
|
-
hosts_data << "#{name}-#{ic.full_name}"
|
188
|
+
hosts_data << "#{name.gsub('_', '-')}-#{ic.full_name}"
|
189
189
|
end
|
190
190
|
end
|
191
191
|
|
@@ -245,7 +245,7 @@ namespace :rubber do
|
|
245
245
|
# graphite web app)
|
246
246
|
if ic.role_names.include?('web_tools')
|
247
247
|
Array(rubber_env.web_tools_proxies).each do |name, settings|
|
248
|
-
hosts_data << "#{name}-#{ic.full_name}"
|
248
|
+
hosts_data << "#{name.gsub('_', '-')}-#{ic.full_name}"
|
249
249
|
end
|
250
250
|
end
|
251
251
|
|
@@ -597,8 +597,7 @@ namespace :rubber do
|
|
597
597
|
# graphite web app)
|
598
598
|
if instance_item.role_names.include?('web_tools')
|
599
599
|
Array(rubber_env.web_tools_proxies).each do |name, settings|
|
600
|
-
name
|
601
|
-
provider.update("#{name}-#{instance_item.name}", instance_item.external_ip)
|
600
|
+
provider.update("#{name.gsub('_', '-')}-#{instance_item.name}", instance_item.external_ip)
|
602
601
|
end
|
603
602
|
end
|
604
603
|
end
|
@@ -616,7 +615,7 @@ namespace :rubber do
|
|
616
615
|
# graphite web app)
|
617
616
|
if instance_item.role_names.include?('web_tools')
|
618
617
|
Array(rubber_env.web_tools_proxies).each do |name, settings|
|
619
|
-
provider.destroy("#{name}-#{instance_item.name}")
|
618
|
+
provider.destroy("#{name.gsub('_', '-')}-#{instance_item.name}")
|
620
619
|
end
|
621
620
|
end
|
622
621
|
end
|
data/lib/rubber/version.rb
CHANGED
@@ -28,7 +28,7 @@ domain: foo.com
|
|
28
28
|
# OPTIONAL: Additional rubber file to pull config from if it exists. This file will
|
29
29
|
# also be pushed to remote host at Rubber.root/config/rubber/rubber-secret.yml
|
30
30
|
#
|
31
|
-
# rubber_secret: "#{File.expand_path('~') + '/.ec2' + (Rubber.env == 'production' ? '' : '_dev') + '/rubber-secret.yml' rescue ''}"
|
31
|
+
# rubber_secret: "#{File.expand_path('~') + '/.ec2' + (Rubber.env == 'production' ? '' : '_dev') + '/rubber-secret.yml' rescue 'rubber-secret.yml'}"
|
32
32
|
|
33
33
|
# OPTIONAL: Encryption key that was used to obfuscate the contents of rubber-secret.yml with "rubber util:obfuscation"
|
34
34
|
# Not that much better when stored in here, but you could use a ruby snippet in here to fetch it from a key server or something
|
@@ -77,16 +77,34 @@ STDERR.puts "#{Time.now}: Starting rubber-collectd execution loop"
|
|
77
77
|
loop do
|
78
78
|
start_time = Time.now.to_i
|
79
79
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
80
|
+
if defined?(JRUBY_VERSION)
|
81
|
+
threads = []
|
82
|
+
|
83
|
+
scripts.each do |script|
|
84
|
+
threads << Thread.new do
|
85
|
+
begin
|
86
|
+
load script
|
87
|
+
rescue Exception => e
|
88
|
+
STDERR.puts("#{script}: #{e}")
|
89
|
+
end
|
86
90
|
end
|
87
91
|
end
|
92
|
+
|
93
|
+
threads.each(&:join)
|
94
|
+
|
95
|
+
else
|
96
|
+
scripts.each do |script|
|
97
|
+
fork do
|
98
|
+
begin
|
99
|
+
load script
|
100
|
+
rescue Exception => e
|
101
|
+
STDERR.puts("#{script}: #{e}")
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
Process.waitall
|
88
107
|
end
|
89
|
-
Process.waitall
|
90
108
|
|
91
109
|
run_time = Time.now.to_i - start_time
|
92
110
|
begin
|
@@ -103,5 +121,4 @@ loop do
|
|
103
121
|
end
|
104
122
|
|
105
123
|
sleep sleep_time
|
106
|
-
|
107
124
|
end
|
@@ -1,31 +1,33 @@
|
|
1
|
-
|
1
|
+
unless defined?(JRUBY_VERSION)
|
2
|
+
require 'pg'
|
2
3
|
|
3
|
-
master = Rubber.instances.for_role('postgresql_master').first.full_name
|
4
|
-
slave = "localhost"
|
5
|
-
opts = { :dbname => Rubber.config.db_name,
|
6
|
-
|
7
|
-
|
8
|
-
mconn = PGconn.open(opts.merge({:host => master}))
|
9
|
-
sconn = PGconn.open(opts.merge({:host => slave}))
|
4
|
+
master = Rubber.instances.for_role('postgresql_master').first.full_name
|
5
|
+
slave = "localhost"
|
6
|
+
opts = { :dbname => Rubber.config.db_name,
|
7
|
+
:user => Rubber.config.db_user,
|
8
|
+
:password => Rubber.config.db_pass }
|
9
|
+
mconn = PGconn.open(opts.merge({:host => master}))
|
10
|
+
sconn = PGconn.open(opts.merge({:host => slave}))
|
10
11
|
|
11
|
-
mval = mconn.exec("select pg_current_xlog_location()")[0]["pg_current_xlog_location"]
|
12
|
-
sresult = sconn.exec("select pg_last_xlog_receive_location(), pg_last_xlog_replay_location()")[0]
|
13
|
-
sval_receive = sresult["pg_last_xlog_receive_location"]
|
14
|
-
sval_replay = sresult["pg_last_xlog_replay_location"]
|
12
|
+
mval = mconn.exec("select pg_current_xlog_location()")[0]["pg_current_xlog_location"]
|
13
|
+
sresult = sconn.exec("select pg_last_xlog_receive_location(), pg_last_xlog_replay_location()")[0]
|
14
|
+
sval_receive = sresult["pg_last_xlog_receive_location"]
|
15
|
+
sval_replay = sresult["pg_last_xlog_replay_location"]
|
15
16
|
|
16
17
|
|
17
|
-
def numeric(val)
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
end
|
18
|
+
def numeric(val)
|
19
|
+
# First part is logid, second part is record offset
|
20
|
+
parts = val.split("/")
|
21
|
+
raise "Invalid location" if parts.size != 2 && parts.any {|p| p.to_s.strip.size == 0}
|
22
|
+
result = (0xFFFFFFFF * parts[0].to_i) + parts[1].to_i(16)
|
23
|
+
return result
|
24
|
+
end
|
24
25
|
|
25
26
|
|
26
|
-
master_offset = numeric(mval)
|
27
|
-
receive_offset = numeric(sval_receive)
|
28
|
-
replay_offset = numeric(sval_replay)
|
27
|
+
master_offset = numeric(mval)
|
28
|
+
receive_offset = numeric(sval_receive)
|
29
|
+
replay_offset = numeric(sval_replay)
|
29
30
|
|
30
|
-
puts "PUTVAL #{HOSTNAME}/postgresql/gauge-replication_receive_delay interval=#{INTERVAL} N:#{master_offset - receive_offset}"
|
31
|
-
puts "PUTVAL #{HOSTNAME}/postgresql/gauge-replication_replay_delay interval=#{INTERVAL} N:#{master_offset - replay_offset}"
|
31
|
+
puts "PUTVAL #{HOSTNAME}/postgresql/gauge-replication_receive_delay interval=#{INTERVAL} N:#{master_offset - receive_offset}"
|
32
|
+
puts "PUTVAL #{HOSTNAME}/postgresql/gauge-replication_replay_delay interval=#{INTERVAL} N:#{master_offset - replay_offset}"
|
33
|
+
end
|
@@ -11,7 +11,7 @@ namespace :rubber do
|
|
11
11
|
task :install, :roles => :graylog_server do
|
12
12
|
rubber.sudo_script 'install_graylog_server', <<-ENDSCRIPT
|
13
13
|
if [[ ! -d "#{rubber_env.graylog_server_dir}" ]]; then
|
14
|
-
wget
|
14
|
+
wget -qNP /tmp http://packages.graylog2.org/releases/graylog2-server/graylog2-server-#{rubber_env.graylog_server_version}.tgz
|
15
15
|
tar -C #{rubber_env.graylog_server_prefix} -zxf /tmp/graylog2-server-#{rubber_env.graylog_server_version}.tgz
|
16
16
|
rm /tmp/graylog2-server-#{rubber_env.graylog_server_version}.tgz
|
17
17
|
fi
|
@@ -37,6 +37,7 @@ namespace :rubber do
|
|
37
37
|
rubber.run_config(:file => "role/graylog_server/", :force => true, :deploy_path => release_path)
|
38
38
|
|
39
39
|
restart
|
40
|
+
sleep 15 # Give graylog-server a bit of time to start up.
|
40
41
|
end
|
41
42
|
end
|
42
43
|
|
@@ -46,12 +47,12 @@ namespace :rubber do
|
|
46
47
|
rubber.sudo_script 'create_inputs', <<-ENDSCRIPT
|
47
48
|
# Only create inputs if the system has 0 inputs. It's a bit of a rough hack, but graylog currently (v0.20.2)
|
48
49
|
# doesn't prevent the creation of duplicate conflicting inputs.
|
49
|
-
if ! curl -s --user #{rubber_env.graylog_web_username}:#{rubber_env.graylog_web_password} -XGET http
|
50
|
-
curl --user #{rubber_env.graylog_web_username}:#{rubber_env.graylog_web_password} -XPOST http
|
50
|
+
if ! curl -s --user #{rubber_env.graylog_web_username}:#{rubber_env.graylog_web_password} -XGET http://#{rubber_instance.internal_ip}:12900/system/inputs | grep "GELFUDPInput" &> /dev/null; then
|
51
|
+
curl --user #{rubber_env.graylog_web_username}:#{rubber_env.graylog_web_password} -XPOST http://#{rubber_instance.internal_ip}:12900/system/inputs -H "Content-Type: application/json" -d '{"type": "org.graylog2.inputs.gelf.udp.GELFUDPInput", "creator_user_id": "admin", "title": "gelf-udp", "global": true, "configuration": { "port": #{rubber_env.graylog_server_port}, "bind_address": "0.0.0.0" } }'
|
51
52
|
fi
|
52
53
|
|
53
|
-
if ! curl -s --user #{rubber_env.graylog_web_username}:#{rubber_env.graylog_web_password} -XGET http
|
54
|
-
curl --user #{rubber_env.graylog_web_username}:#{rubber_env.graylog_web_password} -XPOST http
|
54
|
+
if ! curl -s --user #{rubber_env.graylog_web_username}:#{rubber_env.graylog_web_password} -XGET http://#{rubber_instance.internal_ip}:12900/system/inputs | grep "SyslogUDPInput" &> /dev/null; then
|
55
|
+
curl --user #{rubber_env.graylog_web_username}:#{rubber_env.graylog_web_password} -XPOST http://#{rubber_instance.internal_ip}:12900/system/inputs -H "Content-Type: application/json" -d '{"type": "org.graylog2.inputs.syslog.udp.SyslogUDPInput", "creator_user_id": "admin", "title": "syslog-udp", "global": true, "configuration": { "port": #{rubber_env.graylog_server_syslog_port}, "bind_address": "0.0.0.0" } }'
|
55
56
|
fi
|
56
57
|
ENDSCRIPT
|
57
58
|
end
|
@@ -83,7 +84,7 @@ namespace :rubber do
|
|
83
84
|
task :install, :roles => :graylog_web do
|
84
85
|
rubber.sudo_script 'install_graylog_web', <<-ENDSCRIPT
|
85
86
|
if [[ ! -d "#{rubber_env.graylog_web_dir}" ]]; then
|
86
|
-
wget
|
87
|
+
wget -qNP /tmp http://packages.graylog2.org/releases/graylog2-web-interface/graylog2-web-interface-#{rubber_env.graylog_web_version}.tgz
|
87
88
|
tar -C #{rubber_env.graylog_web_prefix} -zxf /tmp/graylog2-web-interface-#{rubber_env.graylog_web_version}.tgz
|
88
89
|
rm /tmp/graylog2-web-interface-#{rubber_env.graylog_web_version}.tgz
|
89
90
|
fi
|
@@ -100,7 +101,6 @@ namespace :rubber do
|
|
100
101
|
rubber.run_config(:file => "role/graylog_web/", :force => true, :deploy_path => release_path)
|
101
102
|
|
102
103
|
restart
|
103
|
-
sleep 5 # Give graylog-web a bit of time to start up.
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
@@ -16,7 +16,7 @@ is_master = true
|
|
16
16
|
node_id_file = /etc/graylog2-server-node-id
|
17
17
|
|
18
18
|
# You MUST set a secret to secure/pepper the stored user passwords here. Use at least 64 characters.
|
19
|
-
# Generate one by using for example: pwgen -s 96
|
19
|
+
# Generate one by using for example: pwgen -N 1 -s 96
|
20
20
|
password_secret = <%= rubber_env.graylog_server_secret %>
|
21
21
|
|
22
22
|
# the default root user is named 'admin'
|
@@ -36,7 +36,8 @@ plugin_dir = plugin
|
|
36
36
|
# REST API listen URI. Must be reachable by other graylog2-server nodes if you run a cluster.
|
37
37
|
rest_listen_uri = http://<%= rubber_instance.internal_ip %>:12900/
|
38
38
|
|
39
|
-
# REST API transport address. Defaults to
|
39
|
+
# REST API transport address. Defaults to the value of rest_listen_uri. Exception: If rest_listen_uri
|
40
|
+
# is set to a wildcard IP address (0.0.0.0) the first non-loopback IPv4 system address is used.
|
40
41
|
# This will be promoted in the cluster discovery APIs and other nodes may try to connect on this
|
41
42
|
# address. (see rest_listen_uri)
|
42
43
|
rest_transport_uri = http://<%= rubber_instance.internal_ip %>:12900/
|
@@ -50,12 +51,17 @@ rest_transport_uri = http://<%= rubber_instance.internal_ip %>:12900/
|
|
50
51
|
# overall round trip times. This is disabled by default. Uncomment the next line to enable it.
|
51
52
|
#rest_enable_gzip = true
|
52
53
|
|
53
|
-
# Embedded
|
54
|
+
# Embedded Elasticsearch configuration file
|
54
55
|
# pay attention to the working directory of the server, maybe use an absolute path here
|
55
56
|
#elasticsearch_config_file = /etc/graylog2-elasticsearch.yml
|
56
57
|
|
58
|
+
# (Approximate) maximum number of documents in an Elasticsearch index before a new index
|
59
|
+
# is being created, also see no_retention and elasticsearch_max_number_of_indices.
|
57
60
|
elasticsearch_max_docs_per_index = 20000000
|
58
61
|
|
62
|
+
# Disable message retention on this node, i. e. disable Elasticsearch index rotation.
|
63
|
+
#no_retention = false
|
64
|
+
|
59
65
|
# How many indices do you want to keep?
|
60
66
|
# elasticsearch_max_number_of_indices*elasticsearch_max_docs_per_index=total number of messages in your setup
|
61
67
|
elasticsearch_max_number_of_indices = 20
|
@@ -66,23 +72,24 @@ elasticsearch_max_number_of_indices = 20
|
|
66
72
|
# - close # Closes the index and hides it from the system. Can be re-opened later.
|
67
73
|
retention_strategy = delete
|
68
74
|
|
69
|
-
# How many
|
75
|
+
# How many Elasticsearch shards and replicas should be used per index? Note that this only applies to newly created indices.
|
70
76
|
elasticsearch_shards = <%= [rubber_instances.for_role('graylog_elasticsearch').size, 1].max %>
|
71
77
|
elasticsearch_replicas = 0
|
72
78
|
|
79
|
+
# Prefix for all Elasticsearch indices and index aliases managed by Graylog2.
|
73
80
|
elasticsearch_index_prefix = graylog2
|
74
81
|
|
75
82
|
# Do you want to allow searches with leading wildcards? This can be extremely resource hungry and should only
|
76
|
-
# be enabled with care. See also: http://
|
83
|
+
# be enabled with care. See also: http://graylog2.org/resources/documentation/general/queries
|
77
84
|
allow_leading_wildcard_searches = false
|
78
85
|
|
79
86
|
# Do you want to allow searches to be highlighted? Depending on the size of your messages this can be memory hungry and
|
80
|
-
# should only be enabled after making sure your
|
87
|
+
# should only be enabled after making sure your Elasticsearch cluster has enough memory.
|
81
88
|
allow_highlighting = false
|
82
89
|
|
83
90
|
# settings to be passed to elasticsearch's client (overriding those in the provided elasticsearch_config_file)
|
84
91
|
# all these
|
85
|
-
# this must be the same as for your
|
92
|
+
# this must be the same as for your Elasticsearch cluster
|
86
93
|
elasticsearch_cluster_name = <%= rubber_env.graylog_elasticsearch_index %>
|
87
94
|
|
88
95
|
# you could also leave this out, but makes it easier to identify the graylog2 client instance
|
@@ -92,7 +99,7 @@ elasticsearch_node_name = <%= rubber_env.host %>
|
|
92
99
|
#elasticsearch_node_master = false
|
93
100
|
#elasticsearch_node_data = false
|
94
101
|
|
95
|
-
# use a different port if you run multiple
|
102
|
+
# use a different port if you run multiple Elasticsearch nodes on one machine
|
96
103
|
#elasticsearch_transport_tcp_port = 9350
|
97
104
|
# we don't need to run the embedded HTTP server here
|
98
105
|
#elasticsearch_http_enabled = false
|
@@ -100,31 +107,52 @@ elasticsearch_node_name = <%= rubber_env.host %>
|
|
100
107
|
elasticsearch_discovery_zen_ping_multicast_enabled = false
|
101
108
|
elasticsearch_discovery_zen_ping_unicast_hosts = <%= es_servers %>
|
102
109
|
|
103
|
-
# the following
|
104
|
-
#
|
110
|
+
# Change the following setting if you are running into problems with timeouts during Elasticsearch cluster discovery.
|
111
|
+
# The setting is specified in milliseconds, the default is 5000ms (5 seconds).
|
112
|
+
# elasticsearch_cluster_discovery_timeout = 5000
|
113
|
+
|
114
|
+
# the following settings allow to change the bind addresses for the Elasticsearch client in graylog2
|
115
|
+
# these settings are empty by default, letting Elasticsearch choose automatically,
|
105
116
|
# override them here or in the 'elasticsearch_config_file' if you need to bind to a special address
|
106
|
-
# refer to http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/modules-network.html
|
117
|
+
# refer to http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/modules-network.html
|
118
|
+
# for special values here
|
107
119
|
# elasticsearch_network_host =
|
108
120
|
# elasticsearch_network_bind_host =
|
109
121
|
# elasticsearch_network_publish_host =
|
110
122
|
|
123
|
+
# The total amount of time discovery will look for other Elasticsearch nodes in the cluster
|
124
|
+
# before giving up and declaring the current node master.
|
125
|
+
#elasticsearch_discovery_initial_state_timeout = 3s
|
126
|
+
|
111
127
|
# Analyzer (tokenizer) to use for message and full_message field. The "standard" filter usually is a good idea.
|
112
128
|
# All supported analyzers are: standard, simple, whitespace, stop, keyword, pattern, language, snowball, custom
|
113
|
-
#
|
129
|
+
# Elasticsearch documentation: http://www.elasticsearch.org/guide/reference/index-modules/analysis/
|
114
130
|
# Note that this setting only takes effect on newly created indices.
|
115
131
|
elasticsearch_analyzer = standard
|
116
132
|
|
117
|
-
# Batch size for
|
118
|
-
#
|
119
|
-
#
|
120
|
-
#
|
121
|
-
#
|
122
|
-
output_batch_size =
|
133
|
+
# Batch size for the Elasticsearch output. This is the maximum (!) number of messages the Elasticsearch output
|
134
|
+
# module will get at once and write to Elasticsearch in a batch call. If the configured batch size has not been
|
135
|
+
# reached within output_flush_interval seconds, everything that is available will be flushed at once. Remember
|
136
|
+
# that every outputbuffer processor manages its own batch and performs its own batch write calls.
|
137
|
+
# ("outputbuffer_processors" variable)
|
138
|
+
output_batch_size = 25
|
139
|
+
|
140
|
+
# Flush interval (in seconds) for the Elasticsearch output. This is the maximum amount of time between two
|
141
|
+
# batches of messages written to Elasticsearch. It is only effective at all if your minimum number of messages
|
142
|
+
# for this time period is less than output_batch_size * outputbuffer_processors.
|
143
|
+
output_flush_interval = 1
|
123
144
|
|
124
145
|
# The number of parallel running processors.
|
125
146
|
# Raise this number if your buffers are filling up.
|
126
147
|
processbuffer_processors = 5
|
127
|
-
outputbuffer_processors =
|
148
|
+
outputbuffer_processors = 3
|
149
|
+
|
150
|
+
#outputbuffer_processor_keep_alive_time = 5000
|
151
|
+
#outputbuffer_processor_threads_core_pool_size = 3
|
152
|
+
#outputbuffer_processor_threads_max_pool_size = 30
|
153
|
+
|
154
|
+
# UDP receive buffer size for all message inputs (e. g. SyslogUDPInput).
|
155
|
+
#udp_recvbuffer_sizes = 1048576
|
128
156
|
|
129
157
|
# Wait strategy describing how buffer processors wait on a cursor sequence. (default: sleeping)
|
130
158
|
# Possible types:
|
@@ -156,6 +184,29 @@ dead_letters_enabled = false
|
|
156
184
|
# shutdown process. Set to 0 if you have no status checking load balancers in front.
|
157
185
|
lb_recognition_period_seconds = 3
|
158
186
|
|
187
|
+
# Every message is matched against the configured streams and it can happen that a stream contains rules which
|
188
|
+
# take an unusual amount of time to run, for example if its using regular expressions that perform excessive backtracking.
|
189
|
+
# This will impact the processing of the entire server. To keep such misbehaving stream rules from impacting other
|
190
|
+
# streams, Graylog2 limits the execution time for each stream.
|
191
|
+
# The default values are noted below, the timeout is in milliseconds.
|
192
|
+
# If the stream matching for one stream took longer than the timeout value, and this happened more than "max_faults" times
|
193
|
+
# that stream is disabled and a notification is shown in the web interface.
|
194
|
+
# stream_processing_timeout = 2000
|
195
|
+
# stream_processing_max_faults = 3
|
196
|
+
|
197
|
+
# Since 0.21 the graylog2 server supports pluggable output modules. This means a single message can be written to multiple
|
198
|
+
# outputs. The next setting defines the timeout for a single output module, including the default output module where all
|
199
|
+
# messages end up. This setting is specified in milliseconds.
|
200
|
+
|
201
|
+
# Time in milliseconds to wait for all message outputs to finish writing a single message.
|
202
|
+
#output_module_timeout = 10000
|
203
|
+
|
204
|
+
# Time in milliseconds after which a detected stale master node is being rechecked on startup.
|
205
|
+
#stale_master_timeout = 2000
|
206
|
+
|
207
|
+
# Time in milliseconds which Graylog2 is waiting for all threads to stop on shutdown.
|
208
|
+
#shutdown_timeout = 30000
|
209
|
+
|
159
210
|
# MongoDB Configuration
|
160
211
|
mongodb_useauth = false
|
161
212
|
#mongodb_user = grayloguser
|
@@ -174,8 +225,8 @@ mongodb_max_connections = 100
|
|
174
225
|
mongodb_threads_allowed_to_block_multiplier = 5
|
175
226
|
|
176
227
|
# Drools Rule File (Use to rewrite incoming log messages)
|
177
|
-
# See: http://
|
178
|
-
#
|
228
|
+
# See: http://graylog2.org/resources/documentation/general/rewriting
|
229
|
+
#rules_file = /etc/graylog2.drl
|
179
230
|
|
180
231
|
# Email transport
|
181
232
|
transport_email_enabled = true
|
@@ -197,4 +248,43 @@ transport_email_from_name = Graylog2
|
|
197
248
|
transport_email_web_interface_url = https://graylog-<%= rubber_env.full_host %>:<%= rubber_env.web_tools_ssl_port %>/
|
198
249
|
|
199
250
|
# HTTP proxy for outgoing HTTP calls
|
200
|
-
#http_proxy_uri =
|
251
|
+
#http_proxy_uri =
|
252
|
+
|
253
|
+
# Switch to enable/disable the off-heap message cache. Stores cached messages in the spool directory if set to true.
|
254
|
+
# Stores the messages in an in-memory data structure if set to false.
|
255
|
+
#message_cache_off_heap = true
|
256
|
+
|
257
|
+
# Directory for the off-heap message cache data. (absolute or relative)
|
258
|
+
#message_cache_spool_dir = spool
|
259
|
+
|
260
|
+
# The commit interval for the message cache in milliseconds. Only affects message cache implementations that need to commit data.
|
261
|
+
#message_cache_commit_interval = 1000
|
262
|
+
|
263
|
+
# When more messages are coming in as we can process, incoming messages will be cached in memory until
|
264
|
+
# they are ready to be processed. Per default this data structure is unbounded, so in situations of
|
265
|
+
# constant high load, it will grow endlessly until all allocatable memory has been consumed and the
|
266
|
+
# process dies.
|
267
|
+
# To prevent this, the next setting allows you to define an upper bound for this memory cache, if the
|
268
|
+
# number of messages in the cache has reached this limit, incoming messages will be dropped until it
|
269
|
+
# has shrunk again.
|
270
|
+
#
|
271
|
+
# The default is 0, which means no upper bound.
|
272
|
+
#
|
273
|
+
#input_cache_max_size = 0
|
274
|
+
|
275
|
+
# Connection timeout for a configured LDAP server (e. g. ActiveDirectory) in milliseconds.
|
276
|
+
#ldap_connection_timeout = 2000
|
277
|
+
|
278
|
+
# Version checks settings. All timeouts are in milliseconds.
|
279
|
+
#versionchecks = true
|
280
|
+
#versionchecks_uri = http://versioncheck.torch.sh/check
|
281
|
+
#versionchecks_connection_request_timeout = 10000
|
282
|
+
#versionchecks_connect_timeout = 10000
|
283
|
+
#versionchecks_socket_timeout = 10000
|
284
|
+
|
285
|
+
# https://github.com/bazhenov/groovy-shell-server
|
286
|
+
#groovy_shell_enable = false
|
287
|
+
#groovy_shell_port = 6789
|
288
|
+
|
289
|
+
# Enable collection of Graylog2-related metrics into MongoDB
|
290
|
+
#enable_metrics_collection = false
|
@@ -13,7 +13,7 @@ graylog2-server.uris="<%= graylog_server_uris %>"
|
|
13
13
|
# ~~~~~
|
14
14
|
# The secret key is used to secure cryptographics functions. Set this to a long and randomly generated string.
|
15
15
|
# If you deploy your application to several instances be sure to use the same key!
|
16
|
-
# Generate for example with: pwgen -s 96
|
16
|
+
# Generate for example with: pwgen -N 1 -s 96
|
17
17
|
application.secret="<%= rubber_env.graylog_web_secret %>"
|
18
18
|
|
19
19
|
# Web interface timezone
|
@@ -1,11 +1,11 @@
|
|
1
|
-
graylog_server_version: "0.
|
1
|
+
graylog_server_version: "0.90.0"
|
2
2
|
graylog_server_prefix: "/usr/local"
|
3
3
|
graylog_server_dir: "#{graylog_server_prefix}/graylog2-server-#{graylog_server_version}"
|
4
4
|
graylog_server_pid_file: "/var/run/graylog-server.pid"
|
5
5
|
graylog_server_port: 12201
|
6
6
|
graylog_server_syslog_port: 12514
|
7
7
|
|
8
|
-
graylog_web_version: "0.
|
8
|
+
graylog_web_version: "0.90.0"
|
9
9
|
graylog_web_prefix: "/usr/local"
|
10
10
|
graylog_web_dir: "#{graylog_web_prefix}/graylog2-web-interface-#{graylog_web_version}"
|
11
11
|
graylog_web_pid_file: "/var/run/graylog-web.pid"
|
@@ -8,7 +8,7 @@ namespace :rubber do
|
|
8
8
|
|
9
9
|
task :setup_apt_sources do
|
10
10
|
rubber.sudo_script 'configure_postgresql_repository', <<-ENDSCRIPT
|
11
|
-
echo "deb http://apt.postgresql.org/pub/repos/apt/
|
11
|
+
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -sc`-pgdg main" > /etc/apt/sources.list.d/pgdg.list
|
12
12
|
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
|
13
13
|
ENDSCRIPT
|
14
14
|
end
|
@@ -85,9 +85,9 @@
|
|
85
85
|
# maintenance (custom daily cronjobs, replication, and similar tasks).
|
86
86
|
#
|
87
87
|
# Database administrative login by Unix domain socket
|
88
|
-
local all postgres
|
88
|
+
local all postgres peer
|
89
89
|
|
90
|
-
# TYPE DATABASE
|
90
|
+
# TYPE DATABASE USER ADDRESS METHOD
|
91
91
|
<%
|
92
92
|
scheme = rubber_env.db_pass ? 'md5' : 'trust'
|
93
93
|
%>
|
@@ -61,14 +61,15 @@ external_pid_file = '<%= rubber_env.postgresql_pid_file %>' # write an extra PI
|
|
61
61
|
|
62
62
|
listen_addresses = '*' # what IP address(es) to listen on;
|
63
63
|
# comma-separated list of addresses;
|
64
|
-
# defaults to 'localhost'
|
64
|
+
# defaults to 'localhost'; use '*' for all
|
65
65
|
# (change requires restart)
|
66
66
|
port = 5432 # (change requires restart)
|
67
67
|
max_connections = 100 # (change requires restart)
|
68
68
|
# Note: Increasing max_connections costs ~400 bytes of shared memory per
|
69
69
|
# connection slot, plus lock space (see max_locks_per_transaction).
|
70
70
|
#superuser_reserved_connections = 3 # (change requires restart)
|
71
|
-
|
71
|
+
unix_socket_directories = '/var/run/postgresql' # comma-separated list of directories
|
72
|
+
# (change requires restart)
|
72
73
|
#unix_socket_group = '' # (change requires restart)
|
73
74
|
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
|
74
75
|
# (change requires restart)
|
@@ -80,10 +81,14 @@ unix_socket_directory = '/var/run/postgresql' # (change requires restart)
|
|
80
81
|
# - Security and Authentication -
|
81
82
|
|
82
83
|
#authentication_timeout = 1min # 1s-600s
|
83
|
-
|
84
|
-
#ssl_ciphers = '
|
84
|
+
ssl = true # (change requires restart)
|
85
|
+
#ssl_ciphers = 'DEFAULT:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers
|
85
86
|
# (change requires restart)
|
86
87
|
#ssl_renegotiation_limit = 512MB # amount of data between renegotiations
|
88
|
+
ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem' # (change requires restart)
|
89
|
+
ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key' # (change requires restart)
|
90
|
+
#ssl_ca_file = '' # (change requires restart)
|
91
|
+
#ssl_crl_file = '' # (change requires restart)
|
87
92
|
#password_encryption = on
|
88
93
|
#db_user_namespace = off
|
89
94
|
|
@@ -109,7 +114,7 @@ unix_socket_directory = '/var/run/postgresql' # (change requires restart)
|
|
109
114
|
|
110
115
|
# - Memory -
|
111
116
|
|
112
|
-
shared_buffers =
|
117
|
+
shared_buffers = 128MB # min 128kB
|
113
118
|
# (change requires restart)
|
114
119
|
#temp_buffers = 8MB # min 800kB
|
115
120
|
#max_prepared_transactions = 0 # zero disables the feature
|
@@ -122,6 +127,11 @@ shared_buffers = 28MB # min 128kB
|
|
122
127
|
#maintenance_work_mem = 16MB # min 1MB
|
123
128
|
#max_stack_depth = 2MB # min 100kB
|
124
129
|
|
130
|
+
# - Disk -
|
131
|
+
|
132
|
+
#temp_file_limit = -1 # limits per-session temp file space
|
133
|
+
# in kB, or -1 for no limit
|
134
|
+
|
125
135
|
# - Kernel Resource Usage -
|
126
136
|
|
127
137
|
#max_files_per_process = 1000 # min 25
|
@@ -130,7 +140,7 @@ shared_buffers = 28MB # min 128kB
|
|
130
140
|
|
131
141
|
# - Cost-Based Vacuum Delay -
|
132
142
|
|
133
|
-
#vacuum_cost_delay =
|
143
|
+
#vacuum_cost_delay = 0 # 0-100 milliseconds
|
134
144
|
#vacuum_cost_page_hit = 1 # 0-10000 credits
|
135
145
|
#vacuum_cost_page_miss = 10 # 0-10000 credits
|
136
146
|
#vacuum_cost_page_dirty = 20 # 0-10000 credits
|
@@ -144,7 +154,7 @@ shared_buffers = 28MB # min 128kB
|
|
144
154
|
|
145
155
|
# - Asynchronous Behavior -
|
146
156
|
|
147
|
-
#effective_io_concurrency = 1 # 1-1000
|
157
|
+
#effective_io_concurrency = 1 # 1-1000; 0 disables prefetching
|
148
158
|
|
149
159
|
|
150
160
|
#------------------------------------------------------------------------------
|
@@ -156,7 +166,8 @@ shared_buffers = 28MB # min 128kB
|
|
156
166
|
wal_level = hot_standby # minimal, archive, or hot_standby
|
157
167
|
# (change requires restart)
|
158
168
|
#fsync = on # turns forced synchronization on or off
|
159
|
-
#synchronous_commit = on # synchronization level;
|
169
|
+
#synchronous_commit = on # synchronization level;
|
170
|
+
# off, local, remote_write, or on
|
160
171
|
#wal_sync_method = fsync # the default is the first option
|
161
172
|
# supported by the operating system:
|
162
173
|
# open_datasync
|
@@ -184,6 +195,9 @@ wal_level = hot_standby # minimal, archive, or hot_standby
|
|
184
195
|
#archive_mode = off # allows archiving to be done
|
185
196
|
# (change requires restart)
|
186
197
|
#archive_command = '' # command to use to archive a logfile segment
|
198
|
+
# placeholders: %p = path of file to archive
|
199
|
+
# %f = file name only
|
200
|
+
# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
|
187
201
|
#archive_timeout = 0 # force a logfile segment switch after this
|
188
202
|
# number of seconds; 0 disables
|
189
203
|
|
@@ -194,36 +208,32 @@ wal_level = hot_standby # minimal, archive, or hot_standby
|
|
194
208
|
# REPLICATION
|
195
209
|
#------------------------------------------------------------------------------
|
196
210
|
|
197
|
-
# -
|
211
|
+
# - Sending Server(s) -
|
198
212
|
|
199
|
-
#
|
213
|
+
# Set these on the master and on any standby that will send replication data.
|
200
214
|
|
201
215
|
max_wal_senders = 5 # max number of walsender processes
|
202
216
|
# (change requires restart)
|
203
|
-
#wal_sender_delay = 1s # walsender cycle time, 1-10000 milliseconds
|
204
|
-
|
205
|
-
# To prevent the primary server from removing the WAL segments required for
|
206
|
-
# the standby server before shipping them, set the minimum number of segments
|
207
|
-
# retained in the pg_xlog directory. At least wal_keep_segments should be
|
208
|
-
# larger than the number of segments generated between the beginning of
|
209
|
-
# online-backup and the startup of streaming replication. If you enable WAL
|
210
|
-
# archiving to an archive directory accessible from the standby, this may
|
211
|
-
# not be necessary.
|
212
217
|
wal_keep_segments = 128 # in logfile segments, 16MB each; 0 disables
|
213
|
-
#
|
214
|
-
|
215
|
-
#
|
216
|
-
|
217
|
-
|
218
|
+
#wal_sender_timeout = 60s # in milliseconds; 0 disables
|
219
|
+
|
220
|
+
# - Master Server -
|
221
|
+
|
222
|
+
# These settings are ignored on a standby server.
|
218
223
|
|
219
224
|
<%- if rubber_env.postgresql_synchronous_replication %>
|
220
225
|
synchronous_standby_names = '<%= rubber_env.app_name %>'
|
221
226
|
<%- end %>
|
227
|
+
#synchronous_standby_names = '' # standby servers that provide sync rep
|
228
|
+
# comma-separated list of application_name
|
229
|
+
# from standby(s); '*' = all
|
230
|
+
#vacuum_defer_cleanup_age = 0 # number of xacts by which cleanup is delayed
|
231
|
+
|
222
232
|
|
223
233
|
<%- else %>
|
224
234
|
# - Standby Servers -
|
225
235
|
|
226
|
-
# These settings are ignored on a master server
|
236
|
+
# These settings are ignored on a master server.
|
227
237
|
|
228
238
|
hot_standby = on # "on" allows queries during recovery
|
229
239
|
# (change requires restart)
|
@@ -237,6 +247,9 @@ max_standby_streaming_delay = 10min # max delay before canceling queries
|
|
237
247
|
# 0 disables
|
238
248
|
hot_standby_feedback = on # send info from standby to prevent
|
239
249
|
# query conflicts
|
250
|
+
#wal_receiver_timeout = 60s # time that receiver waits for
|
251
|
+
# communication from master
|
252
|
+
# in milliseconds; 0 disables
|
240
253
|
<%- end %>
|
241
254
|
|
242
255
|
#------------------------------------------------------------------------------
|
@@ -249,6 +262,7 @@ hot_standby_feedback = on # send info from standby to prevent
|
|
249
262
|
#enable_hashagg = on
|
250
263
|
#enable_hashjoin = on
|
251
264
|
#enable_indexscan = on
|
265
|
+
#enable_indexonlyscan = on
|
252
266
|
#enable_material = on
|
253
267
|
#enable_mergejoin = on
|
254
268
|
#enable_nestloop = on
|
@@ -327,11 +341,8 @@ hot_standby_feedback = on # send info from standby to prevent
|
|
327
341
|
#syslog_facility = 'LOCAL0'
|
328
342
|
#syslog_ident = 'postgres'
|
329
343
|
|
330
|
-
#
|
331
|
-
|
332
|
-
# logging_collector
|
333
|
-
# (change requires restart)
|
334
|
-
|
344
|
+
# This is only relevant when logging to eventlog (win32):
|
345
|
+
#event_source = 'PostgreSQL'
|
335
346
|
|
336
347
|
# - When to Log -
|
337
348
|
|
@@ -361,12 +372,12 @@ hot_standby_feedback = on # send info from standby to prevent
|
|
361
372
|
# panic
|
362
373
|
|
363
374
|
#log_min_error_statement = error # values in order of decreasing detail:
|
364
|
-
|
375
|
+
# debug5
|
365
376
|
# debug4
|
366
377
|
# debug3
|
367
378
|
# debug2
|
368
379
|
# debug1
|
369
|
-
|
380
|
+
# info
|
370
381
|
# notice
|
371
382
|
# warning
|
372
383
|
# error
|
@@ -417,7 +428,7 @@ log_line_prefix = '%t ' # special values:
|
|
417
428
|
log_temp_files = 0 # log temporary files equal or larger
|
418
429
|
# than the specified size in kilobytes;
|
419
430
|
# -1 disables, 0 logs all temp files
|
420
|
-
|
431
|
+
log_timezone = 'localtime'
|
421
432
|
|
422
433
|
|
423
434
|
#------------------------------------------------------------------------------
|
@@ -427,9 +438,10 @@ log_temp_files = 0 # log temporary files equal or larger
|
|
427
438
|
# - Query/Index Statistics Collector -
|
428
439
|
|
429
440
|
#track_activities = on
|
430
|
-
track_counts = on
|
441
|
+
#track_counts = on
|
442
|
+
#track_io_timing = off
|
431
443
|
#track_functions = none # none, pl, all
|
432
|
-
#track_activity_query_size = 1024
|
444
|
+
#track_activity_query_size = 1024 # (change requires restart)
|
433
445
|
#update_process_title = on
|
434
446
|
#stats_temp_directory = 'pg_stat_tmp'
|
435
447
|
|
@@ -446,7 +458,7 @@ track_counts = on
|
|
446
458
|
# AUTOVACUUM PARAMETERS
|
447
459
|
#------------------------------------------------------------------------------
|
448
460
|
|
449
|
-
autovacuum = on # Enable autovacuum subprocess? 'on'
|
461
|
+
#autovacuum = on # Enable autovacuum subprocess? 'on'
|
450
462
|
# requires track_counts to also be on.
|
451
463
|
#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and
|
452
464
|
# their durations, > 0 logs only
|
@@ -463,6 +475,9 @@ autovacuum = on # Enable autovacuum subprocess? 'on'
|
|
463
475
|
#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
|
464
476
|
#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
|
465
477
|
# (change requires restart)
|
478
|
+
#autovacuum_multixact_freeze_max_age = 400000000 # maximum Multixact age
|
479
|
+
# before forced vacuum
|
480
|
+
# (change requires restart)
|
466
481
|
#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
|
467
482
|
# autovacuum, in milliseconds;
|
468
483
|
# -1 means use vacuum_cost_delay
|
@@ -487,8 +502,11 @@ autovacuum = on # Enable autovacuum subprocess? 'on'
|
|
487
502
|
#default_transaction_deferrable = off
|
488
503
|
#session_replication_role = 'origin'
|
489
504
|
#statement_timeout = 0 # in milliseconds, 0 is disabled
|
505
|
+
#lock_timeout = 0 # in milliseconds, 0 is disabled
|
490
506
|
#vacuum_freeze_min_age = 50000000
|
491
507
|
#vacuum_freeze_table_age = 150000000
|
508
|
+
#vacuum_multixact_freeze_min_age = 5000000
|
509
|
+
#vacuum_multixact_freeze_table_age = 150000000
|
492
510
|
#bytea_output = 'hex' # hex, escape
|
493
511
|
#xmlbinary = 'base64'
|
494
512
|
#xmloption = 'content'
|
@@ -497,7 +515,7 @@ autovacuum = on # Enable autovacuum subprocess? 'on'
|
|
497
515
|
|
498
516
|
datestyle = 'iso, mdy'
|
499
517
|
#intervalstyle = 'postgres'
|
500
|
-
|
518
|
+
timezone = 'localtime'
|
501
519
|
#timezone_abbreviations = 'Default' # Select the set of available time zone
|
502
520
|
# abbreviations. Currently, there are
|
503
521
|
# Default
|
@@ -538,6 +556,7 @@ default_text_search_config = 'pg_catalog.english'
|
|
538
556
|
#max_pred_locks_per_transaction = 64 # min 10
|
539
557
|
# (change requires restart)
|
540
558
|
|
559
|
+
|
541
560
|
#------------------------------------------------------------------------------
|
542
561
|
# VERSION/PLATFORM COMPATIBILITY
|
543
562
|
#------------------------------------------------------------------------------
|
@@ -551,7 +570,7 @@ default_text_search_config = 'pg_catalog.english'
|
|
551
570
|
#lo_compat_privileges = off
|
552
571
|
#quote_all_identifiers = off
|
553
572
|
#sql_inheritance = on
|
554
|
-
standard_conforming_strings =
|
573
|
+
#standard_conforming_strings = on
|
555
574
|
#synchronize_seqscans = on
|
556
575
|
|
557
576
|
# - Other Platforms and Clients -
|
@@ -563,12 +582,25 @@ standard_conforming_strings = off
|
|
563
582
|
# ERROR HANDLING
|
564
583
|
#------------------------------------------------------------------------------
|
565
584
|
|
566
|
-
#exit_on_error = off
|
567
|
-
#restart_after_crash = on
|
585
|
+
#exit_on_error = off # terminate session on any error?
|
586
|
+
#restart_after_crash = on # reinitialize after backend crash?
|
587
|
+
|
588
|
+
|
589
|
+
#------------------------------------------------------------------------------
|
590
|
+
# CONFIG FILE INCLUDES
|
591
|
+
#------------------------------------------------------------------------------
|
592
|
+
|
593
|
+
# These options allow settings to be loaded from files other than the
|
594
|
+
# default postgresql.conf.
|
595
|
+
|
596
|
+
#include_dir = 'conf.d' # include files ending in '.conf' from
|
597
|
+
# directory 'conf.d'
|
598
|
+
#include_if_exists = 'exists.conf' # include file only if it exists
|
599
|
+
#include = 'special.conf' # include file
|
568
600
|
|
569
601
|
|
570
602
|
#------------------------------------------------------------------------------
|
571
603
|
# CUSTOMIZED OPTIONS
|
572
604
|
#------------------------------------------------------------------------------
|
573
605
|
|
574
|
-
#
|
606
|
+
# Add settings for extensions here
|
@@ -75,7 +75,7 @@
|
|
75
75
|
# just after or just before the given target, respectively).
|
76
76
|
#
|
77
77
|
#
|
78
|
-
#recovery_target_name = ''
|
78
|
+
#recovery_target_name = '' # e.g. 'daily backup 2011-01-26'
|
79
79
|
#
|
80
80
|
#recovery_target_time = '' # e.g. '2004-07-14 22:39:00 EST'
|
81
81
|
#
|
@@ -132,4 +132,4 @@ trigger_file = '<%= rubber_env.postgresql_data_dir %>/trigger_file'
|
|
132
132
|
#
|
133
133
|
# Hot Standby related parameters are listed in postgresql.conf
|
134
134
|
#
|
135
|
-
#---------------------------------------------------------------------------
|
135
|
+
#---------------------------------------------------------------------------
|
@@ -18,7 +18,7 @@ db_backup_cmd: "set -e -o pipefail; nice sudo -u postgres pg_dumpall -U postgres
|
|
18
18
|
# its standard input
|
19
19
|
db_restore_cmd: "zcat - | psql -U %user% -h %host% %name%"
|
20
20
|
|
21
|
-
postgresql_ver: 9.
|
21
|
+
postgresql_ver: 9.3
|
22
22
|
postgresql_conf_dir: "/etc/postgresql/#{postgresql_ver}/main"
|
23
23
|
postgresql_data_dir: "/mnt/postgresql/#{postgresql_ver}/data"
|
24
24
|
postgresql_archive_dir: "/mnt/postgresql/#{postgresql_ver}/archive"
|
@@ -33,7 +33,7 @@ role_dependencies:
|
|
33
33
|
"db:primary=true": [postgresql, postgresql_master]
|
34
34
|
db: [postgresql, postgresql_slave]
|
35
35
|
|
36
|
-
packages: [postgresql-client, libpq-dev]
|
36
|
+
packages: ["postgresql-client-#{postgresql_ver}", libpq-dev]
|
37
37
|
gems: [pg]
|
38
38
|
|
39
39
|
roles:
|
@@ -76,7 +76,7 @@ tcp-backlog 511
|
|
76
76
|
# on a unix socket when not specified.
|
77
77
|
#
|
78
78
|
# unixsocket /tmp/redis.sock
|
79
|
-
# unixsocketperm
|
79
|
+
# unixsocketperm 700
|
80
80
|
|
81
81
|
# Close the connection after a client is idle for N seconds (0 to disable)
|
82
82
|
timeout 300
|
@@ -202,9 +202,18 @@ dir <%= rubber_env.redis_db_dir %>
|
|
202
202
|
################################# REPLICATION #################################
|
203
203
|
|
204
204
|
# Master-Slave replication. Use slaveof to make a Redis instance a copy of
|
205
|
-
# another Redis server.
|
206
|
-
#
|
207
|
-
#
|
205
|
+
# another Redis server. A few things to understand ASAP about Redis replication.
|
206
|
+
#
|
207
|
+
# 1) Redis replication is asynchronous, but you can configure a master to
|
208
|
+
# stop accepting writes if it appears to be not connected with at least
|
209
|
+
# a given number of slaves.
|
210
|
+
# 2) Redis slaves are able to perform a partial resynchronization with the
|
211
|
+
# master if the replication link is lost for a relatively small amount of
|
212
|
+
# time. You may want to configure the replication backlog size (see the next
|
213
|
+
# sections of this file) with a sensible value depending on your needs.
|
214
|
+
# 3) Replication is automatic and does not need user intervention. After a
|
215
|
+
# network partition slaves automatically try to reconnect to masters
|
216
|
+
# and resynchronize with them.
|
208
217
|
#
|
209
218
|
# slaveof <masterip> <masterport>
|
210
219
|
|
@@ -536,6 +545,30 @@ no-appendfsync-on-rewrite no
|
|
536
545
|
auto-aof-rewrite-percentage 100
|
537
546
|
auto-aof-rewrite-min-size 64mb
|
538
547
|
|
548
|
+
# An AOF file may be found to be truncated at the end during the Redis
|
549
|
+
# startup process, when the AOF data gets loaded back into memory.
|
550
|
+
# This may happen when the system where Redis is running
|
551
|
+
# crashes, especially when an ext4 filesystem is mounted without the
|
552
|
+
# data=ordered option (however this can't happen when Redis itself
|
553
|
+
# crashes or aborts but the operating system still works correctly).
|
554
|
+
#
|
555
|
+
# Redis can either exit with an error when this happens, or load as much
|
556
|
+
# data as possible (the default now) and start if the AOF file is found
|
557
|
+
# to be truncated at the end. The following option controls this behavior.
|
558
|
+
#
|
559
|
+
# If aof-load-truncated is set to yes, a truncated AOF file is loaded and
|
560
|
+
# the Redis server starts emitting a log to inform the user of the event.
|
561
|
+
# Otherwise if the option is set to no, the server aborts with an error
|
562
|
+
# and refuses to start. When the option is set to no, the user requires
|
563
|
+
# to fix the AOF file using the "redis-check-aof" utility before to restart
|
564
|
+
# the server.
|
565
|
+
#
|
566
|
+
# Note that if the AOF file will be found to be corrupted in the middle
|
567
|
+
# the server will still exit with an error. This option only applies when
|
568
|
+
# Redis will try to read more data from the AOF file but not enough bytes
|
569
|
+
# will be found.
|
570
|
+
aof-load-truncated no
|
571
|
+
|
539
572
|
################################ LUA SCRIPTING ###############################
|
540
573
|
|
541
574
|
# Max execution time of a Lua script in milliseconds.
|
@@ -578,10 +611,31 @@ slowlog-log-slower-than 10000
|
|
578
611
|
# You can reclaim memory used by the slow log with SLOWLOG RESET.
|
579
612
|
slowlog-max-len 128
|
580
613
|
|
614
|
+
################################ LATENCY MONITOR ##############################
|
615
|
+
|
616
|
+
# The Redis latency monitoring subsystem samples different operations
|
617
|
+
# at runtime in order to collect data related to possible sources of
|
618
|
+
# latency of a Redis instance.
|
619
|
+
#
|
620
|
+
# Via the LATENCY command this information is available to the user that can
|
621
|
+
# print graphs and obtain reports.
|
622
|
+
#
|
623
|
+
# The system only logs operations that were performed in a time equal or
|
624
|
+
# greater than the amount of milliseconds specified via the
|
625
|
+
# latency-monitor-threshold configuration directive. When its value is set
|
626
|
+
# to zero, the latency monitor is turned off.
|
627
|
+
#
|
628
|
+
# By default latency monitoring is disabled since it is mostly not needed
|
629
|
+
# if you don't have latency issues, and collecting data has a performance
|
630
|
+
# impact, that while very small, can be measured under big load. Latency
|
631
|
+
# monitoring can easily be enalbed at runtime using the command
|
632
|
+
# "CONFIG SET latency-monitor-threshold <milliseconds>" if needed.
|
633
|
+
latency-monitor-threshold 0
|
634
|
+
|
581
635
|
############################# Event notification ##############################
|
582
636
|
|
583
637
|
# Redis can notify Pub/Sub clients about events happening in the key space.
|
584
|
-
# This feature is documented at http://redis.io/topics/
|
638
|
+
# This feature is documented at http://redis.io/topics/notifications
|
585
639
|
#
|
586
640
|
# For instance if keyspace events notification is enabled, and a client
|
587
641
|
# performs a DEL operation on key "foo" stored in the Database 0, two
|
@@ -651,6 +705,20 @@ set-max-intset-entries 512
|
|
651
705
|
zset-max-ziplist-entries 128
|
652
706
|
zset-max-ziplist-value 64
|
653
707
|
|
708
|
+
# HyperLogLog sparse representation bytes limit. The limit includes the
|
709
|
+
# 16 bytes header. When an HyperLogLog using the sparse representation crosses
|
710
|
+
# this limit, it is converted into the dense representation.
|
711
|
+
#
|
712
|
+
# A value greater than 16000 is totally useless, since at that point the
|
713
|
+
# dense representation is more memory efficient.
|
714
|
+
#
|
715
|
+
# The suggested value is ~ 3000 in order to have the benefits of
|
716
|
+
# the space efficient encoding without slowing down too much PFADD,
|
717
|
+
# which is O(N) with the sparse encoding. The value can be raised to
|
718
|
+
# ~ 10000 when CPU is not a concern, but space is, and the data set is
|
719
|
+
# composed of many HyperLogLogs with cardinality in the 0 - 15000 range.
|
720
|
+
hll-sparse-max-bytes 3000
|
721
|
+
|
654
722
|
# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
|
655
723
|
# order to help rehashing the main Redis hash table (the one mapping top-level
|
656
724
|
# keys to values). The hash table implementation Redis uses (see dict.c)
|
@@ -678,8 +746,8 @@ activerehashing yes
|
|
678
746
|
#
|
679
747
|
# The limit can be set differently for the three different classes of clients:
|
680
748
|
#
|
681
|
-
# normal -> normal clients
|
682
|
-
# slave -> slave clients
|
749
|
+
# normal -> normal clients including MONITOR clients
|
750
|
+
# slave -> slave clients
|
683
751
|
# pubsub -> clients subscribed to at least one pubsub channel or pattern
|
684
752
|
#
|
685
753
|
# The syntax of every client-output-buffer-limit directive is the following:
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Conway
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-10-
|
12
|
+
date: 2014-10-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -560,7 +560,6 @@ files:
|
|
560
560
|
- templates/postgresql/config/rubber/deploy-postgresql.rb
|
561
561
|
- templates/postgresql/config/rubber/role/postgresql/crontab
|
562
562
|
- templates/postgresql/config/rubber/role/postgresql/pg_hba.conf
|
563
|
-
- templates/postgresql/config/rubber/role/postgresql/postgresql-sysctl.conf
|
564
563
|
- templates/postgresql/config/rubber/role/postgresql/postgresql.conf
|
565
564
|
- templates/postgresql/config/rubber/role/postgresql_slave/recovery.conf
|
566
565
|
- templates/postgresql/config/rubber/rubber-postgresql.yml
|