forked from circonus-labs/reconnoiter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
stratcon.conf.in
204 lines (196 loc) · 7.35 KB
/
stratcon.conf.in
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
<?xml version="1.0" encoding="utf8" standalone="yes"?>
<stratcon lockfile="/var/run/stratcond.lock">
<!-- <watchdog glider="/opt/gimli/bin/glider" tracedir="/var/log/stratcond.crash"/> -->
<eventer/>
<logs>
<console_output>
<outlet name="stderr"/>
<log name="error"/>
<log name="debug"/>
<log name="error/iep"/>
<log name="error/eventer" disabled="true"/>
<log name="error/datastore" disabled="true"/>
<log name="debug/eventer" disabled="true"/>
</console_output>
</logs>
<modules directory="%modulesdir%">
<generic image="stomp_driver" name="stomp_driver"/>
<generic image="postgres_ingestor" name="postgres_ingestor"/>
</modules>
<noits>
<config>
<!--
If we have a connection failure, attempt to reconnect
immediately. Upon failure wait 1000ms (1s) and
exponentially backoff up to 900000ms (900s or 15m)
-->
<reconnect_initial_interval>1000</reconnect_initial_interval>
<reconnect_maximum_interval>15000</reconnect_maximum_interval>
</config>
<sslconfig>
<key_file>%sysconfdir%/%PKIPREFIX%stratcon.key</key_file>
<certificate_file>%sysconfdir%/%PKIPREFIX%stratcon.crt</certificate_file>
<ca_chain>%sysconfdir%/%PKIPREFIX%ca.crt</ca_chain>
</sslconfig>
<noit address="127.0.0.1" port="43191" />
</noits>
<iep disabled="false">
<start directory="%iepdbdir%"
command="%iepbindir%/run-iep.sh" />
<mq type="stomp">
</mq>
<!-- For RabbitMQ
<broker adapter="rabbitmq">
<hostname>mq1.int.circonus.net,mq2.int.circonus.net</hostname>
<username>stratcon</username>
<password>youllneverguess</password>
</broker>
<mq type="rabbitmq">
<hostname>mq1.int.circonus.net,mq2.int.circonus.net</hostname>
<exchange>noit.firehose</exchange>
<exchangetype>topic</exchangetype>
<routingkey>check,null</routingkey>
<username>stratcon</username>
<password>youllneverguess</password>
</mq>
-->
<queries master="iep">
<statement id="6cc613a4-7f9c-11de-973f-db7e8ccb2e5c" provides="CheckDetails-ddl">
<epl>create window CheckDetails.std:unique(uuid).win:keepall() as NoitCheck</epl>
</statement>
<statement id="76598f5e-7f9c-11de-9f5b-ebb4dcb2494e" provides="CheckDetails">
<requires>CheckDetails-ddl</requires>
<epl>insert into CheckDetails select * from NoitCheck</epl>
</statement>
<statement id="ba189f08-7f99-11de-9013-733772d37479" provides="UnavailableStream">
<requires>CheckDetails</requires>
<epl>insert into UnavailableStream
select p.* as delta, cds.target as target, cds.module as module,
cds.name as name, p.s.uuid as uuid
from pattern [ every
s=NoitStatus(availability='A') ->
( n0 = NoitStatus(uuid=s.uuid, availability='U')
and not NoitStatus(uuid=s.uuid, availability='A'))
].std:lastevent() as p
inner join CheckDetails as cds on cds.uuid = p.s.uuid
</epl>
</statement>
<query id="ce6bf8d2-3dd7-11de-a45c-a7df160cba9e" topic="status">
<epl>select * from NoitStatus</epl>
</query>
</queries>
</iep>
<database>
<journal>
<path>/var/log/stratcon.persist</path>
</journal>
<dbconfig>
<host>localhost</host>
<dbname>reconnoiter</dbname>
<user>stratcon</user>
<password>unguessable</password>
</dbconfig>
<statements>
<!-- These are optional and used for stuff like setting search paths -->
<!--
<metanodepostconnect><![CDATA[
SELECT do_some_magic();
]]></metanodepostconnect>
<storagepostconnect><![CDATA[
SELECT do_some_magic($1,$2);
]]></storagepostconnect>
-->
<allchecks><![CDATA[
SELECT remote_address, id, target, module, name
FROM check_currently
]]></allchecks>
<findcheck><![CDATA[
SELECT remote_address, id, target, module, name
FROM check_currently
WHERE sid = $1
]]></findcheck>
<allstoragenodes><![CDATA[
SELECT storage_node_id, fqdn, dsn
FROM stratcon.storage_node
]]></allstoragenodes>
<findstoragenode><![CDATA[
SELECT fqdn, dsn
FROM stratcon.storage_node
WHERE storage_node_id = $1
]]></findstoragenode>
<mapallchecks><![CDATA[
SELECT id, sid, noit as remote_cn, storage_node_id, fqdn, dsn
FROM stratcon.map_uuid_to_sid LEFT JOIN stratcon.storage_node USING (storage_node_id)
]]></mapallchecks>
<mapchecktostoragenode><![CDATA[
SELECT o_storage_node_id as storage_node_id, o_sid as sid,
o_fqdn as fqdn, o_dsn as dsn, o_noit as remote_cn
FROM stratcon.map_uuid_to_sid($1,$2)
]]></mapchecktostoragenode>
<check><![CDATA[
INSERT INTO check_archive_%Y%m%d
(remote_address, whence, sid, id, target, module, name)
VALUES ($1, 'epoch'::timestamptz + ($2 || ' seconds')::interval,
$3, $4, $5, $6, $7)
]]></check>
<status><![CDATA[
INSERT INTO check_status_archive_%Y%m%d
(whence, sid, state, availability, duration, status)
VALUES ('epoch'::timestamptz + ($1 || ' seconds')::interval,
$2, $3, $4, $5, $6)
]]></status>
<metric_numeric><![CDATA[
INSERT INTO metric_numeric_archive_%Y%m%d
(whence, sid, name, value)
VALUES ('epoch'::timestamptz + ($1 || ' seconds')::interval,
$2, $3, $4)
]]></metric_numeric>
<metric_text><![CDATA[
INSERT INTO metric_text_archive_%Y%m%d
( whence, sid, name,value)
VALUES ('epoch'::timestamptz + ($1 || ' seconds')::interval,
$2, $3, $4)
]]></metric_text>
<config><![CDATA[
SELECT stratcon.update_config
($1, $2, $3,
'epoch'::timestamptz + ($4 || ' seconds')::interval,
$5)
]]></config>
<findconfig><![CDATA[
SELECT config FROM stratcon.current_node_config WHERE remote_cn = $1
]]></findconfig>
</statements>
</database>
<listeners>
<sslconfig>
<key_file>%sysconfdir%/%PKIPREFIX%stratcon.key</key_file>
<certificate_file>%sysconfdir%/%PKIPREFIX%stratcon.crt</certificate_file>
<ca_chain>%sysconfdir%/%PKIPREFIX%ca.crt</ca_chain>
</sslconfig>
<consoles type="noit_console">
<listener address="/tmp/stratcon">
<config><line_protocol>telnet</line_protocol></config>
</listener>
</consoles>
<realtime type="http_rest_api">
<listener address="*" port="80">
<config>
<hostname>stratcon.noit.example.com</hostname>
<document_domain>noit.example.com</document_domain>
</config>
</listener>
</realtime>
<listener type="control_dispatch" address="*" port="43191" ssl="on" />
</listeners>
<rest>
<acl type="deny">
<rule type="deny" url="/\.svn"/>
<rule type="allow" cn="^admin$"/>
<rule type="allow" cn="^nagios$" url="^/noits/show$"/>
<rule type="allow" url="^/noits/config$"/>
<rule type="allow" url="^/data/"/>
<rule type="allow" url="^/$"/>
</acl>
</rest>
</stratcon>