My Journey into Vibe Coding: Building a Zabbix Service Visualizer with AI
Good morning, everyone, and welcome back to Quadrata! This is Dimitri Bellini, and on this channel, we dive into the fascinating world of open source and IT – the stuff I love, and hopefully, you do too. If you enjoy this content, please give it a thumbs up and consider subscribing for more insights and stories from this field.
This week, we're returning to a topic I'm really excited about: Vibe Coding. That's my term for using artificial intelligence to help us write code, sometimes with what feels like "punches and kicks" to get the AI to cooperate!
What is Vibe Coding and Why Bother?
Simply put, Vibe Coding is about leveraging AI, specifically Large Language Models (LLMs), to assist in software development. Why is this useful? Well, if you're like me and have ambitious project ideas, or if you're venturing into areas of coding where you're not an expert, AI can be an incredible partner. It can help bridge knowledge gaps and accelerate development, especially for complex tasks.
The Project: Automating Zabbix Service Discovery and Correlation
Inspired by our good friend Zabbix, which always provides a wealth of project ideas, I embarked on a new challenge. My goal was to:
- Automate the discovery of services running on hosts (both Windows and Linux).
- Understand the relationships between these services – who is consuming what, and who is providing it.
- Visualize these relationships through a user-friendly graphical interface.
- And crucially, enable automatic correlation of problems to quickly identify root causes during outages.
A quick word of caution: always be skeptical of "automagic" solutions. Effective monitoring and problem correlation require solid data and context. As I often say, doubt who tells you that a monitoring system can make aggregation or magic around a problem if there is no information at the base.
For correlation, I decided to start with a combination of temporary correlation (events happening close in time) and severity/tag patterns, keeping things manageable for this initial phase.
Tools of the Trade for AI-Assisted Development
Embarking on this Vibe Coding journey required a specific toolkit:
Time and Patience: AI isn't perfect. Sometimes it hallucinates or breaks code, so patience is key!
Visual Studio Code (VS Code): My preferred editor, especially with its Remote Node function, allowing me to develop on a dedicated VM and keep my main PC clean.
AI Coding Assistants: I explored both Roo Code and Cline. I leaned towards Roo Code due to its superior customization options.
OpenRouter Account: This is an API aggregator for various LLMs (GPT, Claude, Google, etc.). It's fantastic because, with a small investment (say, €30 to start), you can experiment with multiple AI engines without committing to each platform individually.
Why Roo Code?
Roo Code stood out for a few reasons:
Customization: It offers more fine-tuning capabilities.
Checkpoint Feature: This is a lifesaver! It allows you to restore your code to a previous state (essentially a Git commit). When the AI goes off the rails and messes things up, this feature is invaluable. I had to activate this immediately.
The "Memory Bank" Concept: A game-changer for maintaining context, which we'll dive into next.
A quick note on versions: I encountered some regressions with Roo Code version 3.16 that hindered my development, so I had to stick with version 3.15.5, which worked reliably for my setup.
The Power of "Memory Bank" in Vibe Coding
One of the most significant discoveries during this project was the "Memory Bank" feature within Roo Code. This isn't science fiction; it's a methodology for structuring the content of your code and interactions with the AI in an organized way. Essentially, it involves prompting the AI to save all useful information generated during your coding iterations into specific files within your project.
The benefits are huge:
Maintains Project Context: Even across different development sessions. If I work on the code today and come back tomorrow, the AI (and I!) can pick up right where we left off, with full awareness of previous decisions, implemented functions, and architectural choices.
Living Documentation: It helps document the project, including what functions were implemented and what the future goals are.
If you're planning to do any Vibe Coding, I highly recommend exploring this Memory Bank approach. It makes a massive difference.
Navigating the LLM Landscape: My Experiments
Choosing the right LLM engine was an adventure in itself:
- I started with OpenRouter and quickly burned through my initial $30 credit using Anthropic's Claude 3 Opus (which I referred to as LLM Cloud 3.7 in the video). It's incredibly powerful but can be expensive for extensive use.
- This led me to explore running models locally on my "beast" of a machine (equipped with 3x RTX 8000 GPUs).
Qwen3 32B: This model showed great promise for coding, especially with its reasoning capabilities. However, even at FP16 precision (requiring about 60GB of VRAM), its 32,000-token context length was a bottleneck for my project, which had already exceeded 200,000 tokens of context with all the code and information. It did handle agentic features (tools) quite well, though.
GLM-4 32B: Another high-quality model for coding, capable of function calling and "thinking." While impressive, the results weren't quite what I needed for this specific project.
The Breakthrough: Google's Gemini 2.5 Pro Experimental 0325 (as named in my video, likely referring to a specific version of Gemini 1.5 Pro available at the time). This model has been exceptional!
- It performs on par with top-tier models like Claude 3 Opus.
- Crucially, I could access it for free via OpenRouter (with some rate limits, but perfectly usable for development).
- It supports thinking, tool use, and even image input, which means I can show the AI screenshots of the UI and explain desired changes visually. This multi-modal capability, combined with the Memory Bank, leads to much more interesting and accurate results.
If you're looking to experiment without breaking the bank, I highly recommend trying the Gemini 2.5 Pro Experimental 0325 (or its current equivalent free tier) through OpenRouter. Google has done a fantastic job with this model.
Bringing it All Together: A Peek at the Zabbix Project POC
So, what did all this Vibe Coding produce? I've developed a Proof of Concept (POC) that I'm quite excited about. Here’s a glimpse of what it can do:
Visualizing Host Relationships: Using Vis.js for the graphical interface, I can select a host (e.g., a Zabbix server or a DB backend) and see its connections. For instance, it can show SSH connections, Zabbix agent communications, and which hosts are consuming its MySQL service.

Service Discovery: I can query for all hosts exposing a particular service (e.g., all hosts with port 22 open) and see who is consuming those services.
Problem Correlation in Action: This is the core of the project. When problems arise in Zabbix:
- The tool ingests active problems.
- If I stop a critical service (like MySQL on a database server), the system correctly identifies this as the potential root cause.
- It then flags dependent issues (like the Zabbix server application going down because its database is unavailable) as symptoms.
This correlation effectively pinpoints the source of the problem, which is incredibly valuable in complex infrastructures.
The Journey So Far and What's Next
This project is very much a starting point, not the final destination. There's so much more that can be done, especially around refining the correlation logic. My journey has been fueled by a passion for IT and learning – a passion I believe is essential in our field. (And yes, sometimes accompanied by the energetic beats of Tomorrowland, which I discovered is a fantastic coding soundtrack for me!)
If you work in IT, nurturing your curiosity and desire to learn is paramount. If you don't find pleasure in understanding the tools and technologies you work with daily, it might be a sign to re-evaluate. Passion drives progress!
Join the Conversation!
This is where you come in! I'd love to hear your thoughts on this project. What do you think of the approach? Do you have suggestions for features or improvements? Could I tackle a different aspect of this? Your feedback is precious and will help shape the future direction of this development.
Please leave your comments below. Let me know what you think!
That’s all for today. Thanks again for watching and reading. I hope you found this dive into Vibe Coding and my Zabbix project interesting. Stay tuned for more adventures in the world of open source and IT!
Thanks to everyone, and see you next week.
Bye from Dimitri.
Connect with me:
My YouTube Channel: Quadrata
Join the ZabbixItalia Telegram Channel: https://t.me/zabbixitalia