Filippo Giunchedi has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/350817 )

Change subject: [WIP] Send 5xx from kafkatee to logstash
......................................................................

[WIP] Send 5xx from kafkatee to logstash

Straw man patch to send 5xx read from webrequest kafka topics with kafkatee to
logstash.

The 'type' field is used to distinguish existing 'json_lines' filters and be
able to further filter webrequest in the future (e.g. to redact fields)

Bug: T149451
Change-Id: I451160b0089daf8242a8b49737052f61300b1e7e
---
M hieradata/role/common/logging/kafkatee/webrequest/ops.yaml
M modules/role/manifests/logging/kafkatee/webrequest/ops.pp
M modules/role/manifests/logstash/collector.pp
3 files changed, 22 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/17/350817/1

diff --git a/hieradata/role/common/logging/kafkatee/webrequest/ops.yaml 
b/hieradata/role/common/logging/kafkatee/webrequest/ops.yaml
index 43d013a..e96ae06 100644
--- a/hieradata/role/common/logging/kafkatee/webrequest/ops.yaml
+++ b/hieradata/role/common/logging/kafkatee/webrequest/ops.yaml
@@ -1,3 +1,5 @@
 debdeploy::grains:
   debdeploy-kafkatee:
     value: standard
+role::logging::kafkatee::webrequest::ops::logstash_host: 
logstash1001.eqiad.wmnet
+role::logging::kafkatee::webrequest::ops::logstash_port: 11515
diff --git a/modules/role/manifests/logging/kafkatee/webrequest/ops.pp 
b/modules/role/manifests/logging/kafkatee/webrequest/ops.pp
index 694e6f2..015a662 100644
--- a/modules/role/manifests/logging/kafkatee/webrequest/ops.pp
+++ b/modules/role/manifests/logging/kafkatee/webrequest/ops.pp
@@ -6,6 +6,8 @@
     include role::logging::kafkatee::webrequest::base
 
     $webrequest_log_directory = 
$::role::logging::kafkatee::webrequest::base::webrequest_log_directory
+    $logstash_host = 
hiera('role::logging::kafkatee::webrequest::ops::logstash_host')
+    $logstash_port = 
hiera('role::logging::kafkatee::webrequest::ops::logstash_port')
 
     kafkatee::output { 'sampled-1000':
         destination => "${webrequest_log_directory}/sampled-1000.json",
@@ -19,4 +21,10 @@
         destination => "/bin/grep --line-buffered '\"http_status\":\"5' >> 
${webrequest_log_directory}/5xx.json",
         type        => 'pipe',
     }
+
+    # Send 5xx to logstash, append "type: webrequest" for logstash to pick up
+    kafkatee::output { 'logstash-5xx':
+        destination => "/bin/grep --line-buffered '\"http_status\":\"5' | jq 
--arg type webrequest '. + {type: \$type}' | socat - 
TCP:$logstash_host:$logstash_port",
+        type        => 'pipe',
+    }
 }
diff --git a/modules/role/manifests/logstash/collector.pp 
b/modules/role/manifests/logstash/collector.pp
index 7d4952c..391df8d 100644
--- a/modules/role/manifests/logstash/collector.pp
+++ b/modules/role/manifests/logstash/collector.pp
@@ -100,6 +100,18 @@
         srange  => '$DOMAIN_NETWORKS',
     }
 
+    logstash::input::tcp { 'webrequest':
+        port  => 11515,
+        codec => 'json_lines',
+    }
+
+    ferm::service { 'logstash_webrequest':
+        proto   => 'tcp',
+        port    => '11515',
+        notrack => true,
+        srange  => '$DOMAIN_NETWORKS',
+    }
+
     ## Global pre-processing (15)
 
     # move files into module?

-- 
To view, visit https://gerrit.wikimedia.org/r/350817
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I451160b0089daf8242a8b49737052f61300b1e7e
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Filippo Giunchedi <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to