<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sergey Filipovich</title>
    <description>The latest articles on DEV Community by Sergey Filipovich (@sergey_filipovich_5eb9e4c).</description>
    <link>https://dev.to/sergey_filipovich_5eb9e4c</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3651575%2F156105b9-c939-4bbb-a38f-88bd4385afa4.jpg</url>
      <title>DEV Community: Sergey Filipovich</title>
      <link>https://dev.to/sergey_filipovich_5eb9e4c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sergey_filipovich_5eb9e4c"/>
    <language>en</language>
    <item>
      <title>Running Suricata analytics on low-power hardware</title>
      <dc:creator>Sergey Filipovich</dc:creator>
      <pubDate>Mon, 22 Dec 2025 11:39:02 +0000</pubDate>
      <link>https://dev.to/sergey_filipovich_5eb9e4c/running-suricata-analytics-on-low-power-hardware-59gj</link>
      <guid>https://dev.to/sergey_filipovich_5eb9e4c/running-suricata-analytics-on-low-power-hardware-59gj</guid>
      <description>&lt;p&gt;Suricata is often treated as “just an IDS engine that writes logs.”&lt;br&gt;
In reality, the real complexity begins when you try to analyze traffic, not merely store alerts.&lt;/p&gt;

&lt;p&gt;This becomes critical when your environment is not a powerful server, but something closer to reality:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Celeron or low-end Xeon&lt;/li&gt;
&lt;li&gt;4–8 GB RAM&lt;/li&gt;
&lt;li&gt;a single multi-purpose server&lt;/li&gt;
&lt;li&gt;or an edge device&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This post is about what actually works for Suricata analytics on low-power hardware — and what does not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why popular stacks fail on low-end systems
&lt;/h2&gt;

&lt;h2&gt;
  
  
  ELK is not lightweight
&lt;/h2&gt;

&lt;p&gt;Shipping Suricata events into Elasticsearch is a common recommendation.&lt;br&gt;
On low-power hardware it quickly breaks down:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Elasticsearch consumes memory even when idle&lt;/li&gt;
&lt;li&gt;JVM overhead becomes a bottleneck&lt;/li&gt;
&lt;li&gt;disk I/O limits appear early&lt;/li&gt;
&lt;li&gt;latency grows faster than traffic volume&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ELK works well on servers.&lt;br&gt;
On weak hardware it often turns analytics into a resource exhaustion problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  “Out-of-the-box” SIEMs are not designed for edge
&lt;/h2&gt;

&lt;p&gt;Most SIEM platforms assume:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;centralized backends&lt;/li&gt;
&lt;li&gt;stable server-class hardware&lt;/li&gt;
&lt;li&gt;correlation-heavy workflows
For edge and SMB deployments this is often excessive and inefficient.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Suricata analytics really needs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;If we ignore marketing, the requirements are simple:&lt;/li&gt;
&lt;li&gt;predictable CPU usage&lt;/li&gt;
&lt;li&gt;controlled memory consumption&lt;/li&gt;
&lt;li&gt;stable latency&lt;/li&gt;
&lt;li&gt;minimal dependencies&lt;/li&gt;
&lt;li&gt;focus on flows and behavior, not alerts alone
Analytics should support operations, not become a separate system that needs to be managed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Architectural choices that work in practice
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Separate ingestion from analysis
&lt;/h2&gt;

&lt;p&gt;Suricata can generate events very fast.&lt;br&gt;
Problems start when ingestion and analysis are tightly coupled.&lt;/p&gt;

&lt;p&gt;A practical approach:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ingestion and normalization as a dedicated layer&lt;/li&gt;
&lt;li&gt;analytics running asynchronously&lt;/li&gt;
&lt;li&gt;UI as a separate consumer
This keeps the system stable even under traffic spikes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In Suri Oculus (&lt;a href="https://suri-oculus.com" rel="noopener noreferrer"&gt;https://suri-oculus.com&lt;/a&gt;), ingestion is handled by a dedicated C++ service, allowing analytics and visualization to scale independently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Redis instead of heavy storage
&lt;/h2&gt;

&lt;p&gt;Redis is often dismissed as “just a cache.”&lt;br&gt;
On low-power systems it works very well as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;an in-memory event buffer&lt;/li&gt;
&lt;li&gt;a fast handoff between ingestion and analytics&lt;/li&gt;
&lt;li&gt;a responsive data source for UI
Redis is not long-term storage — and it should not be.
It is a stability and performance layer.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  C++ where predictability matters
&lt;/h2&gt;

&lt;p&gt;Python is flexible, but on weak CPUs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;garbage collection&lt;/li&gt;
&lt;li&gt;interpreter overhead&lt;/li&gt;
&lt;li&gt;unpredictable pauses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;become visible very quickly.&lt;/p&gt;

&lt;p&gt;For ingestion, parsing, and feature extraction, C++ provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;predictable latency&lt;/li&gt;
&lt;li&gt;tight memory control&lt;/li&gt;
&lt;li&gt;stable behavior under load
This is a core design choice in Suri Oculus, which targets stable operation even on low-end hardware.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Minimal frontend instead of heavy SPAs
&lt;/h2&gt;

&lt;p&gt;Modern SPAs add complexity and resource usage that is rarely justified for traffic analytics.&lt;/p&gt;

&lt;p&gt;A minimal frontend built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;plain HTML&lt;/li&gt;
&lt;li&gt;lightweight JavaScript&lt;/li&gt;
&lt;li&gt;simple tables and charts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;reduces load on both the server and the client — and makes troubleshooting easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI on low-power hardware: what is realistic
&lt;/h2&gt;

&lt;p&gt;Deep learning models are not a good fit for edge systems.&lt;br&gt;
That does not mean AI is useless.&lt;/p&gt;

&lt;p&gt;What does work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unsupervised anomaly detection&lt;/li&gt;
&lt;li&gt;compact models like Isolation Forest&lt;/li&gt;
&lt;li&gt;carefully selected features&lt;/li&gt;
&lt;li&gt;inference without on-device training
Feature engineering matters more than model complexity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In Suri Oculus, AI analysis is designed as an optional, isolated component, so it does not destabilize the core system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;p&gt;Suricata analytics on low-power hardware is absolutely possible, but only if:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ingestion is decoupled from analysis&lt;/li&gt;
&lt;li&gt;heavy universal stacks are avoided&lt;/li&gt;
&lt;li&gt;performance-critical paths are predictable&lt;/li&gt;
&lt;li&gt;AI is used selectively, not blindly
When done right, analytics becomes a useful operational tool, not an infrastructure burden.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Looking forward
&lt;/h2&gt;

&lt;p&gt;Edge and SMB environments are growing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;branch offices&lt;/li&gt;
&lt;li&gt;distributed networks&lt;/li&gt;
&lt;li&gt;small data centers&lt;/li&gt;
&lt;li&gt;industrial and IoT segments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These environments do not need another SIEM.&lt;br&gt;
They need lightweight, controllable analytics that respect hardware limits.&lt;/p&gt;

&lt;p&gt;That is the design space where projects like Suri Oculus&lt;br&gt;
👉 &lt;a href="https://suri-oculus.com" rel="noopener noreferrer"&gt;https://suri-oculus.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;are focused today.&lt;/p&gt;

</description>
      <category>suricata</category>
      <category>networking</category>
    </item>
    <item>
      <title>Hello dev.to! I’m Sergey — developer of Suri Oculus</title>
      <dc:creator>Sergey Filipovich</dc:creator>
      <pubDate>Mon, 08 Dec 2025 09:13:06 +0000</pubDate>
      <link>https://dev.to/sergey_filipovich_5eb9e4c/hello-devto-im-sergey-developer-of-suri-oculus-iah</link>
      <guid>https://dev.to/sergey_filipovich_5eb9e4c/hello-devto-im-sergey-developer-of-suri-oculus-iah</guid>
      <description>&lt;p&gt;Hi everyone! My name is Sergey, and I’ve just joined dev.to.&lt;br&gt;
I’m the developer of Suri Oculus (&lt;a href="https://suri-oculus.com" rel="noopener noreferrer"&gt;https://suri-oculus.com&lt;/a&gt;), a lightweight and high-performance platform for managing Suricata, analyzing network traffic, and running AI-based anomaly detection.&lt;br&gt;
*&lt;em&gt;**What I’m building:&lt;/em&gt;*&lt;br&gt;
**&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ backend (Pistache) for fast REST APIs&lt;/li&gt;
&lt;li&gt;Redis-based real-time event ingestion (no eve.json)&lt;/li&gt;
&lt;li&gt;Pure JavaScript UI optimized for low-power devices&lt;/li&gt;
&lt;li&gt;AI module (Python + Isolation Forest + C++ feature extraction)&lt;/li&gt;
&lt;li&gt;Oculus Tools — automated domain-intelligence pipelin
The goal:&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;A clean, efficient Suricata ecosystem that works on anything — from a home router to an enterprise firewall.&lt;br&gt;
&lt;strong&gt;What I plan to write here:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C++ backend engineering&lt;/li&gt;
&lt;li&gt;Redis pipelines for security tools&lt;/li&gt;
&lt;li&gt;Lightweight UI for embedded devices&lt;/li&gt;
&lt;li&gt;ML-based traffic analysis&lt;/li&gt;
&lt;li&gt;Practical Suricata workflows
Glad to be here — feel free to connect or ask questions!&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;More posts coming soon&lt;/p&gt;

</description>
      <category>ai</category>
      <category>suricata</category>
      <category>cpp</category>
      <category>cybersecurity</category>
    </item>
  </channel>
</rss>
