-
Notifications
You must be signed in to change notification settings - Fork 0
/
logstash-rabbitmq.conf
58 lines (58 loc) · 2.07 KB
/
logstash-rabbitmq.conf
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
input {
http_poller {
# List of urls to hit
urls => {
urlP3_1 => {
method => "GET"
url => "http://XXXXX:15672/api/queues?sort=message_stats.publish_details.rate&sort_reverse=true&columns=name,message_stats.publish_details.rate,message_stats.deliver_get_details.rate,message_stats.get,message_stats.get_no_ack,message_stats.publish,message_stats.deliver_get"
headers => { Accept => "application/json" }
auth => { user => "xxxxx"
password => "xxxxx" }
ContentLength => 0
}
urlP3_2 => {
method => "GET"
url => "http://XXXXX:15672/api/queues?sort=message_stats.publish_details.rate&sort_reverse=true&columns=name,message_stats.publish_details.rate,message_stats.deliver_get_details.rate,message_stats.get,message_stats.get_no_ack,message_stats.publish,message_stats.deliver_get"
headers => { Accept => "application/json" }
auth => { user => "xxxxx"
password => "xxxxx" }
ContentLength => 0
}
}
request_timeout => 30
interval => 3600 # Every 1 hours
codec => "json"
metadata_target => "http_poller_metadata"
type => "rabbitmq"
}
}
filter {
if ![message_stats] {
drop {}
}
else
{
grok {
match => ["[http_poller_metadata][request][url]","%{URIPROTO:uri_proto}://%{WORD:server}:%{NUMBER:port}/%{WORD:api}/%{GREEDYDATA:query}"]
remove_field => ["uri_proto"]
remove_field => ["api"]
remove_field => ["query"]
remove_field => ["port"]
}
mutate {
rename => { "[message_stats][publish]" => "Publish" }
rename => { "[message_stats][get_no_ack]" => "Get_No_Ack" }
rename => { "[message_stats][get]" => "Get" }
rename => { "[message_stats][deliver_get_details][rate]" => "Deliver_Get_Rate" }
rename => { "[message_stats][deliver_get]" => "Deliver_Get" }
rename => { "[message_stats][publish_details][rate]" => "Deliver_Publish_Rate" }
rename => { "name" => "Queue_Name" }
}
}
}
output {
elasticsearch {
hosts => "localhost"
index => "logstash-%{type}-%{+YYYY.MM.dd}"
}
}