Ingesting logs from legacy Dell Storages

Hi All,

We are already ingesting logs from Dell EMC PowerStore (with a custom parser), but there is also a requirement to ingest logs from Dell Compellent/SC Series and Dell EqualLogic - the predecessors of PowerStore, as far as I know.

Does anyone have experience with these log sources? Are the logs similar enough to use the same data type and parser or do we need separate ones?

Thanks and kind regards
Lukas

0 2 174
2 REPLIES 2

Can you share the parser that you built for Powrestore? I also have to develop one for this.

Hi deeshu,

This should give you a start. For the details I'm still looking for a good method how to handle the different event types, maybe you can figure something out.

filter {

    mutate {

        replace => {

            "event.idm.read_only_udm.metadata.vendor_name" => "Dell"

            "event.idm.read_only_udm.metadata.product_name" => "EMC PowerStore"

            "event.idm.read_only_udm.metadata.event_type" => "GENERIC_EVENT"

        }

    }

    #statedump {label="initial"}

    # Grok out syslog header and place message into :kvdata

    grok {

        match => {

            "message" => [

                "(<\\d+>)?%{SYSLOGTIMESTAMP:syslogTime}\\s+%{IPORHOST:syslogHost}\\s+\\[(?P<syslogPid>\\d+)\\]:\\s+(?P<timestamp>\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3})\\d+\\s+%{HOST:applianceNode}\\s+%{WORD:clusterId}\\s+(?P<msgPid>\\d+)@(?P<serviceTag>\\w+)\\s+(?P<logType>\\w+)\\s+\\[(?P<eventid>\\S+)\\s+(?P<kvdata>[^\\]]+)\\]\\s+%{GREEDYDATA:details}"

            ]

        }

        on_error => "grok_extraction_failure"

    }

    if [grok_extraction_failure] {

        drop {}

    }

    #statedump{label => "postgrok"}

    # Parse Date

    date {

        match => ["timestamp", "yyyy-MM-ddTHH:mm:ss.SSS"]

    }

    # Default values for KV

    mutate {

        replace => {

            "client_ip" => ""

            "status" => ""

        }

    }

    # Split the key/value pairs in kvdata

    kv {

        source => "kvdata"

        value_split => "="

        field_split => " "

        trim_value => "\""

    }

    #statedump{label => "postkv"}

    # Populate some UDM

    mutate {

        rename => {

            #"eventid" => "event.idm.read_only_udm.metadata.product_event_type"

            "id" => "event.idm.read_only_udm.metadata.product_log_id"

            "appliance" => "event.idm.read_only_udm.principal.hostname"

            "applianceNode" => "applianceNodeLabel.value"

            "clusterId" => "clusterIdLabel.value"

            "serviceTag" => "serviceTagLabel.value"

        }

        replace => {

            "applianceNodeLabel.key" => "Appliance Node"

            "clusterIdLabel.key" => "Cluster ID"

            "serviceTagLabel.key" => "Service Tag"

            "event.idm.read_only_udm.metadata.description" => "%{details}"

        }

        merge => {

            "event.idm.read_only_udm.principal.labels" => "applianceNodeLabel"

        }

    }

    mutate {

        merge => {

            "event.idm.read_only_udm.principal.labels" => "clusterIdLabel"

        }

    }

    mutate {

        merge => {

            "event.idm.read_only_udm.principal.labels" => "serviceTagLabel"

        }

        remove_field => ["applianceNodeLabel", "clusterIdLabel", "serviceTagLabel"]

    }

    if [status] == "success" {

        mutate {

            replace => {

                "secAction" => "ALLOW"

            }

            merge => {

                "security_result.action" => "secAction"

            }

        }

        mutate {

            merge => {

                "event.idm.read_only_udm.security_result" => "security_result"

            }

        remove_field => ["secAction", "security_result"]

        }

    }

    if [client_ip] != "" && [client_ip] != "None" && [client_ip] != "not applicable" {

        mutate {

            merge => {

                "event.idm.read_only_udm.src.ip" => "client_ip"

            }

        }

    }

    #statedump{label => "mapping1"}
    # Trigger the UDM merge

    mutate {

        merge => {

            "@output" => "event"

        }

    }

}

Do you have experience with the other Dell storages?