• Products
    LOG COLLECTOR
    NXLog Enterprise Edition
    Full feature multi-platform log collection
    NXLog Community Edition
    Open-source free log collector
    ADD-ONS FOR NXLOG ENTERPRISE EDITION
    NXLog Add-Ons
    Integration with various software
    AGENT MANAGER FOR NXLOG ENTERPRISE EDITION
    NXLog Manager
    Manage and monitor NXLog instances
    NXLog Minder
    Hyper-scalable, API-first agent management
    DATABASE FOR NXLOG ENTERPRISE EDITION
    Raijin Database Engine
    The schemaless SQL database for storing events
    more from nxlog
    Professional Services
    Compare NXLog EE and CE
  • Downloads
    NXLog Enterprise Edition
    Full feature multi-platform log collection
    NXLog Manager
    Manage and monitor NXLog instances
    NXLog Community Edition
    Open-source free log collector
  • Solutions
    Integrations
    With SIEM, Devices, SaaS...
    Specfic OS support
    AIX, Linux, FreeBSD
    SCADA/ICS
    Energy, Oil & Gas, Transport...
    Windows Event log
    Collect locally or remotely, ..
    DNS Logging
    Enterprise-grade DNS log...
    Log Collection Modes
    Agent-based, Agentless or Cloud
    Agent Management
    Agents management and monitoring
    FIM
    File Integrity Monitoring
    macOS Logging
    ULS events, Apple System Logs ...

    By Industry

    Financial Services
    Government & Education
    Entertainment & Gambling
    Telecommunications
    Medical & Healthcare
    Military & Defense
    Law Firms & Legal Counsel
    Industrial & Manufacturing
  • Partners
    Find a Reseller
    Look for our resellers worldwide
    Technology Ecosystem
    See all our partners and integrations
    Partner Program
    Join our community of partners
    Partner Portal →
  • Resources
    Documentation
    Products guides and integrations
    Blog
    Tutorials, updates and releases
    White papers
    Datasheets, infographics and more
    Videos
    Trainings and tutorial on specific topics
    Webinars
    Community events and webinars
    Community Forum →
  • Support
  • Why Nxlog
    About Us
    Our journey, team and mission
    Customers
    Testimonials and case studies
    Careers
    We are hiring!
    Contact Us →
Log In Sign Up
Request Trial
LOG COLLECTOR
NXLog Enterprise Edition
Full feature multi-platform log collection
NXLog Community Edition
Open-source free log collector
ADD-ONS FOR NXLOG ENTERPRISE EDITION
NXLog Add-Ons
Integration with various software
AGENT MANAGER FOR NXLOG ENTERPRISE EDITION
NXLog Manager
Manage and monitor NXLog instances
NXLog Minder
Hyper-scalable, API-first agent management
DATABASE FOR NXLOG ENTERPRISE EDITION
Raijin Database Engine
The schemaless SQL database for storing events
more from nxlog
Professional Services
Compare NXLog EE and CE
NXLog Enterprise Edition
Full feature multi-platform log collection
NXLog Manager
Manage and monitor NXLog instances
NXLog Community Edition
Open-source free log collector
Integrations
With SIEM, Devices, SaaS...
Specfic OS support
AIX, Linux, FreeBSD
SCADA/ICS
Energy, Oil & Gas, Transport...
Windows Event log
Collect locally or remotely, ..
DNS Logging
Enterprise-grade DNS log...
Log Collection Modes
Agent-based, Agentless or Cloud
Agent Management
Agents management and monitoring
FIM
File Integrity Monitoring
macOS Logging
ULS events, Apple System Logs ...

By Industry

Financial Services
Government & Education
Entertainment & Gambling
Telecommunications
Medical & Healthcare
Military & Defense
Law Firms & Legal Counsel
Industrial & Manufacturing
Find a Reseller
Look for our resellers worldwide
Technology Ecosystem
See all our partners and integrations
Partner Program
Join our community of partners
Partner Portal →
Documentation
Products guides and integrations
Blog
Tutorials, updates and releases
White papers
Datasheets, infographics and more
Videos
Trainings and tutorial on specific topics
Webinars
Community events and webinars
Community Forum →
Support
About Us
Our journey, team and mission
Customers
Testimonials and case studies
Careers
We are hiring!
Contact Us →
  • Loading...
Request Trial
January 31, 2023 strategyagent

Our customers asked - Input stream EPS tracking with NXLog

By Tamás Burtics

Share
ALL SIEM STRATEGY SECURITY ANNOUNCEMENT DEPLOYMENT COMPLIANCE COMPARISON RSS

This post is the first in a series of answers to questions that our customers asked.

Clarifying EPS

EPS stands for Events Per Second and is considered a standard for measuring the speed of event processing. More precisely, it tells how many events can flow through a particular system in a second. In our case, the number relates to how many events NXLog receives, handles, and outputs in one second.

EPS is broken into three phases: input stream EPS, processing EPS, and output stream EPS. Combining these gives you a main EPS number which is likely to be identical to the bottleneck of the three. In this post, I will only elaborate on the first one. It is complex enough in itself.

At this point, this post will not be able to provide your exact numbers, as it depends on so many factors. Nevertheless, I will get you a step closer and show you an NXLog configuration that can measure your input stream EPS.

Why do you need to track EPS?

Measuring the input stream EPS rate can be significant for several reasons.

Cost monitoring

Some SIEM solutions base their pricing on the number of events ingested. If you aggregate all your logs to a single or a few NXLog server(s) before forwarding them to your SIEM—​which you should do—​you can keep an eye on your EPS rate over a more extended period. It will help you monitor whether you exceed your EPS quota.

Testing

Analyze your system’s capabilities before upgrading, reorganizing, or scaling. It may also affect your budgeting.

Statistical analysis

Monitoring change can provide you with valuable information. EPS fluctuation compared to the previous period or baseline could indicate suspicious activities. For example, the explosion of a request rate in the case of a web server can be a sign of a DDoS attack. EPS information can also be beneficial from the IT operations side, but it can equally be valuable on the IT Security flank. They both see things from different perspectives and, in both cases, can lead to useful conclusions.

Diagnostics

To see whether logs sent to the receiving node are arriving. Other methods are available for this; nevertheless, it is a possible use-case.

EPS tracking is not an exact science

When talking about EPS, most people will ask questions like: "What is the highest EPS rate NXLog can achieve?" Maximum EPS count is significant in some cases, but there is no silver bullet in measuring this absolute number. The best achievable EPS count is also outside this post’s scope.

I often use an analogy comparing EPS to your network bandwidth and how much data can flow through that. Imagine, just because you have a gigabit network adapter in your computer, it cannot necessarily receive data at that rate. It is highly likely in a corporate network that many applications are running simultaneously on a computer/server also running NXLog. A particular system’s capabilities are unlikely to be only dedicated to NXLog. In addition to considering your network and system load, there is one more critical factor—​the size of your logs, which heavily affects your EPS rate.

Monitoring your EPS rate gives you a good insight into what is happening in your network.

How to track your input EPS stream with NXLog?

I set up two Windows 10 machines in my lab to show how it works. Node1 generates log messages with NXLog’s im_testgen module and sends them to Node2 via the om_tcp module. Node2 receives the data with the im_tcp module and includes the EPS tracking configuration. It then writes the data to the local machine utilizing the om_file module. It is a straightforward configuration. To make it easy to replicate, I will include the complete configuration files from both devices.

Example 1. Sending logs over TCP (Node1 → Node2) - Node1 configuration

The input module block of this configuration generates log data using the im_testgen module at a random time, with a maximum of 2000 microseconds between two messages. The output module is configured to send the generated log data to the IP address of Node2.

nxlog.conf
<Input testgen>
    Module    im_testgen
    Exec      sleep(get_rand(2000));
</Input>

<Output tcpout>
    Module    om_tcp
    Host      192.168.88.148:1514
</Output>
Example 2. Sending logs over TCP (Node1 → Node2) - Node2 configuration

This configuration first defines the path for the LOGDIR directory to save our files. For the sake of simplicity, it is the same directory we will use to keep the log file in the output module. The first module block configures the xm_fileop module, as it is required to do file operations in the rest of the configuration.

The input module block receives the logs from Node1 via the im_tcp module. The Exec block within that sets the filename and a file path for the input stream EPS data. It also creates the file if it does not exist. Then the Schedule directive is where the data creation for the input stream EPS data is triggered. In this configuration, it does this every ten minutes.

Finally, the output module block writes down the log data using the om_file module. Once applied, it will write the rate of events every ten minutes into a file called eps-$SourceModuleType-$SourceModuleName.csv.

nxlog.conf
define LOGDIR C:\test

<Extension fileop>
    Module        xm_fileop
</Extension>

<Input tcpin>
    Module        im_tcp
    ListenAddr    0.0.0.0:1514
    <Exec>
        if defined get_stat('eps') { add_stat('eps', 1); }
        if not defined get_var('fn') { create_var('fn'); set_var('fn', '%LOGDIR%\eps-' + $SourceModuleType + '-' + $SourceModuleName + '.csv'); }
        if not ( file_exists(get_var('fn')) ) or ( file_size (get_var('fn')) == 0 ) { file_write(get_var('fn'), "DateTime,EPS\n"); }
    </Exec>

    <Schedule>
        Every     10 min
    <Exec>
        if get_stat('eps') { file_write(get_var('fn'), now()+','+get_stat('eps')+"\n"); }
        create_stat('eps', 'RATE', 1);
    </Exec>
    </Schedule>
</Input>

<Output fileout>
    Module        om_file
    File          'C:\test\testlogdata.txt'
</Output>

Implementing on Linux

The configuration for Node2 above is for Windows; however, you can easily modify it for use on a Linux machine.

In the second line of the first Exec block, the log directory is defined as '%LOGDIR%\eps-' on Windows, which you need to change to '%LOGDIR%/eps-' on Linux, changing the backslash to forward slash. Then change the LOGDIR variable at the top to a Linux path. Finally, change the Output block file path to a Linux file path.

Looking at the gathered data and its visualization

After running NXLog for a few hours on both computers, enough data is captured to populate a chart. I tried to develop a data set that resembles an "end of the day" scenario in a corporate environment. Logging during two hours when people leave work, thus generating fewer logs as time advances. The file in my setup is eps-im_tcp-tcp.csv, and contains the following structure.

EPS data
DateTime,EPS
2023-01-19 15:51:05,22543
2023-01-19 16:01:05,23917
2023-01-19 16:11:05,19941
2023-01-19 16:21:05,16696
2023-01-19 16:31:05,17336
2023-01-19 16:41:05,15475
2023-01-19 16:51:05,12718
2023-01-19 17:01:05,8053
2023-01-19 17:11:05,7829
2023-01-19 17:21:05,7737
2023-01-19 17:31:05,6640
2023-01-19 17:41:05,5439
2023-01-19 17:51:05,4833

You can use the above data to generate the graph below. Please note that this is just a tiny sample, and the sole goal is to be a thought starter so you can build on it.

Input stream EPS tracking with 10 minutes intervals
Figure 1. Visualization of input EPS stream logs gathered over two hours

Conclusion

In this short post, I looked at how you could track your input stream EPS with NXLog and discussed its usefulness. I came up with a simple solution that works without any third-party software, so the only software you need to use is NXLog. Finally, I showed you a configuration that you can easily copy and paste into your configuration and the visualization of the test data set. I hope this post serves you as a thought starter on your journey of EPS tracking.

GET STARTED TODAY:
CONTACT US Our experts are happy to help REQUEST A FREE TRIAL Give NXLog Enterprise Edition a try GET PRICING Request a quote

NXLog Ltd. develops multi-platform log collection tools that support many different log sources, formats, transports, and integrations. The tools help administrators collect, parse, and forward logs so they can more easily respond to security issues, investigate operational problems, and analyze event data. NXLog distributes the free and open source NXLog Community Edition and offers additional features and support with the NXLog Enterprise Edition.

This document is provided for informational purposes only and is subject to change without notice. Trademarks are the properties of their respective owners.

  • EPS
  • EPS tracking
  • NXLog agent
Share

Facebook Twitter LinkedIn Reddit Mail

Stay connected:

Sign up

Keep up to date with our weekly digest of articles.

By clicking singing up, I agree to the use of my personal data in accordance with NXLog Privacy Policy.

Featured posts

Raijin announces release of version 1.0
March 9, 2023
Avoid vendor lock-in and declare SIEM independence
February 13, 2023
Announcing NXLog Enterprise Edition 5.7
January 20, 2023
NXLog - 2022 in review
December 22, 2022
Need to replace syslog-ng? Changing to NXLog is easier than you think
November 23, 2022
The EU's response to cyberwarfare
November 22, 2022
Looking beyond Cybersecurity Awareness Month
November 8, 2022
GDPR compliance and log data
September 23, 2022
NXLog in an industrial control security context
August 10, 2022
Raijin vs Elasticsearch
August 9, 2022
NXLog provides native support for Google Chronicle
May 11, 2022
Aggregating macOS logs for SIEM systems
February 17, 2022
How a centralized log collection tool can help your SIEM solutions
April 1, 2020

Categories

  • SIEM
  • STRATEGY
  • SECURITY
  • ANNOUNCEMENT
  • DEPLOYMENT
  • COMPLIANCE
  • COMPARISON

Subscribe to our newsletter to get the latest updates, news, and products releases.

© Copyright 2023 NXLog Ltd.

PRIVACY POLICY TERMS OF USE

  • PRODUCTS

  • NXLOG ENTERPRISE EDITION
  • NXLOG COMMUNITY EDITION
  • NXLOG ADD-ONS
  • NXLOG MANAGER
  • NXLOG MINDER
  • RAIJIN DATABASE
  • MORE NXLOG

  • COMPARE SOLUTIONS
  • INDUSTRIES
  • INTERGRATIONS
  • FIND A RESELLER
  • PARTNER PROGRAM
  • RESOURCES

  • DOCUMENTATION
  • WHITE PAPERS
  • WEBINARS
  • TUTORIALS
  • BLOG
  • COMMUNITY FORUM
  • ABOUT US

  • WHY NXLOG
  • CUSTOMERS
  • CAREERS
  • CONTACT US
  • DOWNLOADS

  • NXLOG ENTERPRISE EDITION
  • NXLOG COMMUNITY EDITION
  • NXLOG MINDER
  • NXLOG MANAGER
  • NXLOG ADD-ONS
  • RAIJIN DATABASE