Guest User

Untitled

a guest
Oct 14th, 2024
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.37 KB | None | 0 0
  1. input { pipeline { address => "lumberjack_pipeline_lbjk2" } }
  2. filter {
  3. if [log_type] == "internal_log" {
  4. ruby {
  5. code => "
  6. require 'json';
  7. content = event.get('[message]');
  8. temp = content[/{.+/mi];
  9. if (!temp.nil? && temp != '') then
  10. if not(temp.match?(/^((?!(^\d{4}-\d{2}-\d{2})|(^\{\"version)).)*$/)) then
  11. data = JSON.parse(temp);
  12. if (data) && (data['timestamp'] != nil) then
  13. event.set('timestamp', data['timestamp'])
  14. end
  15. event.set('message', temp)
  16. event.set('is_json_event', 'true')
  17. else
  18. log_part = temp.match(/({.*})/m)&.captures&.first
  19. multiline_log = temp.sub(/^{.*?}(?=\n|$)/m, '').strip
  20. event.set('multiline_log', multiline_log)
  21. event.set('message', log_part)
  22. event.set('is_json_event', 'true')
  23. end
  24. end
  25. if not(event.get('[is_json_event]') == 'true') then
  26. event.set('version', '1.2.0')
  27. event.set('severity', 'info')
  28. event.set('service_id', 'logstash-server')
  29. event.set('timestamp', event.get('[@timestamp]'))
  30. filename = event.get('[filename]');
  31. if ( !filename.nil? && filename != '') then
  32. event.set('[metadata][container_name]' , event.get('[filename]').split('/').last.split('.').first)
  33. end
  34. end
  35. "
  36. }
  37. if ![is_json_event]
  38. {
  39. mutate {
  40. add_field => { "[metadata][namespace]" => "${NAMESPACE:UNKNOWN}"}
  41. add_field => { "[metadata][pod_name]" => "${POD_NAME:UNKNOWN}"}
  42. add_field => { "[metadata][node_name]" => "${NODE_NAME:UNKNOWN}"}
  43. add_field => { "[metadata][pod_uid]" => "${POD_UID:UNKNOWN}"}
  44. remove_field=>["filename"]
  45. }
  46. }
  47. if [is_json_event] {
  48. json {
  49. skip_on_invalid_json => true
  50. source => "message"
  51. target => "json"
  52. remove_field=>["message", "kubernetes"]
  53. }
  54. if [json][metadata][proc_id] {
  55. mutate {
  56. add_field => { "[metadata][proc_id]" => "%{[json][metadata][proc_id]}" }
  57. }
  58. }
  59. if [json][metadata][node_name] {
  60. mutate {
  61. add_field => { "[metadata][node_name]" => "%{[json][metadata][node_name]}" }
  62. }
  63. }
  64. if [json][metadata][namespace] {
  65. mutate {
  66. add_field => { "[metadata][namespace]" => "%{[json][metadata][namespace]}" }
  67. }
  68. }
  69. if [json][metadata][pod_name] {
  70. mutate {
  71. add_field => { "[metadata][pod_name]" => "%{[json][metadata][pod_name]}" }
  72. }
  73. }
  74. if ![timestamp]{
  75. mutate {
  76. copy => { "@timestamp" => "timestamp_modified" }
  77. }
  78. mutate {
  79. convert => { "timestamp_modified" => "string" }
  80. }
  81. date {
  82. match => ["timestamp_modified", "ISO8601"]
  83. target => "timestamp_precision"
  84. }
  85. mutate {
  86. convert => { "timestamp_precision" => "string" }
  87. }
  88. mutate {
  89. gsub => [ "timestamp_precision", "Z", "+00:00" ]
  90. }
  91. mutate {
  92. add_field => {
  93. "timestamp" => "%{timestamp_precision}"
  94. }
  95. }
  96. mutate {
  97. remove_field => [ "timestamp_modified" ]
  98. remove_field => [ "timestamp_precision" ]
  99. }
  100. }if ![multiline_log]{
  101. mutate {
  102. add_field => { "message" => "%{[json][message]}" }
  103. }
  104. }
  105. else {
  106. ruby {
  107. code => '
  108. event.set("message", event.get("[json][message]") + "\n" + event.get("[multiline_log]"))
  109. '
  110. }
  111. }
  112. mutate {
  113. add_field => {
  114. "service_id" => "%{[json][service_id]}"
  115. "version" => "%{[json][version]}"
  116. "[metadata][container_name]" => "%{[json][metadata][container_name]}"
  117. "severity" => "%{[json][severity]}"
  118. }
  119. remove_field => [ "is_json_event", "json", "log_type", "multiline_log" ]
  120. }
  121. }
  122. else {
  123. mutate {
  124. remove_field => [ "log_type" ]
  125. }
  126. }
  127. ruby {
  128. code => '
  129. multiline_check = event.get("[tags]")
  130. if multiline_check && multiline_check.include?("multiline") && multiline_check.size == 1
  131. event.remove("[tags]")
  132. end
  133. '
  134. }
  135. }
  136. mutate {
  137. add_field => {
  138. "facilityId" => "audit"
  139. }
  140. }
  141.  
  142. if [message] == "My first beat message"
  143. or [message] == "My second beat message"
  144. {
  145. if [message] == "This message will be excluded in extSE 2" {
  146. drop{}
  147. }
  148. }
  149. else {
  150. drop{}
  151. }
  152. mutate {
  153. replace => { "type" => "lumberjack_generated" }
  154. }
  155. if [pipeline_data] {
  156. mutate {
  157. remove_field => ["pipeline_data"]
  158. }
  159. }
  160. }
  161. output {
  162. lumberjack {
  163. id => "lbjk2"
  164. hosts => ["ext2-lumberjack-server"]
  165. codec => "json"
  166. port => 5044
  167. ssl_certificate => "/run/secrets/lumberjackOutput-cacerts/trustedcert"
  168. }
  169. }
  170.  
Advertisement
Add Comment
Please, Sign In to add comment