NXLog
The following tutorial demonstrates how to configure NXLog
to seamlessly send your logs to Coralogix.
Prerequisites
This document includes cluster dependent URL's. Each URL has a variable part (in Italic). Please match this part with a row entry within the following table. Copy the table row entry located under the column that matches the top level domain of your Coralogix account (.com, .in etc.). Replace the variable part of the URL with this entry.
[table id=51 /]
Have NXLog
installed, for more information on how to install: https://nxlog.co/documentation/nxlog-user-guide/deployment.html
General
Private Key – Your Send-Your-Data API key is a unique ID that represents your company.
Company Id – A unique number which represents your company. You can get your company id from the settings tab in the Coralogix dashboard.
Application Name – The name of your main application, for example, a company named “SuperData” would probably insert the “SuperData” string parameter or if they want to debug their test environment they might insert the “SuperData– Test”.
SubSystem Name – Your application probably has multiple subsystems, for example, Backend servers, Middleware, Frontend servers, etc. in order to help you examine the data you need, inserting the subsystem parameter is vital.
Configuration
On the host machine
Here is a basic example of nxlog.conf:
<Extension json>
Module xm_json
</Extension>
<Input messages>
Module im_file
File "/var/log/messages"
</Input>
<Output coralogix>
Module om_udp
Host syslogserver.
Cluster URL
Port 5140
<Exec>
delete($EventReceivedTime);
delete($SourceModuleName);
delete($SourceModuleType);
$message = $raw_event;
$pri_text = 'daemon.info';
$hostname = hostname();
$program_name = 'nxlog';
$tag = 'syslog';
$raw_event = '{"fields":{"private_key":"YOUR_PRIVATE_KEY","company_id":"YOUR_COMPANY_ID","app_name":"APP_NAME","subsystem_name":"SUB_NAME"},"message":' + to_json() + '}';
</Exec>
</Output>
<Route messages_to_coralogix>
Path messages => coralogix
</Route>
Docker
Build a Docker image with your nxlog.conf:
Before deploying your container don't forget to mount volume with your logs.