When you send logs and metrics to Humio for ingestion it needs to be parsed before it is stored in a repository. This is the case for all input channels except Humio’s structured ingest endpoint which stores data as-is.
A parser takes text as input, it can be structured text (like JSON) or unstructured text (like syslog or application stdout). It then extracts fields which are stored along with the original text.
A client sending data to Humio must specify which repository to store the data
in and which parser to use for ingesting the data. You do this either by setting
#type field to the name of the parser to use or by assigning a
specific parser to the Ingest API Token
used to authenticate the client. Assigning a parser to the API Token is the recommended
approach since it allows you to change parser in Humio without changing the client.
Humio supports common log formats via the built-in parsers.
They include formats such as
accesslog and are suitable when starting out
with Humio. Once you get better acquainted with your data and how parsers work you will likely want to
create your own custom parsers.
Writing a custom parser allows you to take full control of which fields are extracted during ingest and which datasources events are stored in.
Parsers are written in the Humio query language (the same you use for searching). Here is a guide for creating a custom parser.