
Security News
Open Source Maintainers Feeling the Weight of the EU’s Cyber Resilience Act
The EU Cyber Resilience Act is prompting compliance requests that open source maintainers may not be obligated or equipped to handle.
gelf-transformer
Advanced tools
This project is based on Pino Gelf
GELF transformer is a tool which receives json formatted logs from the stdin and transforms them into GELF format GELF It can also use a custom mapping schema to fill the output log with more data.
npm i -g gelf-transformer
If your application is pushing logs to the standard output then pipe them to gelf transformer.
node your-app.js | gelf-transformer log <options>
log
gelf-transformer log --help
Switch | Description | Default | Notes |
---|---|---|---|
-h | Host | 127.0.0.1 | Graylog server host |
-p | Port | 12201 | Graylog server port |
-m | Maximum Chunk Size | 1420 | |
-c | Custom schema | false | You can provide a schema which will define which information from your original logs will be visible in the graylog formatted log |
-v | Verbose mode | false | Output GELF to console |
-t | Start sending logs to Graylog | false | It will start to send logs to the defined graylog server |
Given the log message (formatted as JSON for readability):
{
"pid":16699,
"hostname":"han",
"name":"gelf-test-app",
"level":30,
"time":1481840140708,
"msg":"request completed",
"customField":"test",
"res":{"statusCode":304},
"responseTime":8,
"req":{
"method":"GET",
"headers":{
"host":"localhost:3000",
"user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14"}
},
"v":1
}
Given custom schema json file (my_custom_schema.json):
{
"title": "GELF Schema",
"type": "object",
"properties": {
"_status_code": {
"type": "integer",
"source": "res.statusCode"
},
"_user_agent": {
"type": "string",
"source": "req.headers.user-agent"
},
"customField": {
"type": "string"
}
}
}
And the usage:
node server.js | gelf-transformer log -v -c my_custom_schema.json
Gelf Transformer will show the following message to your Graylog server (formatted here as JSON for readability):
{
"version":"1.1",
"host":"han",
"short_message":"request completed",
"full_message":"request completed",
"timestamp":1481840140.708,
"level":6,
"facility":"gelf-test-app",
"_status_code":304,
"_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14",
"customField":"test"
}
Right now automatic mapping of fields is done as follows:
Output GELF | Input log | Notes |
---|---|---|
version | - | Hardcoded to 1.1 per GELF docs |
host | hostname | |
short_message | msg | This message is truncated to 64 characters |
full_message | msg | msg is not truncated |
timestamp | time | |
level | level | Default level codes from Pino are mapped to SysLog levels1 |
facility | name | deprecated |
By default Gelf Transfomer will log level from a Pino format to syslog format:
Pino Log Level Value | Pino Log Level Name | SysLog Level |
---|---|---|
10 | Trace | Debug |
20 | Debug | Debug |
30 | Info | Info |
40 | Warn | Warning |
50 | Error | Error |
60 | Fatal | Critical |
Note: A log messages without a level map to SysLog Critical
TBD
The implementation of Pino GELF is based in large part on pino-syslog and gelf-node.
FAQs
Grab your json logs and convert them to GELF format
The npm package gelf-transformer receives a total of 131 weekly downloads. As such, gelf-transformer popularity was classified as not popular.
We found that gelf-transformer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The EU Cyber Resilience Act is prompting compliance requests that open source maintainers may not be obligated or equipped to handle.
Security News
Crates.io adds Trusted Publishing support, enabling secure GitHub Actions-based crate releases without long-lived API tokens.
Research
/Security News
Undocumented protestware found in 28 npm packages disrupts UI for Russian-language users visiting Russian and Belarusian domains.