All authors
Server Monitoring & Linux
Dana
Dana writes about Linux server administration, infrastructure observability, performance tuning, and the operational discipline behind reliable systems. With hands-on experience running production Linux fleets — including Apache, Nginx, MySQL, PostgreSQL, Redis, Docker, and the wider open-source server ecosystem — Dana focuses on the practical side of monitoring: the metrics that actually predict incidents, the thresholds that cut alert fatigue, and the configurations that turn raw telemetry into useful signal.
Linux server administrationServer monitoringPerformance tuningDatabase monitoringContainer monitoringDevOps workflows
Blog posts by Dana
(23)- Infrastructure Monitoring·Best Infrastructure Monitoring Tools in 2026Twelve infrastructure monitoring tools compared on agent footprint, OS coverage, real pricing at 5/50/500 hosts, and — honestly — what each one won't help you with.
- Server Monitoring·Best Server Monitoring Tools 2026Twelve server monitoring tools compared on agent footprint, OS coverage, alerting depth, and total cost — pick the right one for your fleet.
- Server Monitoring·What Is PostgreSQL Monitoring? Key MetricsWhat PostgreSQL monitoring should look like in 2026 — the metrics that catch real failures: autovacuum, lock waits, replication lag, and TXID wraparound.
- blog·Best Practices for Setting Up Server MonitoringBest practices for setting up server monitoring: which metrics to track, how to set alert thresholds, and how to avoid alert fatigue from day one.
- Server Monitoring·Why Server Monitoring Matters in 2026Downtime costs businesses around $5,600 per minute. Why proactive server monitoring is no longer optional, and how to build resilient infrastructure.
- Server Monitoring·How to Monitor RabbitMQ: Queues, Lag & AlertsRabbitMQ sits at the center of async systems. Here's which metrics matter, how production failures unfold, and how to spot them before customers do.
- blog·How to monitor WireGuard VPN Services?How to monitor WireGuard VPN tunnels: detect dropped peers, missing handshakes, and routing failures before remote users notice they've lost connectivity.
- blog·CoreDNS Monitoring Best Practices & Top ToolsA complete CoreDNS monitoring guide: which metrics matter, the top tools to use, and best practices to keep DNS resolution fast, reliable, and observable.
- blog·Top 10 Windows Server Monitoring Tools 2025A CTO's shortlist of the top 10 Windows Server monitoring tools in 2025, ranked by uptime visibility, alerting depth, ease of use, and price-to-value.
- blog·How to Monitor InfluxDB Server PerformanceHow to monitor InfluxDB server performance: which metrics matter (writes, queries, cardinality, memory), what to alert on, and how to spot trouble early.
- blog·Common Causes of Server Downtime and FixesThe most common causes of server downtime — hardware failure, software bugs, traffic spikes, network issues — and the fixes that keep your servers online.
- educational·What Is Server Monitoring? A Complete GuideA complete guide to server monitoring: what it is, the metrics that matter, the tools that work, and how to build a proactive setup that prevents downtime.
- educational·What is cloud server monitoring?What cloud server monitoring is, why the cloud doesn't remove the need for it, and how third-party tools give deeper visibility than your provider's defaults.
- educational·What is Disk Health Check Monitoring?What disk health check monitoring is, how SMART attributes predict drive failure, and why proactive checks save you from data loss and unexpected downtime.
- educational·What Is IIS Monitoring? Metrics & Best PracticesWhat IIS monitoring is, which Internet Information Services metrics actually matter, and how to keep ASP.NET and Windows web workloads fast and available.
- educational·What is Varnish Cache Monitoring?What Varnish Cache monitoring is, how this HTTP accelerator works, and the metrics that confirm your cache is offloading traffic and serving pages fast.
- educational·Docker Container Monitoring: 2026 GuideDocker container monitoring tracks the health, performance, and resource consumption of running containers in real time — CPU, memory, network, restarts.
- educational·What Is HAProxy Monitoring? Key MetricsWhat HAProxy monitoring is, why load-balancer health is mission-critical, and the metrics that catch backend failures before users see a slow or broken site.
- educational·What Is MySQL Monitoring? Key Metrics & ToolsWhat MySQL monitoring is, the queries and metrics that predict trouble, and how proactive observation keeps your database fast, scalable, and reliable.
- blog·Minimizing E-Commerce Downtime: A Practical GuideA practical guide to minimizing downtime in e-commerce: what causes outages, how to cut their cost, and the monitoring strategies that protect every sale.
- educational·What Is Redis Monitoring? Key Metrics & ToolsWhat Redis monitoring is, why an in-memory data store needs different metrics than a disk database, and the signals that catch latency and eviction issues.
- blog·How metric monitoring increases server uptime?How metric monitoring increases server uptime: which performance signals to track, how to set thresholds, and how to act on data before downtime hits.
- educational·Server Monitoring vs Uptime Monitoring (2026)Server monitoring vs uptime monitoring: how each works, what they actually measure, and why most production teams need both layers running together.
Knowledge base articles by Dana
(71)- DevOps & WorkflowBackup and Restore a GPG Key on Linux"Back up my GPG key" sounds like one command, but a working restore actually needs four pieces — the public key, the secret key, the ownertrust database, and a revocation certificate. Miss any one and you end up on a new box with keys that exist but don't decrypt, don't sign, or are flagged "unknown trust." This guide walks the full backup-and-restore loop on Linux, with the exact gpg invocations, the right import order, a worked end-to-end example, and the failure modes that surprise people the first time.
- DevOps & WorkflowTroubleshoot Linux Using dmesgWhen something goes wrong on a Linux box — a disk drops, a service gets killed, the network card resets, a process segfaults — the kernel almost always wrote the reason into the ring buffer before anything else noticed. `dmesg` is how you read that buffer. This guide covers how to read it well: the right filters, the right time format, what each common message class actually means (OOM killer, block-layer errors, MCEs, USB resets, segfaults), and the workflow for going from "the box is misbehaving" to "this specific line in dmesg is the root cause."
- Server MonitoringHow to check running processes on Ubuntu ServerEvery Ubuntu Server question that starts with "why is the box slow?" or "what's listening on that port?" ends in the same place — looking at the process table. This guide covers `ps`, `top`, `htop`, `pgrep`, `systemctl`, the `/proc` filesystem, and how to map a noisy process back to the port, file, or service that owns it, with the commands and flags that actually earn their keep on a production server.
- DevOps & WorkflowHow to increase database performanceMost "the database is slow" problems are not the database — they're a missing index, an N+1 from the ORM, a buffer pool sized for last year's data, or a disk that quietly degraded. This guide walks the layers in the order they actually matter: measure first, fix queries and schema, then configuration, then hardware, then architecture.
- Server MonitoringInstall & Configure NTP Chrony on CentOS 8CentOS 8 ships chrony as the only NTP daemon in the base repos — the classic `ntp` package is gone. This guide walks through installing chrony, configuring it as a time server for your network, opening firewalld and SELinux correctly, verifying sync, and monitoring drift on CentOS 8, CentOS Stream 8, RHEL 8, Rocky Linux 8, and AlmaLinux 8.
- DevOps & WorkflowUsing MySQLTuner to optimize MySQL performanceMySQLTuner is a single-file Perl script that reads your server's status counters and configuration and prints a prioritized list of tuning recommendations. This guide covers installing it, running it safely against a live server, interpreting the output, and — just as importantly — knowing when to ignore its advice.
- DevOps & WorkflowOptimizing PHP-FPM for better performancePHP-FPM has more tuning knobs than most people realize, and the defaults shipped by your distro are sized for a generic VPS — not your workload. This guide walks through what FPM actually does, how to measure where it hurts, and which settings — across the process manager, OPcache, the OS, and your web server — genuinely move the needle in 2026.
- DevOps & WorkflowAdd a User to Sudoers in AlmaLinux/Rocky LinuxGranting sudo on AlmaLinux or Rocky Linux is a one-liner — but the right shape of that grant (wheel group vs `/etc/sudoers.d/`, password vs NOPASSWD, all commands vs a narrow list) decides whether the next admin inherits a clean setup or a footgun. This guide walks through every common way to add a user to sudoers on RHEL-derived distros, how to verify the grant works, and how to avoid the classic mistakes that lock you out of the box.
- DevOps & WorkflowJenkins + SSL Behind Nginx on Ubuntu 20.04Jenkins ships an HTTP server on port 8080 and stops there — no TLS, no professional URL, no port-sharing with the rest of your stack. The standard fix is to put Nginx in front of it, terminate TLS with Let's Encrypt, and bind Jenkins to localhost so the only path in is through the proxy. This guide walks through every step on Ubuntu 20.04 — installing Jenkins, getting a certificate, writing a correct reverse-proxy config (with the headers Jenkins actually needs), fixing the "reverse proxy setup is broken" warning, and avoiding the WebSocket and CSRF gotchas that bite people the first time.
- DevOps & WorkflowHow to fine-tune Linux kernel parametersLinux exposes hundreds of runtime knobs through `sysctl` — and most of the "tuning guides" you'll find on the internet are cargo-culted defaults from 2009 that may already be the kernel's default in 2026, or worse, the wrong answer for your workload. This guide walks through what kernel parameters actually are, how to change them safely, which ones genuinely matter for servers under load, and how to verify a change made things better instead of just different.
- Networking & DiagnosticsBridge Network on Bonded Interface (Virtualizor)Virtualizor attaches guest VMs to the host network through a bridge — `viifbr0` by default. On a dedicated server with a bonded uplink, that bridge has to sit on top of the bond, and the host's public IP has to move from the bond to the bridge without losing SSH in the middle. This guide walks through that migration end-to-end with `nmcli`, including the NetworkManager rule that forces it into two stages and the verification that catches a bad swap before it locks you out.
- Uptime & SSLCheck & Verify SSL Certificates with OpenSSLOpenSSL is the canonical tool for inspecting TLS certificates — what hostnames they cover, when they expire, whether the chain trusts to a root, whether the key on disk matches the cert on disk, whether the server is even serving the cert you think it is. This guide is a commands-and-output reference for every common check, with the exact invocation, the expected output, and what each field actually means.
- Server MonitoringHow to fix the 403 Forbidden error in NginxA 403 Forbidden Nginx response means the server understood the request and refused to serve it — but Nginx rarely tells the client why. The cause is almost always one of five things: file permissions, a missing index file, SELinux, an explicit deny rule, or a misbehaving upstream. This guide walks through them in the order to rule them out, with the exact commands and the log lines that tell you which is which.
- Server MonitoringHow to fix the 500 Internal Server Error in NginxA 500 Internal Server Error from Nginx almost never originates in Nginx itself — the response is what reaches the client when the application upstream (PHP-FPM, Node, Python, Go) crashed, returned malformed output, or never responded at all. This guide walks through how to tell a real Nginx 500 apart from an upstream 500, how to find the root cause in the error log, and how to fix the most common culprits without guessing.
- Uptime & SSLHow to fix net::err_cert_common_name_invalidnet::err_cert_common_name_invalid means the TLS certificate the server served is technically valid — not expired, signed by a trusted CA — but the hostname in your URL is not listed in the certificate's Subject Alternative Name (SAN) field. The cert is genuine, just not for this hostname. The fix depends on whether you operate the server, the DNS, or only the browser. This guide walks through every common cause and the exact diagnosis for each.
- Networking & DiagnosticsHow to Lower Ping and Reduce High LatencyHow to lower ping is mostly a matter of finding which hop in the chain between you and the server is adding the latency, then fixing that specific hop — not blanket "use a wired connection and hope". This guide covers the actual diagnosis (ping, traceroute, mtr), the fixes that work at each layer (client, Wi-Fi, ISP, server), and the things that look like fixes but aren't.
- Server MonitoringHow to monitor CPU temperature on Windows/Linux?CPU temperature is one of the first vitals to check when a server slows down, a workstation throttles, or a fan suddenly screams. This guide walks through the built-in and free tools to read CPU temperature on Windows and Linux, what the readings actually mean, safe operating ranges, and how to wire temperature into continuous monitoring so you find out before users do.
- Server MonitoringHow to monitor CPU usage on LinuxLinux exposes CPU usage at every level — system, per-core, per-process, per-thread — through /proc and a small family of standard tools (top, htop, mpstat, pidstat, perf). The trick is knowing which view answers which question, and how to tell real saturation from a misleading number. This guide walks through the commands that matter, what each field really means, and how to wire CPU into continuous monitoring.
- Uptime & SSLHow to renew an SSL certificate (step-by-step)You don't actually "renew" an SSL certificate — you issue a new one with the same hostnames and replace the old one before it expires. The exact steps depend on whether the cert is from Let's Encrypt, a commercial CA, or a cloud provider, and where it lives (Nginx, Apache, IIS, a load balancer). This guide walks through every common path, plus how to validate the renewal and never get caught by an expiry again.
- DevOps & WorkflowHow to set a Linux cron job to reboot a serverSetting up a Linux cron job to reboot a server is a one-line config — but the right way to do it depends on whether you actually need scheduled reboots, which scheduler to use (cron vs systemd timer vs at), and how to make sure the reboot actually happened. This guide covers the literal answer, the better alternatives, and the monitoring that catches a reboot that didn't come back.
- Server MonitoringHow to tail Docker container logsTailing Docker container logs is the same `docker logs` command on every host — but the right invocation depends on whether you want the last few lines, a live stream, a time window, or only stderr. This guide covers every common docker log tail workflow, the log driver configuration that makes or breaks them, and what to do when the app is logging to a file inside the container instead of stdout.
- Uptime & SSLCloudflare Error 526: SSL Certificate FixError 526 — "invalid SSL certificate" — is a Cloudflare-specific status that means Cloudflare reached your origin server, opened a TLS connection, and refused to trust the certificate the origin presented. The cert is expired, self-signed, signed by an untrusted CA, has the wrong hostname, or has a broken chain. This guide explains what 526 actually means, the five things that trigger it, and the right fix (which is not "downgrade to Full").
- Server MonitoringSet Up an NTP Server on CentOS 7Accurate, consistent time is a hard requirement for log correlation, TLS, Kerberos, database replication, and almost every distributed system you operate. This guide walks through installing, configuring, and hardening an NTP server on CentOS 7 — including chronyd vs ntpd, peers and stratum, firewall rules, verification, and how to monitor drift before it bites.
- DevOps & WorkflowWhat is crontab and how to use itCrontab is the file format and command-line tool that controls cron — the Unix scheduler that's been running periodic jobs on Linux since the 1970s. This guide explains what crontab is, the five-field syntax, where crontabs live on disk, how to edit them safely, the common pitfalls, and when systemd timers are a better fit.
- DevOps & WorkflowHow to remove a file from git historyCommitted a secret, a multi-gigabyte binary, or a file that should never have been tracked? Removing it from the working tree is not enough — git remembers everything. This guide covers how to scrub a file from your entire history with git filter-repo or BFG, and what to do afterwards.
- DevOps & WorkflowHow to rename a git branchRenaming a git branch is straightforward locally but takes an extra step on the remote and on every other clone. This guide covers renaming the current branch, another branch, the default branch (master to main), and updating tracking after the rename.
- DevOps & WorkflowHow to resolve merge conflicts in gitMerge conflicts are how git tells you that two changes to the same lines need a human decision. This guide covers reading conflict markers, the commands you'll actually use, three-way diff tools, conflicts during rebase or cherry-pick, and how to avoid the painful ones.
- DevOps & WorkflowHow to undo a git commitMade a commit you regret? This guide covers every common case — undoing the last commit, undoing a pushed commit, undoing several commits, and the difference between throwing changes away and keeping them in your working tree.
- DevOps & WorkflowHow to use git bisectgit bisect is a binary search through your commit history to find the exact commit that introduced a bug. This guide covers the manual flow, automating bisect with a test script, skipping unbuildable commits, and the etiquette of bisect on shared branches.
- DevOps & WorkflowHow to use git cherry-pickgit cherry-pick lets you apply a specific commit from one branch onto another — useful for backporting fixes, lifting work out of a long-lived branch, or pulling a single commit forward without merging the rest. This guide covers single commits, ranges, conflicts, and the common pitfalls.
- DevOps & WorkflowHow to use git rebasegit rebase replays your commits on top of another base, producing a clean, linear history. This guide covers basic rebase, interactive rebase for squashing and editing, conflict handling, the golden rule, and how to recover when a rebase goes sideways.
- DevOps & WorkflowHow to use git refloggit reflog is the safety net that has saved more careers than any single command in git. It records every move HEAD has made — every commit, reset, rebase, checkout, and amend — for about 30 days. This guide shows how to use it to find and recover work you thought you'd lost.
- DevOps & WorkflowHow to use git resetgit reset is the most misunderstood command in git. This guide explains the three modes — soft, mixed, and hard — what each one actually moves, when to use which, and how to recover when you've reset too far.
- DevOps & WorkflowHow to use git stashgit stash lets you shelve uncommitted changes so you can switch branches, pull updates, or test something clean — then bring the work back exactly as you left it. This guide covers the commands you'll actually use and the pitfalls worth knowing.
- DevOps & WorkflowHow to Install a LEMP Stack on Ubuntu 20.04Step-by-step guide to install a LEMP stack — Nginx, MySQL, and PHP-FPM — on Ubuntu 20.04, with server-block config, hardening, and TLS via Let's Encrypt.
- Server MonitoringHow to Monitor Dovecot with XitoringLearn how to monitor Dovecot IMAP/POP3 server connections, authentication rates, and mailbox performance using Xitoring.
- Server MonitoringHow to Monitor Exim with XitoringLearn how to monitor Exim mail server queue health, delivery performance, and connection metrics using Xitoring.
- Server MonitoringHow to Monitor Postfix with XitoringLearn how to monitor Postfix mail queue size, delivery rates, and bounce ratios using Xitoring's dedicated integration.
- Server MonitoringHow to Monitor CoreDNS with XitoringLearn how to monitor CoreDNS query rates, cache performance, and resolution latency using Xitoring for Kubernetes and cloud-native environments.
- Server MonitoringHow to Monitor OpenVPN with XitoringLearn how to monitor OpenVPN server health, active connections, and tunnel throughput using Xitoring's dedicated integration.
- Server MonitoringHow to Monitor WireGuard with XitoringLearn how to monitor WireGuard VPN tunnels, peer handshakes, and throughput with Xitoring's dedicated integration.
- Server MonitoringHow to Monitor Apache KafkaLearn how to enable the Kafka integration in Xitoring to track broker health, message throughput, consumer lag, and partition metrics.
- Server MonitoringHow to Monitor Microsoft SQL ServerLearn how to enable the MS SQL Server integration in Xitoring to track query performance, connections, lock contention, and resource usage.
- Server MonitoringHow to Monitor CouchDB DatabaseLearn how to enable the CouchDB integration in Xitoring to track database reads/writes, request rates, HTTP responses, and replication status.
- Server MonitoringHow to Monitor ProFTPd ServerLearn how to monitor your ProFTPd FTP server with Xitoring using FTP uptime checks and server-level metrics.
- Server MonitoringHow to Monitor InfluxDBLearn how to enable the InfluxDB integration in Xitoring to track query performance, write throughput, series count, and resource usage.
- Server MonitoringHow to Monitor MariaDB DatabaseLearn how to enable the MariaDB integration in Xitoring to track query performance, connections, replication status, and resource usage.
- Server MonitoringHow to Monitor Apache TomcatLearn how to enable the Tomcat integration in Xitoring to track JVM health, thread pools, request throughput, and session counts.
- Server MonitoringHow to Monitor IIS Web ServerLearn how to enable the IIS integration in Xitoring to track connections, request rates, bandwidth, and HTTP method breakdowns on Windows Server.
- Server MonitoringHow to Monitor OpenLiteSpeed Web ServerLearn how to enable the OpenLiteSpeed integration in Xitoring with zero prerequisites to monitor server load, traffic, and request handling.
- Server MonitoringHow to Monitor Varnish CacheLearn how to enable the Varnish integration in Xitoring to track cache hit rates, backend health, thread pools, and session metrics.
- Server MonitoringHow to Monitor ElasticsearchLearn how to enable the Elasticsearch integration in Xitoring to track cluster health, indexing rates, search performance, and resource usage.
- Server MonitoringHow to Monitor MemcachedLearn how to enable the Memcached integration in Xitoring to track cache hit ratios, memory usage, connections, and eviction rates.
- Server MonitoringHow to Monitor RabbitMQLearn how to enable the RabbitMQ integration in Xitoring to track queues, exchanges, node health, and message throughput in real time.
- Server MonitoringHow to Monitor HAProxy Load BalancerLearn how to enable the HAProxy integration in Xitoring to track sessions, request rates, error codes, and backend health in real time.
- Server MonitoringHow to Monitor KeyDBLearn how to enable the KeyDB integration in Xitoring to track memory usage, connected clients, throughput, and CPU utilization in real time.
- Server MonitoringHow to Monitor Supervisor ProcessesLearn how to enable the Supervisor integration in Xitoring to track process status, uptime, and set up alerts for managed processes.
- Server MonitoringHow to Monitor Docker ContainersLearn how to enable the Docker integration in Xitoring to track container status, resource usage, images, volumes, and networks in real time.
- Server MonitoringHow to Monitor MongoDB DatabaseLearn how to enable the MongoDB integration in Xitoring to track connections, query throughput, replication status, and resource usage.
- Server MonitoringHow to Monitor PostgreSQL DatabaseLearn how to enable the PostgreSQL integration in Xitoring with pg_stat_statements, track query performance, connections, and cache hit ratios.
- Server MonitoringHow to Monitor MySQL DatabaseLearn how to enable the MySQL integration in Xitoring, create a dedicated monitoring user, and track query performance, replication, and resource usage.
- Server MonitoringHow to Monitor PHP-FPMLearn how to enable the PHP-FPM integration in Xitoring to monitor process pools, request rates, memory usage, and worker states.
- Server MonitoringHow to Monitor RedisLearn how to enable the Redis integration in Xitoring to track memory usage, connected clients, throughput, and key counts in real time.
- Server MonitoringHow to Monitor Apache Web ServerLearn how to enable the Apache integration in Xitoring using mod_status, what metrics it monitors, and how to set up alerts for your Apache web server.
- Server MonitoringHow to Monitor LiteSpeed Web ServerLearn how to enable the LiteSpeed integration in Xitoring with zero prerequisites, what metrics it monitors, and how to set up performance alerts.
- Server MonitoringHow to Monitor Nginx Web ServerLearn how to enable the Nginx integration in Xitoring using stub_status, what metrics it monitors, and how to configure alerts for your Nginx web server.
- Server MonitoringHow to monitor Disk Health on Linux/Windows?A disk health check is the process of evaluating the condition and performance of a storage device, such as a hard disk drive (HDD) or solid-state drive (SSD). This includes checking for potential issues like bad sectors, wear and tear, read/write errors, and other signs of degradation that could lead to data loss or drive failure.
- Server MonitoringSetting Up Disk Space AlertsConfigure disk usage thresholds and alerts to prevent storage-related outages before they happen.
- Server MonitoringAvailable Server Monitoring IntegrationsXitogent supports 30+ service integrations out of the box — databases, web servers, message queues, and more.
- Getting StartedHow to Install Xitogent on LinuxStep-by-step guide to installing the Xitoring monitoring agent on any Linux distribution using a single command.
- Getting StartedHow to Install Xitogent on Windows ServerInstall the Xitoring monitoring agent on Windows Server using PowerShell or the MSI installer.