Splunk Enterprise

How to modify logs via Splunk Otel Collector?

ppal
Observer

Hi Everyone,

I am trying to replicate log modification that was possible with fluentd when using splunk-connect-for-kubernetes.

 

 

 

splunk_kubernetes_logging: 
   cleanAuthtoken:
        tag: 'tail.containers.**'
        type: 'record_modifier'
        body: |
            # replace key log
            <replace>
              key log
              expression /"traffic_http_auth".*?:.*?".+?"/
              # replace string
              replace "\"traffic_http_auth\": \"auth cleared\""
            </replace>

 

 

 


Now since the above charts support ended we have switched to splunk-otel-collector.
Along with this we also switched the logsengine: otel  and now having a hard time replicating this modification.

Per the documentation I read this should come via processors (which is the agent), please correct me if I am wrong here. I have tried two processors but both doesn't work.  What I am missing here?

 

 

logsengine: otel
agent:
 enabled: true
 config:
   processors:
      attributes/log_body_regexp:
        actions:
          - key: traffic_http_auth
            action: update
            value: "obfuscated"
      transform:  
        log_statements:
          - context: log
            statements:
              - set(traffic_http_auth, "REDACTED")

 

 

 


This is new to me, can anyone point me where this logs modifiers can be applied. 

Thanks,
Ppal

 

 

 

Labels (1)
Tags (1)
0 Karma

PaulPanther
Builder

@ppal Have you added these both processors under service --> pipelines --> <your log-pipeline> --> processors as well? 

0 Karma

ppal
Observer

Yes, it does. 

    service:
      pipelines:
        logs:
          exporters:
          - otlp
          processors:
          - transform
          - attributes/upsert

 

So far I have tried these options but none seem to work. 

processors:
  attributes/upsert:
    actions:
      - key: upstream_namespace
        action: upsert
        value: "REDACTED_NS"
  transform:  
    log_statements:
      - context: log
        statements:
          - replace_all_patterns(attributes,"value","upstream_namespace", "REDACTED_NS")
          - replace_all_patterns(attributes,"key","upstream_namespace", "REDACTED_NS")
          - replace_match(attributes["upstream_namespace"], "*" , "REDACTED_NS")
          - replace_match(attributes["upstream_namespace"], "system-monitoring" , "REDACTED_NS")
          - delete_key(attributes,"upstream_namespace")
          - delete_key(resource.attributes,"upstream_namespace")
          - replace_all_patterns(attributes["upstream_namespace"],"value","upstream_namespace", "REDACTED_NS")
          - replace_all_patterns(attributes["upstream_namespace"],"value","system-monitoring", "REDACTED_NS")


The attribute/upsert and set() however appends to existing value. 

upstream_namespace: REDACTED_NS
                    system-monitoring


Not sure what is missing here, any suggestions to resolve this?

Thanks

0 Karma

PaulPanther
Builder

Could you please activate only the attributes in your pipeline "logs", get rid of the transforms block and then verify the functionality?

Next time it would be great if we can focus on one configuration that does not work.

0 Karma

ppal
Observer

yes, each method was tested separately to it doesn't overlap.

I just combined it here to it's easier to see what been tried so far.

Here is the sample log (reduced to a few kv) from k8s nodes that is pulled by collector(agent). 

2024-03-11T21:04:41.411025006Z stdout F {"time": "2024-03-11T21:04:41+00:00", "upstream_namespace":"system-monitoring", "remote_user": "sample-user"}

 
If for example I just use `attributes/upsert` it appends to existing but not overwrite it.

0 Karma

PaulPanther
Builder

If you wanna manipulate the raw log event I'm pretty sure you have to do it with props & transforms or a data stream solution.

As far as I know no otel processor supports the mentioned fluentd functionality. 

0 Karma

ppal
Observer

Interesting, thanks for taking time and replying to my queries. @PaulPanther 

0 Karma
Get Updates on the Splunk Community!

New Case Study Shows the Value of Partnering with Splunk Academic Alliance

The University of Nevada, Las Vegas (UNLV) is another premier research institution helping to shape the next ...

How to Monitor Google Kubernetes Engine (GKE)

We’ve looked at how to integrate Kubernetes environments with Splunk Observability Cloud, but what about ...

Index This | How can you make 45 using only 4?

October 2024 Edition Hayyy Splunk Education Enthusiasts and the Eternally Curious!  We’re back with this ...