Multifaceted Monitoring of Angie, an nginx Web Server Fork#

A beautiful live demo is better than any pictures: https://console.angie.software/
Hello, dear reader. My name is Dmitry. I am a systems engineer at Web Server, the Russian company behind the Angie web server. Drawing from my experience providing technical support—first at NGINX and now at Web Server LLC—I frequently encounter the same popular question: "How do I organise web server monitoring?" Let's explore the answer.
Monitoring. "Why? The logs are fine!"
Angie Web Server. "Why? When there's ***."** How to install. "Is there a build for **?"
API. "I'm telling you, there are logs! Just let me enable them in prod." What it provides. "What's the difference from logs?" How to configure. "Doesn't it work automatically?" Getting web server configuration. "But there's angie -T."
Console Light – Web Interface. "Another monitoring system?!1?1!!!" What it shows. "What does real-time mean?" How to install. "Really just a couple of config lines?"
Prometheus API. "I'm already using it! Well yes, we parse logs..." How to configure Angie for integration. "And without njs?" Comparison with Console Light. "Do the values really match?"
Conclusion. "So that's what multifaceted means!"
--- We've moved beyond reacting to incidents based on user reports. Monitoring
systems have become an essential part of modern infrastructure, providing data
collection, notifications, and even the occasional "fix everything" button. When asked by managers, architects, or security specialists about how we ensure
observability for key components in the request-processing infrastructure, we
typically highlight three main sources of information: System metrics about the web server process (e.g., CPU and RAM usage,
uptime). Log data offering a retrospective view of processed requests. Metric exports using third-party extensions, though less commonly. While system process metrics are fundamental and universally applied, they often
fall short. For example, low CPU usage might still coincide with a 502 Bad
Gateway error, signalling deeper issues that aren't immediately apparent. Log data is also straightforward to access but inherently reactive. It allows us
to diagnose issues only after they've occurred. For instance, during a DoS
attack, logs reveal failed requests after the fact, but they don't provide
insight into unprocessed incoming requests. Effective monitoring should act as a
predictive tool, alerting us to issues in progress—not merely documenting the
aftermath. Third-party solutions for metric exports can bridge this gap but come with
trade-offs: Time investment in configuration and OS-specific builds. Potential compatibility issues between the web server and third-party modules
after updates. Security concerns from InfoSec teams, who rarely sleep easy. Angie's built-in monitoring features, as we'll discuss, provide comprehensive
real-time insights into web and proxy server loads, alongside seamless
integration options for existing monitoring systems. --- Angie is an nginx fork that offers additional functionality while preserving
nginx's lightweight and efficient design. How to install: Installing Angie is straightforward. Pre-built packages are
available for common operating systems, and compiling from source is also
supported. Detailed installation instructions can be found in the official
documentation. Build availability: Angie supports a wide range of platforms, with binaries
for popular Linux distributions and other environments. If you're unsure about
your OS compatibility, consult the downloads section. --- Angie's API allows real-time monitoring of its operations, complementing
traditional logs. What it provides: The API offers granular metrics about request processing,
load distribution, and resource usage that go beyond static log entries. What's the difference from logs? Logs capture historical data—what has
already happened. In contrast, the API provides live insights into what's
happening now, such as queue lengths, processing delays, or upstream server
status. How to configure: Configuring the API is simple and involves enabling the
relevant modules in Angie's configuration file. Step-by-step instructions are
available in the official guide. Getting web server configuration: For users familiar with --- What it shows: Console Light provides a graphical interface for Angie's
real-time metrics, offering a clear visual representation of server performance. What does real-time mean? Metrics are updated live, giving immediate
feedback on server behaviour without the delays inherent in log-based systems. How to install: Installing Console Light requires minimal effort—just a few
lines of configuration. Instructions are provided in the installation guide,
ensuring you can set it up quickly. --- How to configure Angie for integration: Prometheus-compatible endpoints can
be enabled in Angie's configuration. No additional third-party modules are
required, making setup efficient and secure. And without njs? Unlike some setups that require nginx's njs module for
Prometheus integration, Angie provides native support for metric export,
eliminating additional dependencies. Comparison with Console Light: Both Prometheus and Console Light offer
robust monitoring capabilities, but they cater to different needs. Prometheus is
ideal for aggregating metrics across large-scale systems, while Console Light
provides a focused, real-time view of Angie's performance. The values reported
by both systems match, ensuring consistency. --- Angie's multifaceted monitoring capabilities address the needs of modern
infrastructure by combining system metrics, real-time APIs, and visual
interfaces. Whether you prefer logs, APIs, or graphical dashboards, Angie has
tools to provide a comprehensive and predictive monitoring experience. By leveraging these features, you can ensure your web server operates
efficiently, detect issues before they escalate, and integrate seamlessly with
your existing monitoring solutions.1. Monitoring. "Why? The logs are fine!"#
2. Angie Web Server. "Why? When there's *."#
3. API. "I'm telling you, there are logs! Just let me enable them in prod."#
angie -T
, the
API extends its functionality by providing dynamic, on-demand access to
configuration and runtime metrics.4. Console Light – Web Interface. "Another monitoring system?!1?1!!!"#
5. Prometheus API. "I'm already using it! Well yes, we parse logs..."#
6. Conclusion. "So that's what multifaceted means!"#