Learn more about Streama© – the foundational technology behind our stateful streaming data platform. Learn More

NXLog

Coralogix provides seamless integration with NXLog so you can send your logs from anywhere into 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.

 .com.us.in
Elasticsearch-APIhttps://coralogix-esapi.coralogix.com:9443https://esapi.coralogix.us:9443https://es-api.app.coralogix.in:9443
SSL Certificateshttps://coralogix-public.s3-eu-west-1.amazonaws.com/certificate/Coralogix-EU.crthttps://www.amazontrust.com/repository/AmazonRootCA1.pemhttps://coralogix-public.s3-eu-west-1.amazonaws.com/certificate/Coralogix-IN
.pem
coralogix.comcoralogix.usapp.coralogix.in

General

Private Key – A unique ID that represents your company. The private key can be found under ‘settings’->’ send your logs’. It is located in the upper left corner.

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:

FROM nxlog/nxlog-ce:latest
COPY nxlog.conf /etc/nxlog.conf

Before deploying your container don’t forget to mount volume with your logs.