Skip to content

Sekoia.io forwarder logs

Overview

  • Vendor: Sekoia
  • Plan: Defend Core & Defend Prime
  • Detection based on: Audit
  • Supported application or feature: Sekoia.io forwarder logs collect all statictics coming from Sekoia forwarder instances. It helps to monitor the forwarder health:

    • resource usage
    • queue size
    • number of messages received by the forwarder
    • number of messages sent by the forwarder

Configure

To monitor forwarder health, create a new intake Sekoia.io forwarer logs in your community. Once the intake is enabled, please follow this documentation in order to activate metrics on the forwarder side. You can find also details about the generated metrics

Raw Events Samples

In this section, you will find examples of raw logs as generated natively by the source. These examples are provided to help integrators understand the data format before ingestion into Sekoia.io. It is crucial for setting up the correct parsing stages and ensuring that all relevant information is captured.

{
    "name": "output-techno1",
    "origin": "core.action",
    "processed": 0,
    "failed": 0,
    "suspended": 0,
    "suspended.duration": 0,
    "resumed": 0
}
{
    "name": "ruleset-my-techno1[DA]",
    "origin": "core.queue",
    "size": 0,
    "enqueued": 0,
    "full": 0,
    "discarded.full": 0,
    "discarded.nf": 0,
    "maxqsize": 0
}
{
    "name": "input-techno1(20516)",
    "origin": "imtcp",
    "submitted": 0
}
{
    "name": "input-my-techno2(*/20517/IPv4)",
    "origin": "imudp",
    "submitted": 0,
    "disallowed": 0
}
{
    "name": "ruleset-techno1",
    "origin": "core.queue",
    "size": 0,
    "enqueued": 0,
    "full": 0,
    "discarded.full": 0,
    "discarded.nf": 0,
    "maxqsize": 0
}
{
    "name": "TCP-intake.sekoia.io-10514",
    "origin": "omfwd",
    "bytes.sent": 0
}
{
    "name": "resource-usage",
    "origin": "impstats",
    "utime": 134625,
    "stime": 20397,
    "maxrss": 13888,
    "minflt": 1510,
    "majflt": 0,
    "inblock": 0,
    "oublock": 272,
    "nvcsw": 347,
    "nivcsw": 31,
    "openfiles": 15
}

Detection section

The following section provides information for those who wish to learn more about the detection capabilities enabled by collecting this intake. It includes details about the built-in rule catalog, event categories, and ECS fields extracted from raw events. This is essential for users aiming to create custom detection rules, perform hunting activities, or pivot in the events page.

No related built-in rules was found. This message is automatically generated.

Event Categories

The following table lists the data source offered by this integration.

Data Source Description
Process monitoring Sekoia forwarder logs are collected: rsyslog resource usage, queue size, number of messages handled, ..

Transformed Events Samples after Ingestion

This section demonstrates how the raw logs will be transformed by our parsers. It shows the extracted fields that will be available for use in the built-in detection rules and hunting activities in the events page. Understanding these transformations is essential for analysts to create effective detection mechanisms with custom detection rules and to leverage the full potential of the collected data.

{
    "message": "{\"name\":\"output-techno1\",\"origin\":\"core.action\",\"processed\": 0,\"failed\": 0,\"suspended\": 0, \"suspended.duration\": 0, \"resumed\": 0}",
    "sekoiaio": {
        "forwarder": {
            "action": {
                "failed": 0,
                "processed": 0,
                "resumed": 0,
                "suspended": 0
            },
            "intake": {
                "name": "techno1"
            },
            "module": {
                "name": "output-techno1",
                "type": "core.action"
            }
        }
    },
    "user": {
        "domain": "SEKOIA.IO"
    }
}
{
    "message": "{ \"name\": \"ruleset-my-techno1[DA]\", \"origin\": \"core.queue\", \"size\": 0, \"enqueued\": 0, \"full\": 0, \"discarded.full\": 0, \"discarded.nf\": 0, \"maxqsize\": 0 }",
    "sekoiaio": {
        "forwarder": {
            "intake": {
                "name": "my-techno1"
            },
            "module": {
                "name": "ruleset-my-techno1[DA]",
                "type": "core.queue"
            },
            "queue": {
                "discarded": {
                    "full": 0,
                    "nf": 0
                },
                "enqueued": 0,
                "full": 0,
                "maxqsize": 0,
                "size": 0
            }
        }
    },
    "user": {
        "domain": "SEKOIA.IO"
    }
}
{
    "message": "{ \"name\": \"input-techno1(20516)\", \"origin\": \"imtcp\", \"submitted\": 0 }",
    "sekoiaio": {
        "forwarder": {
            "input": {
                "port": "20516",
                "submitted": 0
            },
            "intake": {
                "name": "techno1"
            },
            "module": {
                "name": "input-techno1(20516)",
                "type": "imtcp"
            }
        }
    },
    "user": {
        "domain": "SEKOIA.IO"
    }
}
{
    "message": "{ \"name\": \"input-my-techno2(*/20517/IPv4)\", \"origin\": \"imudp\", \"submitted\": 0, \"disallowed\": 0 }",
    "sekoiaio": {
        "forwarder": {
            "input": {
                "port": "*/20517/IPv4",
                "submitted": 0
            },
            "intake": {
                "name": "my-techno2"
            },
            "module": {
                "name": "input-my-techno2(*/20517/IPv4)",
                "type": "imudp"
            }
        }
    },
    "user": {
        "domain": "SEKOIA.IO"
    }
}
{
    "message": "{ \"name\": \"ruleset-techno1\", \"origin\": \"core.queue\", \"size\": 0, \"enqueued\": 0, \"full\": 0, \"discarded.full\": 0, \"discarded.nf\": 0, \"maxqsize\": 0 }",
    "sekoiaio": {
        "forwarder": {
            "intake": {
                "name": "techno1"
            },
            "module": {
                "name": "ruleset-techno1",
                "type": "core.queue"
            },
            "queue": {
                "discarded": {
                    "full": 0,
                    "nf": 0
                },
                "enqueued": 0,
                "full": 0,
                "maxqsize": 0,
                "size": 0
            }
        }
    },
    "user": {
        "domain": "SEKOIA.IO"
    }
}
{
    "message": "{ \"name\": \"TCP-intake.sekoia.io-10514\", \"origin\": \"omfwd\", \"bytes.sent\": 0 }",
    "sekoiaio": {
        "forwarder": {
            "intake": {
                "name": "intake.sekoia.io-10514"
            },
            "module": {
                "name": "TCP-intake.sekoia.io-10514",
                "type": "omfwd"
            },
            "output": {
                "bytes": {
                    "sent": 0
                }
            }
        }
    },
    "user": {
        "domain": "SEKOIA.IO"
    }
}
{
    "message": "{ \"name\": \"resource-usage\", \"origin\": \"impstats\", \"utime\": 134625, \"stime\": 20397, \"maxrss\": 13888, \"minflt\": 1510, \"majflt\": 0, \"inblock\": 0, \"oublock\": 272, \"nvcsw\": 347, \"nivcsw\": 31, \"openfiles\": 15 }",
    "sekoiaio": {
        "forwarder": {
            "intake": {
                "name": "usage"
            },
            "module": {
                "name": "resource-usage",
                "type": "impstats"
            },
            "stats": {
                "openfiles": 15,
                "stime": 20397,
                "utime": 134625
            }
        }
    },
    "user": {
        "domain": "SEKOIA.IO"
    }
}

Extracted Fields

The following table lists the fields that are extracted, normalized under the ECS format, analyzed and indexed by the parser. It should be noted that infered fields are not listed.

Name Type Description
sekoiaio.forwarder.action.failed number Number of messages failed in the action
sekoiaio.forwarder.action.processed number Number of messages processed by the action
sekoiaio.forwarder.action.resumed number Number of messages resumed by the action
sekoiaio.forwarder.action.suspended number Number of messages suspended by the action
sekoiaio.forwarder.input.port keyword Input port use by the forwarder
sekoiaio.forwarder.input.submitted number Number of messages handled by the forwarder input
sekoiaio.forwarder.intake.name keyword Intake name defined in the forwarder
sekoiaio.forwarder.module.name keyword This identifies the module name for which the statistics are being reported
sekoiaio.forwarder.module.type keyword This identifies the module type for which the statistics are being reported
sekoiaio.forwarder.output.bytes.sent number Number of bytes sent to Sekoia
sekoiaio.forwarder.queue.discarded.full number Number of messages discarded because the queue was full
sekoiaio.forwarder.queue.discarded.nf number Number of messages discarded because the queue was nearly full
sekoiaio.forwarder.queue.enqueued number Total number of messages enqueued into this queue since startup
sekoiaio.forwarder.queue.full number Number of times the queue was actually full and could not accept additional messages
sekoiaio.forwarder.queue.maxqsize number The maximum amount of messages that have passed through the queue since rsyslog was started
sekoiaio.forwarder.queue.size number Number of messages in the queue
sekoiaio.forwarder.stats.openfiles number Number of file handles used by rsyslog
sekoiaio.forwarder.stats.stime number The amount of system CPU time consumed by rsyslog, in milliseconds.
sekoiaio.forwarder.stats.utime number The amount of user CPU time consumed by rsyslog, in milliseconds.
user.domain keyword Name of the directory the user is a member of.

For more information on the Intake Format, please find the code of the Parser, Smart Descriptions, and Supported Events here.