{"id":7767,"date":"2025-11-06T20:51:18","date_gmt":"2025-11-06T18:51:18","guid":{"rendered":"https:\/\/unihost.com\/blog\/?p=7767"},"modified":"2026-03-18T13:34:00","modified_gmt":"2026-03-18T11:34:00","slug":"uptime-101-basic-monitoring-alerts","status":"publish","type":"post","link":"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/","title":{"rendered":"Uptime 101: Set Up Monitoring and Alerts"},"content":{"rendered":"<p>Uptime isn\u2019t magic &#8211; it\u2019s discipline. Two things create it: <strong>observability<\/strong> (you can see what\u2019s happening) and <strong>alerts<\/strong> (you learn about trouble before your users do). Basic monitoring is the minimal set of checks and metrics that watch your site and infrastructure 24\/7 and notify the right people when something goes wrong.<\/p>\n<p>This guide gives you a practical, down\u2011to\u2011earth plan &#8211; no heavy jargon, just checklists, example alerts, and sensible thresholds. It\u2019s written for site owners, tech leads, developers, and DevOps engineers who want to \u201clock down the basics\u201d in a single evening and sleep better afterward.<\/p>\n<h2>How it works (the minimum theory)<\/h2>\n<h3>Black\u2011box vs white\u2011box<\/h3>\n<ul>\n<li><strong>Black\u2011box monitoring<\/strong> views your system from the outside, like a user would: ping, TCP\/HTTP checks, response time, TLS certificate validity, DNS health. It answers: \u201cIs the site up from a client\u2019s perspective?\u201d<\/li>\n<li><strong>White\u2011box monitoring<\/strong> looks inside: CPU\/RAM\/disk\/IO, network errors, open file counts, DB connection pools, app errors, web\u2011server metrics, job queues. It answers: \u201cWhy did it break?\u201d<\/li>\n<\/ul>\n<p>You need both. Black\u2011box gives a fast signal; white\u2011box gives the context to fix the cause.<\/p>\n<h3>Metrics, logs, traces<\/h3>\n<ul>\n<li><strong>Metrics<\/strong> are numbers over time (p95 latency, error rate, CPU utilization). Compact and perfect for alerting.<\/li>\n<li><strong>Logs<\/strong> hold event details. Great for incident forensics (stack traces, client IP, request path).<\/li>\n<li><strong>Traces<\/strong> show a request\u2019s path across services; ideal for finding bottlenecks (DB, external APIs).<\/li>\n<\/ul>\n<p>For a solid start, metrics + logs are enough. Add tracing later.<\/p>\n<h3>SLI, SLO, and error budget<\/h3>\n<ul>\n<li><strong>SLI<\/strong> (Service Level Indicator): a measurable quality signal &#8211; success rate, p95 latency, monthly uptime.<\/li>\n<li><strong>SLO<\/strong> (Service Level Objective): your target SLI (e.g., \u201c99.9% success and p95 &lt; 300 ms over 30 days\u201d).<\/li>\n<li><strong>Error budget<\/strong>: how much downtime or bad requests you can \u201cspend\u201d without breaking your SLO. It shapes release pace and incident priorities.<\/li>\n<\/ul>\n<h2>Why it matters (and where to start)<\/h2>\n<h3>1) You hear about issues before your users do<\/h3>\n<p>A push alert at the first minute of degradation is cheaper than an hour of lost conversions, carts, and leads. Simple HTTP checks from a few regions catch outages before your support queue does.<\/p>\n<h3>2) You reduce MTTR<\/h3>\n<p>Mean Time To Recovery drops when alerts land on a clear dashboard and runbook: what to check, where the logs live, how to restart safely, how to roll back via snapshot.<\/p>\n<h3>3) You stop fearing releases<\/h3>\n<p>A system with alerts is safer to experiment in: you see where it hurts and you have reversibility.<\/p>\n<h3>4) You make economic decisions on facts<\/h3>\n<p>With observability it\u2019s easy to compare: \u201cmoved to NVMe,\u201d \u201cadded cache,\u201d \u201coptimized SQL\u201d &#8211; what truly delivered gains and paid back.<\/p>\n<h2>What to monitor: a basic checklist<\/h2>\n<h3>A. Availability and edge<\/h3>\n<ol>\n<li><strong>DNS<\/strong>: do A\/AAAA\/CNAME records resolve? Is TTL sensible? Do you have secondary NS?<\/li>\n<li><strong>ICMP ping<\/strong>: does the host respond? Any rising RTT or packet loss?<\/li>\n<li><strong>TCP\/ports<\/strong>: are 80\/443 and service ports open and accepting connections?<\/li>\n<li><strong>HTTP\/HTTPS<\/strong>: 2xx\/3xx codes, TTFB and p95 latency, response size, presence of a keyword on the page (content check).<\/li>\n<li><strong>TLS certificate<\/strong>: validity dates, chain, domain match; alert at 30\/14\/7 days before expiry.<\/li>\n<li><strong>WAF\/DDoS<\/strong>: no rule changes blocking legitimate traffic?<\/li>\n<\/ol>\n<h3>B. Application<\/h3>\n<ol>\n<li><strong>Error rate<\/strong>: share of 5xx (track 4xx separately) above X% for N minutes.<\/li>\n<li><strong>Latency<\/strong>: p95\/p99 of key pages or APIs &#8211; thresholds tied to SLO (e.g., p95 &lt; 300 ms).<\/li>\n<li><strong>Critical endpoints<\/strong>: \/healthz, \/readyz, \/login, \/checkout, key RPC\/GraphQL methods.<\/li>\n<li><strong>Queues<\/strong>: depth and age (emails\/SMS\/background jobs).<\/li>\n<li><strong>Cache<\/strong>: hit ratio below Y%? DB connection pools starving?<\/li>\n<\/ol>\n<h3>C. Infrastructure (white\u2011box)<\/h3>\n<ol>\n<li><strong>CPU<\/strong>: utilization and steal time (on VMs), kernel load.<\/li>\n<li><strong>RAM<\/strong>: free\/cache levels, page cache, OOM events.<\/li>\n<li><strong>Disk\/FS<\/strong>: utilization &gt; 80\u201390%, inodes, IOPS\/latency; separate volumes for logs\/journals.<\/li>\n<li><strong>Network<\/strong>: errors\/drops, packets per second, bandwidth, SYN backlog, ESTABLISHED\/WAIT counts.<\/li>\n<li><strong>Processes<\/strong>: did critical systemd services crash or restart loops appear?<\/li>\n<li><strong>Database<\/strong>: replication health, lag, long queries, locks.<\/li>\n<\/ol>\n<h3>D. Dependencies<\/h3>\n<ol>\n<li><strong>Payments\/email\/geo APIs<\/strong>: provider SLAs, HTTP errors\/timeouts.<\/li>\n<li><strong>Object storage\/CDN<\/strong>: latency and errors on PUT\/GET, egress surprises.<\/li>\n<li><strong>Queues\/caches<\/strong>: availability and rising latencies.<\/li>\n<\/ol>\n<h3>E. Back\u2011office<\/h3>\n<ol>\n<li><strong>Backups<\/strong>: freshness, size trends, routine restore tests.<\/li>\n<li><strong>Snapshots<\/strong>: scheduled and before releases.<\/li>\n<li><strong>Schedulers<\/strong>: cron success, error logs.<\/li>\n<li><strong>Access audit<\/strong>: suspicious logins, sudo escalations, firewall rule changes.<\/li>\n<\/ol>\n<h2>Thresholds: how to avoid alert fatigue<\/h2>\n<ol>\n<li><strong>Night \u2260 day.<\/strong> Use different thresholds for peak\/off\u2011peak, or relative ones (\u201c50% above baseline for 10 minutes\u201d).<\/li>\n<li><strong>Deduplicate and group.<\/strong> One DB failure shouldn\u2019t trigger 20 app alerts &#8211; group by root cause.<\/li>\n<li><strong>Multi\u2011region validation.<\/strong> Require agreement from at least 2 of 3 probes before paging.<\/li>\n<li><strong>Grace period.<\/strong> Delay critical pages by 30\u201360 seconds to filter transient spikes.<\/li>\n<li><strong>Maintenance windows.<\/strong> Silence rules during deploys and routine ops.<\/li>\n<li><strong>Message templates.<\/strong> Every alert should include a dashboard link, last deploy info, and a runbook.<\/li>\n<\/ol>\n<h2>Alert delivery channels<\/h2>\n<ul>\n<li><strong>Email<\/strong> &#8211; \u00a0for non\u2011urgent notices and daily\/weekly digests.<\/li>\n<li><strong>Messengers<\/strong> (Slack\/Telegram\/Discord) &#8211; \u00a0for the on\u2011call team: #alerts channels, incident threads, reactions for acks.<\/li>\n<li><strong>SMS\/voice<\/strong> &#8211; \u00a0for critical off\u2011hours incidents (escalations).<\/li>\n<li><strong>Webhooks<\/strong> &#8211; \u00a0for status pages, ticketing systems, CI\/CD hooks.<\/li>\n<\/ul>\n<p>Set up <strong>escalations<\/strong>: if an alert isn\u2019t acknowledged within N minutes, page the next tier. This prevents \u201cstuck\u201d incidents.<\/p>\n<h2>A practical starter stack<\/h2>\n<p>Here\u2019s a small but effective open\u2011source bundle you can roll out quickly.<\/p>\n<ol>\n<li><strong>Node Exporter<\/strong> &#8211; \u00a0system metrics (CPU\/RAM\/disk\/net).<\/li>\n<li><strong>Blackbox Exporter<\/strong> &#8211; \u00a0external ping\/TCP\/HTTP checks (including TLS and content match).<\/li>\n<li><strong>Prometheus<\/strong> &#8211; \u00a0scrapes and stores metrics time\u2011series.<\/li>\n<li><strong>Alertmanager<\/strong> &#8211; \u00a0alert rules, routing, dedup, escalations.<\/li>\n<li><strong>Grafana<\/strong> &#8211; \u00a0dashboards and release annotations.<\/li>\n<li><strong>Filebeat\/Vector + ELK\/OpenSearch<\/strong> &#8211; \u00a0log collection\/search.<\/li>\n<li><strong>Health\u2011check endpoints<\/strong> &#8211; \u00a0\/healthz (liveness), \/readyz (readiness), \/metrics (app metrics).<\/li>\n<\/ol>\n<h3>Example alert rule \u00a0&#8211; \u00a0replace YAML with a simple template<\/h3>\n<p>Fill these fields for your service: &#8211; Name: HighErrorRate<br \/>\n&#8211; Condition: \u201cshare of 5xx over the last 5 minutes &gt; <strong>5%<\/strong> (grouped by service)\u201d<br \/>\n&#8211; Hold for: <strong>10 minutes<\/strong> (to avoid flapping)<br \/>\n&#8211; Severity: critical<br \/>\n&#8211; Message: \u201c{service}: 5xx &gt; 5% (10m)\u201d<br \/>\n&#8211; Runbook: link to your \u201chigh error rate\u201d playbook<\/p>\n<p>How to validate: chart the 5xx share for the past 1\u20137 days; pick a threshold that minimizes noise but catches real incidents fast.<\/p>\n<h3>TLS certificate check \u00a0&#8211; \u00a0parameter template<\/h3>\n<ul>\n<li>Protocol: HTTPS expecting a 2xx<\/li>\n<li>Request timeout: <strong>10 seconds<\/strong><\/li>\n<li>HTTP versions: <strong>HTTP\/1.1<\/strong> and <strong>HTTP\/2<\/strong> allowed<\/li>\n<li>TLS chain validation: enabled (not expired; CN\/SAN matches domain)<\/li>\n<li>Alert schedule: <strong>30\/14\/7 days<\/strong> before expiry from at least two regions<\/li>\n<\/ul>\n<h3>Free disk space alert \u00a0&#8211; \u00a0parameter template<\/h3>\n<ul>\n<li>Name: LowDiskSpace<\/li>\n<li>Condition: \u201cfree filesystem space &lt; <strong>10%<\/strong>\u201d (exclude tmpfs\/devtmpfs)<\/li>\n<li>Hold for: <strong>15 minutes<\/strong> (ignore short spikes)<\/li>\n<li>Severity: warning (raise to critical at &lt;5%)<\/li>\n<li>Message: \u201cINSTANCE: &lt;10% disk left &#8211; rotate logs\/artifacts or extend volume\u201d<\/li>\n<li>Tips: check log rotation, cache size, move build artifacts to object storage<\/li>\n<\/ul>\n<h2>A one\u2011evening rollout plan<\/h2>\n<p><strong>Step 1 \u00a0&#8211; \u00a0Define SLOs.<\/strong> Example: \u201c99.9% uptime over 30 days; p95 &lt; 300 ms; 5xx &lt; 1%.\u201d<\/p>\n<p><strong>Step 2 \u00a0&#8211; \u00a0Choose probe locations.<\/strong> 3\u20135 geographies (EU\/US\/Asia), one probe per key endpoint (home, login, checkout, a core API method).<\/p>\n<p><strong>Step 3 \u00a0&#8211; \u00a0Add health checks.<\/strong> Implement \/healthz and \/readyz. Readiness should fail if DB\/cache are down (when the service can\u2019t serve traffic).<\/p>\n<p><strong>Step 4 \u00a0&#8211; \u00a0Deploy the stack.<\/strong> Prometheus + Node\/Blackbox Exporters, Grafana, Alertmanager. Import ready\u2011made dashboards.<\/p>\n<p><strong>Step 5 \u00a0&#8211; \u00a0Create your top\u201110 alerts.<\/strong> HTTP availability, TLS expiry, 5xx &gt; 1\u20135%, p95 above SLO, CPU &gt; 85% for 10m, RAM free &lt; 15%, disk free &lt; 15%, DB replication\/lag, job queue depth, error spikes in logs.<\/p>\n<p><strong>Step 6 \u00a0&#8211; \u00a0Wire alert channels and escalations.<\/strong> Slack\/Telegram + Email; add SMS\/voice for \u201creds.\u201d Configure quiet hours and maintenance windows.<\/p>\n<p><strong>Step 7 \u00a0&#8211; \u00a0Build a status page.<\/strong> Public (sanitized) and internal (detailed). Auto\u2011updates via Alertmanager webhooks.<\/p>\n<p><strong>Step 8 \u00a0&#8211; \u00a0Run a mini chaos drill.<\/strong> Intentionally break a dependency (e.g., turn off cache). Verify alerts fire and the runbook is clear.<\/p>\n<p><strong>Step 9 \u00a0&#8211; \u00a0Write runbooks.<\/strong> For each alert: 5\u201310 diagnostic steps, mitigation actions, and on\u2011call contacts.<\/p>\n<p><strong>Step 10 \u00a0&#8211; \u00a0Recalibrate monthly.<\/strong> Tune thresholds from real data and post\u2011incident reviews.<\/p>\n<h2>Common mistakes<\/h2>\n<ul>\n<li><strong>Too many alerts.<\/strong> Weak signals drown strong ones. Keep a tight set of red\/yellow pages; push the rest to reports.<\/li>\n<li><strong>Context\u2011free paging.<\/strong> Always include dashboard links and runbooks. \u201cHigh CPU\u201d with no graph is noise.<\/li>\n<li><strong>No content check.<\/strong> HTTP 200 doesn\u2019t guarantee the right page rendered. Look for a keyword\/pattern.<\/li>\n<li><strong>One monitoring region.<\/strong> A single DC glitch can page you falsely. Use independent regions.<\/li>\n<li><strong>Co\u2011locating monitoring with the app.<\/strong> If everything crashes, nobody sees it. Keep monitoring off\u2011box.<\/li>\n<li><strong>No DR or backup tests.<\/strong> A backup you\u2019ve never restored isn\u2019t a backup. Practice restores.<\/li>\n<\/ul>\n<h2>Why Unihost makes uptime easier<\/h2>\n<p><strong>Network &amp; infrastructure.<\/strong> Low p95 latency through smart peering, <strong>DDoS filtering<\/strong>, private VLANs, IPv4\/IPv6, predictable uplinks. Fewer false positives and simpler prod\/stage\/dev isolation.<\/p>\n<p><strong>Storage.<\/strong> Fast <strong>NVMe Gen4\/Gen5<\/strong> for databases\/indexes and logs. Stable IOPS means fewer micro\u2011incidents.<\/p>\n<p><strong>Platform.<\/strong> First\u2011class IaC (Terraform\/Ansible), policy\u2011driven snapshots\/backups, integrations with Prometheus\/Grafana\/ELK\/OTel.<\/p>\n<p><strong>Operations.<\/strong> 24\/7 site monitoring, SLAs on uptime\/response, engineers who help tune kernel\/network\/DB and set healthy \/healthz endpoints.<\/p>\n<p><strong>Scale path.<\/strong> Start on VPS, move to dedicated or GPU servers without changing providers or re\u2011architecting &#8211; your monitoring moves with your IaC.<\/p>\n<h2>TL;DR launch template<\/h2>\n<ul>\n<li><strong>Black\u2011box<\/strong>: HTTP\/HTTPS from 3 regions, TLS\u2011expiry, DNS health.<\/li>\n<li><strong>White\u2011box<\/strong>: Node Exporter + app metrics at \/metrics.<\/li>\n<li><strong>Alerts<\/strong>: 5xx, p95, CPU\/RAM\/disk, TLS, DB, queues.<\/li>\n<li><strong>Channels<\/strong>: Slack\/Telegram + Email (+ SMS\/voice for critical).<\/li>\n<li><strong>Runbooks<\/strong> and a status page.<\/li>\n<li><strong>Monthly postmortems<\/strong> and threshold tuning.<\/li>\n<\/ul>\n<h2>Conclusion &amp; CTA<\/h2>\n<p>Basic monitoring isn\u2019t a luxury or \u201cyet another project.\u201d It\u2019s insurance for your revenue and reputation. Start today: add health checks, expose metrics, define your first alerts, and connect channels. In a week you\u2019ll have baseline stats; in a month you\u2019ll have confidence your site will survive peak traffic, a risky deploy, and a flaky third\u2011party API.<\/p>\n<p><strong>Unihost<\/strong> can speed this up: pick the right footprint (VPS or dedicated), tune network and storage, enable observability and alerts, automate snapshots\/backups, and write a DR plan you can actually execute.<\/p>\n<p><strong>Try Unihost servers \u00a0&#8211; \u00a0stable infrastructure for your projects.<\/strong><br \/>\n<strong>Order a VPS or dedicated server on Unihost and raise your uptime with metrics, alerts, and a clear ops playbook.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uptime isn\u2019t magic &#8211; it\u2019s discipline. Two things create it: observability (you can see what\u2019s happening) and alerts (you learn about trouble before your users do). Basic monitoring is the minimal set of checks and metrics that watch your site and infrastructure 24\/7 and notify the right people when something goes wrong. This guide gives [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":5913,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-7767","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-webdev","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Uptime 101: Set Up Monitoring and Alerts - Unihost.com Blog<\/title>\n<meta name=\"description\" content=\"Set up basic monitoring and alerts: HTTP checks, key metrics, thresholds and escalations. Boost your uptime with Unihost.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Uptime 101: Set Up Monitoring and Alerts - Unihost.com Blog\" \/>\n<meta property=\"og:description\" content=\"Set up basic monitoring and alerts: HTTP checks, key metrics, thresholds and escalations. Boost your uptime with Unihost.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/\" \/>\n<meta property=\"og:site_name\" content=\"Unihost.com Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/unihost\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-06T18:51:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-18T11:34:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/unihost.com\/blog\/minio.php?2017\/03\/logo7.png\" \/>\n\t<meta property=\"og:image:width\" content=\"200\" \/>\n\t<meta property=\"og:image:height\" content=\"34\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Alex Shevchuk\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@unihost\" \/>\n<meta name=\"twitter:site\" content=\"@unihost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex Shevchuk\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/\"},\"author\":{\"name\":\"Alex Shevchuk\",\"@id\":\"https:\/\/unihost.com\/blog\/#\/schema\/person\/92e127fbc9a0ce4ca134886442a54474\"},\"headline\":\"Uptime 101: Set Up Monitoring and Alerts\",\"datePublished\":\"2025-11-06T18:51:18+00:00\",\"dateModified\":\"2026-03-18T11:34:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/\"},\"wordCount\":1710,\"publisher\":{\"@id\":\"https:\/\/unihost.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/unihost.com\/blog\/minio.php?2025\/01\/security.svg\",\"articleSection\":[\"WebDev\"],\"inLanguage\":\"en\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/\",\"url\":\"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/\",\"name\":\"Uptime 101: Set Up Monitoring and Alerts - Unihost.com Blog\",\"isPartOf\":{\"@id\":\"https:\/\/unihost.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/unihost.com\/blog\/minio.php?2025\/01\/security.svg\",\"datePublished\":\"2025-11-06T18:51:18+00:00\",\"dateModified\":\"2026-03-18T11:34:00+00:00\",\"description\":\"Set up basic monitoring and alerts: HTTP checks, key metrics, thresholds and escalations. Boost your uptime with Unihost.\",\"breadcrumb\":{\"@id\":\"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/#primaryimage\",\"url\":\"https:\/\/unihost.com\/blog\/minio.php?2025\/01\/security.svg\",\"contentUrl\":\"https:\/\/unihost.com\/blog\/minio.php?2025\/01\/security.svg\",\"width\":1160,\"height\":500},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Unihost\",\"item\":\"https:\/\/unihost.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\/\/unihost.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Uptime 101: Set Up Monitoring and Alerts\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/unihost.com\/blog\/#website\",\"url\":\"https:\/\/unihost.com\/blog\/\",\"name\":\"Unihost.com Blog\",\"description\":\"Web hosting, Online marketing and Web News\",\"publisher\":{\"@id\":\"https:\/\/unihost.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/unihost.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/unihost.com\/blog\/#organization\",\"name\":\"Unihost\",\"alternateName\":\"Unihost\",\"url\":\"https:\/\/unihost.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/unihost.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/unihost.com\/blog\/minio.php?2026\/01\/minio.png\",\"contentUrl\":\"https:\/\/unihost.com\/blog\/minio.php?2026\/01\/minio.png\",\"width\":300,\"height\":300,\"caption\":\"Unihost\"},\"image\":{\"@id\":\"https:\/\/unihost.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/unihost\",\"https:\/\/x.com\/unihost\",\"https:\/\/instagram.com\/unihost\",\"https:\/\/www.linkedin.com\/company\/unihost-com\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/unihost.com\/blog\/#\/schema\/person\/92e127fbc9a0ce4ca134886442a54474\",\"name\":\"Alex Shevchuk\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/unihost.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/37068b7d8dd334ae091ca77c586798519f5157257b25f6bc5dbe0daa5f828510?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/37068b7d8dd334ae091ca77c586798519f5157257b25f6bc5dbe0daa5f828510?s=96&d=mm&r=g\",\"caption\":\"Alex Shevchuk\"},\"description\":\"Alex Shevchuk is the Head of DevOps with extensive experience in building, scaling, and maintaining reliable cloud and on-premise infrastructure. He specializes in automation, high-availability systems, CI\/CD pipelines, and DevOps best practices, helping teams deliver stable and scalable production environments. LinkedIn: https:\/\/www.linkedin.com\/in\/alex1shevchuk\/\",\"url\":\"https:\/\/unihost.com\/blog\/author\/alex-shevchuk\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Uptime 101: Set Up Monitoring and Alerts - Unihost.com Blog","description":"Set up basic monitoring and alerts: HTTP checks, key metrics, thresholds and escalations. Boost your uptime with Unihost.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/","og_locale":"en_US","og_type":"article","og_title":"Uptime 101: Set Up Monitoring and Alerts - Unihost.com Blog","og_description":"Set up basic monitoring and alerts: HTTP checks, key metrics, thresholds and escalations. Boost your uptime with Unihost.","og_url":"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/","og_site_name":"Unihost.com Blog","article_publisher":"https:\/\/www.facebook.com\/unihost","article_published_time":"2025-11-06T18:51:18+00:00","article_modified_time":"2026-03-18T11:34:00+00:00","og_image":[{"width":200,"height":34,"url":"https:\/\/unihost.com\/blog\/minio.php?2017\/03\/logo7.png","type":"image\/png"}],"author":"Alex Shevchuk","twitter_card":"summary_large_image","twitter_creator":"@unihost","twitter_site":"@unihost","twitter_misc":{"Written by":"Alex Shevchuk","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/#article","isPartOf":{"@id":"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/"},"author":{"name":"Alex Shevchuk","@id":"https:\/\/unihost.com\/blog\/#\/schema\/person\/92e127fbc9a0ce4ca134886442a54474"},"headline":"Uptime 101: Set Up Monitoring and Alerts","datePublished":"2025-11-06T18:51:18+00:00","dateModified":"2026-03-18T11:34:00+00:00","mainEntityOfPage":{"@id":"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/"},"wordCount":1710,"publisher":{"@id":"https:\/\/unihost.com\/blog\/#organization"},"image":{"@id":"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/#primaryimage"},"thumbnailUrl":"https:\/\/unihost.com\/blog\/minio.php?2025\/01\/security.svg","articleSection":["WebDev"],"inLanguage":"en"},{"@type":"WebPage","@id":"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/","url":"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/","name":"Uptime 101: Set Up Monitoring and Alerts - Unihost.com Blog","isPartOf":{"@id":"https:\/\/unihost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/#primaryimage"},"image":{"@id":"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/#primaryimage"},"thumbnailUrl":"https:\/\/unihost.com\/blog\/minio.php?2025\/01\/security.svg","datePublished":"2025-11-06T18:51:18+00:00","dateModified":"2026-03-18T11:34:00+00:00","description":"Set up basic monitoring and alerts: HTTP checks, key metrics, thresholds and escalations. Boost your uptime with Unihost.","breadcrumb":{"@id":"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/"]}]},{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/#primaryimage","url":"https:\/\/unihost.com\/blog\/minio.php?2025\/01\/security.svg","contentUrl":"https:\/\/unihost.com\/blog\/minio.php?2025\/01\/security.svg","width":1160,"height":500},{"@type":"BreadcrumbList","@id":"https:\/\/unihost.com\/blog\/uptime-101-basic-monitoring-alerts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Unihost","item":"https:\/\/unihost.com\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/unihost.com\/blog\/"},{"@type":"ListItem","position":3,"name":"Uptime 101: Set Up Monitoring and Alerts"}]},{"@type":"WebSite","@id":"https:\/\/unihost.com\/blog\/#website","url":"https:\/\/unihost.com\/blog\/","name":"Unihost.com Blog","description":"Web hosting, Online marketing and Web News","publisher":{"@id":"https:\/\/unihost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/unihost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"},{"@type":"Organization","@id":"https:\/\/unihost.com\/blog\/#organization","name":"Unihost","alternateName":"Unihost","url":"https:\/\/unihost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/unihost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/unihost.com\/blog\/minio.php?2026\/01\/minio.png","contentUrl":"https:\/\/unihost.com\/blog\/minio.php?2026\/01\/minio.png","width":300,"height":300,"caption":"Unihost"},"image":{"@id":"https:\/\/unihost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/unihost","https:\/\/x.com\/unihost","https:\/\/instagram.com\/unihost","https:\/\/www.linkedin.com\/company\/unihost-com"]},{"@type":"Person","@id":"https:\/\/unihost.com\/blog\/#\/schema\/person\/92e127fbc9a0ce4ca134886442a54474","name":"Alex Shevchuk","image":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/unihost.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/37068b7d8dd334ae091ca77c586798519f5157257b25f6bc5dbe0daa5f828510?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/37068b7d8dd334ae091ca77c586798519f5157257b25f6bc5dbe0daa5f828510?s=96&d=mm&r=g","caption":"Alex Shevchuk"},"description":"Alex Shevchuk is the Head of DevOps with extensive experience in building, scaling, and maintaining reliable cloud and on-premise infrastructure. He specializes in automation, high-availability systems, CI\/CD pipelines, and DevOps best practices, helping teams deliver stable and scalable production environments. LinkedIn: https:\/\/www.linkedin.com\/in\/alex1shevchuk\/","url":"https:\/\/unihost.com\/blog\/author\/alex-shevchuk\/"}]}},"_links":{"self":[{"href":"https:\/\/unihost.com\/blog\/wp-json\/wp\/v2\/posts\/7767","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unihost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unihost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unihost.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/unihost.com\/blog\/wp-json\/wp\/v2\/comments?post=7767"}],"version-history":[{"count":4,"href":"https:\/\/unihost.com\/blog\/wp-json\/wp\/v2\/posts\/7767\/revisions"}],"predecessor-version":[{"id":8341,"href":"https:\/\/unihost.com\/blog\/wp-json\/wp\/v2\/posts\/7767\/revisions\/8341"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/unihost.com\/blog\/wp-json\/wp\/v2\/media\/5913"}],"wp:attachment":[{"href":"https:\/\/unihost.com\/blog\/wp-json\/wp\/v2\/media?parent=7767"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unihost.com\/blog\/wp-json\/wp\/v2\/categories?post=7767"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unihost.com\/blog\/wp-json\/wp\/v2\/tags?post=7767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}