The streaming services sends a base64 encoded data as below
eyJoZWFkZXJzIjp7ImV2ZW50VHlwZSI6ImNvbS5kYXRhLmVuYWJsZW1lbnQuZ2xvYmFsSWRlbnRpdHkuY2hhbmdlZCIsIm9wZXJhdGlvbiI6IlVQREFURSIsIm1lc3NhZ2VUeXBlIjoiSURFTlRJVFkiLCJldmVudFRpbWUiOiIyMDI1LTA3LTE1VDE1OjI1OjAxLjgxNDUzOTk5NFoiLCJ0ZW5hbmN5SWQiOiJpZDEudGVuYW5jeS5vYzEuLmhscGEiLCJzZXJ2aWNlSW5zdGFuY2VJZCI6ImlkMS5pbnN0YW5jZS55NHEiLCJvcGNSZXF1ZXN0SWQiOiJlYy0xMmUtNDEtYWYtNzI0IiwiZXZlbnRUeXBlVmVyc2lvbiI6IjEuMCIsImV2ZW50SWQiOiJjMzEtYmMtNDktYWYtZjJjIn0sImRhdGEiOiJ7XCJnbG9iYWxJZGVudGl0eVwiOntcImlkZW50aXR5XCI6e1wiYWRkcmVzc2VzXCI6W3t9XSxcImFnUmlza1wiOntcInZhbHVlXCI6MH0sXCJhZ1N0YXR1c1wiOlwiQUdfQUNUSVZFXCIsXCJhZ1N1YlR5cGVcIjpcIkNPTlNVTUVSXCIsXCJhZ09yZ2FuaXphdGlvbnNcIjpbe1wiZGlzcGxheU5hbWVcIjpcImFsbEFjdGl2ZVVzZXJzXCJ9XSxcImN1c3RvbUF0dHJpYnV0ZXNcIjp7XCJpc0NvcnJlbGF0ZWRcIjp0cnVlLFwiZG9tYWluTmFtZVwiOlwiQ2xvdWRTZXJ2aWNlXCIsXCJvY2lkXCI6XCJpZDEudXIubzEuLjIyYVwiLFwibGFzdFN1Y2Nlc3NmdWxMb2dpblRpbWVcIjowLjAsXCJjb21wYXJ0bWVudE9DSURcIjpcImlkMS50ZW5hbmN5Lm8xLi5scGFcIixcImNvbXBhcnRtZW50TmFtZVwiOlwic2FzXCIsXCJjbG91ZEFjY291bnROYW1lXCI6XCJzYXNcIn0sXCJkZXBhcnRtZW50XCI6XCJVSWRlcHQwMDFcIixcImRpc3BsYXlOYW1lXCI6XCJLR2lTTCB0eXBlMDE2XCIsXCJkb21haW5PQ0lEXCI6XCJpZDEuZG9tYWluLm8xLi5uMmFcIixcImVtYWlsc1wiOlt7XCJ2YWx1ZVwiOlwia3R5cGUwMTZAa3R5cGUwMTYuY29tXCJ9XSxcIm5hbWVcIjp7XCJmYW1pbHlOYW1lXCI6XCJ0eXBlMDE2XCIsXCJnaXZlbk5hbWVcIjpcImZfS0dpU0xcIn0sXCJwaG9uZU51bWJlcnNcIjpbXSxcInByaW1hcnlFbWFpbFwiOlwia3R5cGUwMTZAa3R5cGUwMTYuY29tXCIsXCJyZWdpb25cIjpcInB4OnVzLW9pLTFcIixcInN0YXR1c1wiOlwiQWN0aXZlXCIsXCJ1c2VyTmFtZVwiOlwia3R5cGUwMTZcIixcInVzZXJUeXBlXCI6XCJlQ2hhbmdlMDAxX3R5cGUwMTZcIn0sXCJpZFwiOlwiZ2xvYmFsSWQuSUYuNzRjMC1lNC00Yi04NS01Y2U3LmM1NjVkXCIsXCJ0YXJnZXRJZGVudGl0aWVzXCI6W3tcInRhcmdldElkXCI6XCI0ZjMtYzUtNDktYjctODBkOFwiLFwiaWRlbnRpdHlcIjp7XCJhZGRyZXNzZXNcIjpbe1wibG9jYWxpdHlcIjpcImNpdHlfVUkwMDFcIixcInR5cGVcIjpcIndvcmtcIn1dLFwiYWdPcmdhbml6YXRpb25zXCI6W10sXCJjdXN0b21BdHRyaWJ1dGVzXCI6e1wiY29tcGFydG1lbnRGUU5cIjpcInNlaHViamFwYWNpYWFzXCIsXCJvY2lkXCI6XCJpZDEudXNlci5vYzEuLjIyYVwiLFwibGFzdFN1Y2Nlc3NmdWxMb2dpblRpbWVcIjowLjAsXCJjbG91ZEFjY291bnROYW1lXCI6XCJzYXNcIixcImdyb3VwQXNzaWdubWVudHNcIjpbXSxcInJvbGVBc3NpZ25tZW50c1wiOlt7XCJjcmVhdGVEYXRlXCI6MS43NTA5Mzg5NDlFOSxcImdyYW50XCI6e1widmFsdWVcIjpcIjAxN2FjNWJjYjNcIn0sXCJwcm92aXNpb25pbmdNZWNoYW5pc21cIjpcIkFETUlOSVNUUkFUT1JfVE9fVVNFUlwiLFwicm9sZVwiOntcImRpc3BsYXlOYW1lXCI6XCJhcHBSb2xlc1wiLFwidmFsdWVcIjpcImIzNTZcIn0sXCJ1aWRcIjpcImIzNlwifV0sXCJjb21wYXJ0bWVudE9DSURcIjpcImlkMS50ZW5hbmN5Lm8xLi5obHBhXCIsXCJpZGNzSWRcIjpcImVmNDI5ZlwiLFwibGFzdE1vZGlmaWVkQnlcIjp7XCJkaXNwbGF5TmFtZVwiOlwiZGFzaCBlbGFzdGljXCIsXCJyZWZcIjpcImh0dHBzOi8vaXMtOTAudHkuZWNsb3VkLmNvbTo0NDMvYWRtaW4vdjEvVXNlcnMvMDNlXCIsXCJyZXNvdXJjZVR5cGVcIjpcIkFDQ09VTlRcIixcInZhbHVlXCI6XCJpZDEudXNlci5vYzEuLnJhXCJ9LFwiY29tcGFydG1lbnROYW1lXCI6XCJzYXNcIixcImRvbWFpbk5hbWVcIjpcInlDbG91ZFNlcnZpY2VcIixcInRhcmdldEFjY291bnRzXCI6W1wiZWY5NDI5ZlwiXSxcInByZXZpb3VzU3VjY2Vzc2Z1bExvZ2luVGltZVwiOjAuMCxcIm9wZXJhdGlvblR5cGVcIjpcIkNSRUFURV9PUl9VUERBVEVcIixcInRhZ3NcIjpbXSxcImNyZWF0ZWRCeVwiOntcImRpc3BsYXlOYW1lXCI6XCJmaXJzdCBhZ2NzLXVzZXJcIixcInJlZlwiOlwiaHR0cHM6Ly9pcy05NjAuZWNsb3VkLmNvbTo0NDMvYWRtaW4vdjEvVXNlcnMvUEkgVXNlclwiLFwicmVzb3VyY2VUeXBlXCI6XCJBQ0NPVU5UXCIsXCJ2YWx1ZVwiOlwiaWQxLnVzZXIub2MxLi5qYVwifSxcInByb3Zpc2lvbmVkRGF0ZVwiOjAuMH0sXCJkZXBhcnRtZW50XCI6XCJVSWRlcHQwMDFcIixcImRpc3BsYXlOYW1lXCI6XCJmX0tHaVNMIHR5cGUwMTZcIixcImRvbWFpbk9DSURcIjpcImlkMS5kb21haW4ub2MxLi5uMmFcIixcImVtYWlsc1wiOlt7XCJwcmltYXJ5XCI6ZmFsc2UsXCJzZWNvbmRhcnlcIjpmYWxzZSxcInR5cGVcIjpcInJlY292ZXJ5XCIsXCJ2YWx1ZVwiOlwia3R5cGUwMTZAa3R5cGUwMTYuY29tXCIsXCJ2ZXJpZmllZFwiOmZhbHNlfSx7XCJwcmltYXJ5XCI6dHJ1ZSxcInNlY29uZGFyeVwiOmZhbHNlLFwidHlwZVwiOlwid29ya1wiLFwidmFsdWVcIjpcImt0eXBlMDE2QGt0eXBlMDE2LmNvbVwiLFwidmVyaWZpZWRcIjpmYWxzZX1dLFwibmFtZVwiOntcImZvcm1hdHRlZFwiOlwia3R5cGUwMTZcIn0sXCJvcmdhbml6YXRpb25cIjp7fSxcInBob25lTnVtYmVyc1wiOltdLFwicHJpbWFyeUVtYWlsXCI6XCJrdHlwZTAxNkBrdHlwZTAxNi5jb21cIixcInJlZ2lvblwiOlwicGh4OnVzLXBob2VuaXgtMVwiLFwic3RhdHVzXCI6XCJEaXNhYmxlZFwiLFwidGl0bGVcIjpcIlVJX3RpdGxlMDAxXCIsXCJ1c2VyTmFtZVwiOlwia3R5cGUwMTZcIn0sXCJleHRlcm5hbElkXCI6XCJlZmViMWFmOTgxZTg0MDYxYWYyN2QyMTRjNmE5NDI5ZlwiLFwiaWRcIjpcInRhcmdldElkLmFjY291bnQuT0kuNGYzLWM1LTQ5LWI3LTgwY2Q4LjIwMDEyMVwiLFwiZG9tYWluSWRcIjpcInJlc291cmNlLkkuNDMtYzUtNDktYjctOGQ4LjFkOFwifV19fSJ9
which decodes (base64 decoded in notepad++) into below nested data
{"headers":{"eventType":"com.data.enablement.globalIdentity.changed","operation":"UPDATE","messageType":"IDENTITY","eventTime":"2025-07-15T15:25:01.814539994Z","tenancyId":"id1.tenancy.oc1..hlpa","serviceInstanceId":"id1.instance.y4q","opcRequestId":"ec-12e-41-af-724","eventTypeVersion":"1.0","eventId":"c31-bc-49-af-f2c"},"data":"{\"globalIdentity\":{\"identity\":{\"addresses\":[{}],\"agRisk\":{\"value\":0},\"agStatus\":\"AG_ACTIVE\",\"agSubType\":\"CONSUMER\",\"agOrganizations\":[{\"displayName\":\"allActiveUsers\"}],\"customAttributes\":{\"isCorrelated\":true,\"domainName\":\"CloudService\",\"ocid\":\"id1.ur.o1..22a\",\"lastSuccessfulLoginTime\":0.0,\"compartmentOCID\":\"id1.tenancy.o1..lpa\",\"compartmentName\":\"sas\",\"cloudAccountName\":\"sas\"},\"department\":\"UIdept001\",\"displayName\":\"KGiSL type016\",\"domainOCID\":\"id1.domain.o1..n2a\",\"emails\":[{\"value\":\"ktype016@ktype016.com\"}],\"name\":{\"familyName\":\"type016\",\"givenName\":\"f_KGiSL\"},\"phoneNumbers\":[],\"primaryEmail\":\"ktype016@ktype016.com\",\"region\":\"px:us-oi-1\",\"status\":\"Active\",\"userName\":\"ktype016\",\"userType\":\"eChange001_type016\"},\"id\":\"globalId.IF.74c0-e4-4b-85-5ce7.c565d\",\"targetIdentities\":[{\"targetId\":\"4f3-c5-49-b7-80d8\",\"identity\":{\"addresses\":[{\"locality\":\"city_UI001\",\"type\":\"work\"}],\"agOrganizations\":[],\"customAttributes\":{\"compartmentFQN\":\"sehubjapaciaas\",\"ocid\":\"id1.user.oc1..22a\",\"lastSuccessfulLoginTime\":0.0,\"cloudAccountName\":\"sas\",\"groupAssignments\":[],\"roleAssignments\":[{\"createDate\":1.750938949E9,\"grant\":{\"value\":\"017ac5bcb3\"},\"provisioningMechanism\":\"ADMINISTRATOR_TO_USER\",\"role\":{\"displayName\":\"appRoles\",\"value\":\"b356\"},\"uid\":\"b36\"}],\"compartmentOCID\":\"id1.tenancy.o1..hlpa\",\"idcsId\":\"ef429f\",\"lastModifiedBy\":{\"displayName\":\"dash elastic\",\"ref\":\"https://is-90.ty.ecloud.com:443/admin/v1/Users/03e\",\"resourceType\":\"ACCOUNT\",\"value\":\"id1.user.oc1..ra\"},\"compartmentName\":\"sas\",\"domainName\":\"yCloudService\",\"targetAccounts\":[\"ef9429f\"],\"previousSuccessfulLoginTime\":0.0,\"operationType\":\"CREATE_OR_UPDATE\",\"tags\":[],\"createdBy\":{\"displayName\":\"first agcs-user\",\"ref\":\"https://is-960.ecloud.com:443/admin/v1/Users/PI User\",\"resourceType\":\"ACCOUNT\",\"value\":\"id1.user.oc1..ja\"},\"provisionedDate\":0.0},\"department\":\"UIdept001\",\"displayName\":\"f_KGiSL type016\",\"domainOCID\":\"id1.domain.oc1..n2a\",\"emails\":[{\"primary\":false,\"secondary\":false,\"type\":\"recovery\",\"value\":\"ktype016@ktype016.com\",\"verified\":false},{\"primary\":true,\"secondary\":false,\"type\":\"work\",\"value\":\"ktype016@ktype016.com\",\"verified\":false}],\"name\":{\"formatted\":\"ktype016\"},\"organization\":{},\"phoneNumbers\":[],\"primaryEmail\":\"ktype016@ktype016.com\",\"region\":\"phx:us-phoenix-1\",\"status\":\"Disabled\",\"title\":\"UI_title001\",\"userName\":\"ktype016\"},\"externalId\":\"efeb1af981e84061af27d214c6a9429f\",\"id\":\"targetId.account.OI.4f3-c5-49-b7-80cd8.200121\",\"domainId\":\"resource.I.43-c5-49-b7-8d8.1d8\"}]}}"}
Currently, the filter in file : input.conf is able to partially extract the data out of the base64 decoded data
input {
kafka {
bootstrap_servers => "ecloud.com:9092"
topics => "_Streaming"
security_protocol => "SASL_SSL"
sasl_mechanism => "PLAIN"
jaas_path => "<PATH>\logstash\logstash-8.17.2\jaas.conf"
auto_offset_reset => "earliest"
consumer_threads => 1
}
}
filter {
ruby { code => 'event.set("decoded", Base64.decode64(event.get("message")))' }
mutate {
gsub => [
"decoded", "\"", "",
#"decoded", "\,", "#",
"decoded", "{headers:{", ""
#"decoded", "}", ""
]
}
kv {
field_split => ","
value_split => ":"
trim_key => "\s"
source => "decoded"
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => ["http://localhost:9200"]
}
}
logstash output of the above encoded data using highlighted filter
[2025-07-18T15:00:28,451][WARN ][logstash.filters.kv ][main][c378ddfa19255977b80ebc28413aa3defed410d20c6ca4ef288fe3257e2ca0e7] Exception while parsing KV {:exception=>"Invalid FieldReference: `\\agStatus\\:\\AG_ACTIVE\\,\\agSubType\\:\\CONSUMER\\,\\agOrganizations\\:[{\\displayName\\`"}
{
"event" => {
"original" => "<base64_encodedData>"
},
"opcRequestId" => "ec-12e-41-af-724",
"tags" => [
[0] "_kv_filter_error"
],
"operation" => "UPDATE",
"eventType" => "com.data.enablement.globalIdentity.changed",
"decoded" => "eventType:com.data.enablement.globalIdentity.changed,operation:UPDATE,messageType:IDENTITY,eventTime:2025-07-15T15:25:01.814539994Z,tenancyId:id1.tenancy.oc1..hlpa,serviceInstanceId:id1.instance.y4q,opcRequestId:ec-12e-41-af-724,eventTypeVersion:1.0,eventId:c31-bc-49-af-f2c},data:{\\globalIdentity\\:{\\identity\\:{\\addresses\\:[{}],\\agRisk\\:{\\value\\:0},\\agStatus\\:\\AG_ACTIVE\\,\\agSubType\\:\\CONSUMER\\,\\agOrganizations\\:[{\\displayName\\:\\allActiveUsers\\}],\\customAttributes\\:{\\isCorrelated\\:true,\\domainName\\:\\CloudService\\,\\ocid\\:\\id1.ur.o1..22a\\,\\lastSuccessfulLoginTime\\:0.0,\\compartmentOCID\\:\\id1.tenancy.o1..lpa\\,\\compartmentName\\:\\sas\\,\\cloudAccountName\\:\\sas\\},\\department\\:\\UIdept001\\,\\displayName\\:\\KGiSL type016\\,\\domainOCID\\:\\id1.domain.o1..n2a\\,\\emails\\:[{\\value\\:\\ktype016@ktype016.com\\}],\\name\\:{\\familyName\\:\\type016\\,\\givenName\\:\\f_KGiSL\\},\\phoneNumbers\\:[],\\primaryEmail\\:\\ktype016@ktype016.com\\,\\region\\:\\px:us-oi-1\\,\\status\\:\\Active\\,\\userName\\:\\ktype016\\,\\userType\\:\\eChange001_type016\\},\\id\\:\\globalId.IF.74c0-e4-4b-85-5ce7.c565d\\,\\targetIdentities\\:[{\\targetId\\:\\4f3-c5-49-b7-80d8\\,\\identity\\:{\\addresses\\:[{\\locality\\:\\city_UI001\\,\\type\\:\\work\\}],\\agOrganizations\\:[],\\customAttributes\\:{\\compartmentFQN\\:\\sehubjapaciaas\\,\\ocid\\:\\id1.user.oc1..22a\\,\\lastSuccessfulLoginTime\\:0.0,\\cloudAccountName\\:\\sas\\,\\groupAssignments\\:[],\\roleAssignments\\:[{\\createDate\\:1.750938949E9,\\grant\\:{\\value\\:\\017ac5bcb3\\},\\provisioningMechanism\\:\\ADMINISTRATOR_TO_USER\\,\\role\\:{\\displayName\\:\\appRoles\\,\\value\\:\\b356\\},\\uid\\:\\b36\\}],\\compartmentOCID\\:\\id1.tenancy.o1..hlpa\\,\\idcsId\\:\\ef429f\\,\\lastModifiedBy\\:{\\displayName\\:\\dash elastic\\,\\ref\\:\\https://is-90.ty.ecloud.com:443/admin/v1/Users/03e\\,\\resourceType\\:\\ACCOUNT\\,\\value\\:\\id1.user.oc1..ra\\},\\compartmentName\\:\\sas\\,\\domainName\\:\\yCloudService\\,\\targetAccounts\\:[\\ef9429f\\],\\previousSuccessfulLoginTime\\:0.0,\\operationType\\:\\CREATE_OR_UPDATE\\,\\tags\\:[],\\createdBy\\:{\\displayName\\:\\first agcs-user\\,\\ref\\:\\https://is-960.ecloud.com:443/admin/v1/Users/PI User\\,\\resourceType\\:\\ACCOUNT\\,\\value\\:\\id1.user.oc1..ja\\},\\provisionedDate\\:0.0},\\department\\:\\UIdept001\\,\\displayName\\:\\f_KGiSL type016\\,\\domainOCID\\:\\id1.domain.oc1..n2a\\,\\emails\\:[{\\primary\\:false,\\secondary\\:false,\\type\\:\\recovery\\,\\value\\:\\ktype016@ktype016.com\\,\\verified\\:false},{\\primary\\:true,\\secondary\\:false,\\type\\:\\work\\,\\value\\:\\ktype016@ktype016.com\\,\\verified\\:false}],\\name\\:{\\formatted\\:\\ktype016\\},\\organization\\:{},\\phoneNumbers\\:[],\\primaryEmail\\:\\ktype016@ktype016.com\\,\\region\\:\\phx:us-phoenix-1\\,\\status\\:\\Disabled\\,\\title\\:\\UI_title001\\,\\userName\\:\\ktype016\\},\\externalId\\:\\efeb1af981e84061af27d214c6a9429f\\,\\id\\:\\targetId.account.OI.4f3-c5-49-b7-80cd8.200121\\,\\domainId\\:\\resource.I.43-c5-49-b7-8d8.1d8\\}]}}}",
"tenancyId" => "id1.tenancy.oc1..hlpa",
"@timestamp" => 2025-07-18T09:30:28.331015300Z,
"eventTypeVersion" => "1.0",
"eventId" => "c31-bc-49-af-f2c}",
"@version" => "1",
"\\agRisk\\:{\\value\\" => "0}",
"messageType" => "IDENTITY",
"eventTime" => "2025-07-15T15:25:01.814539994Z",
"serviceInstanceId" => "id1.instance.y4q",
"data" => "{\\globalIdentity\\:{\\identity\\:{\\addresses\\:[{}]",
"message" => "<base64_encodedData>"
}
if the above data (decoded) is processed in a human readable format in the logstash itself, then it'll be easier to use analytics feature in kibana too.