[{"data":1,"prerenderedAt":185},["ShallowReactive",2],{"seo-verification":3,"blog-self-host-zabbix-vps-infrastructure-monitoring-ma-en":6,"promo-bar-likely":184},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-self-host-zabbix-vps-infrastructure-monitoring-ma-en",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":120,"ctaBody":121,"ctaButton":122,"ctaUrl":123,"relatedPosts":124},572,"self-host-zabbix-vps-infrastructure-monitoring",{"fr":12,"en":10,"ar":13,"es":14},"self-host-zabbix-vps","استضافة-zabbix-على-vps-مراقبة-البنية-التحتية","autoalojar-zabbix-vps-monitorizacion-infraestructura","Zabbix on a VPS: Monitor Servers, Services and Network","Install Zabbix on a VPS with Docker Compose: server, SNMP network and website monitoring, triggers and alerts, behind nginx over HTTPS.",6,0,false,"2026-11-09T00:00:00+00:00","2026-11-09T20:55:08+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-zabbix-vps-poster.svg",{"categorySlug":34,"appSlug":35},"monitoring-observability","zabbix","A disk filling up overnight, a service stopping without warning, a saturated network link: without monitoring, a customer is the one who tells you. Zabbix is an open-source monitoring platform (AGPL-3.0 licence) that watches servers, applications and network devices, and notifies the right person as soon as a threshold is crossed. This guide installs it on a VPS with Docker Compose, puts it behind nginx over HTTPS, links the VPS to its own agent, then adds your other servers and your alerts.",[38,42,52,82,85,98,102,105,108,111,114,117],{"type":39,"title":40,"body":41},"h2","What Zabbix does","Zabbix collects **measurements** — CPU load, free memory, disk space, a service's state, a page's response time — and compares them with **triggers**. When an expression becomes true, for example \"less than 10% free space for five minutes\", Zabbix opens a **problem**, shows it on its dashboards and runs the planned **actions**: an email, a Telegram message, a webhook.\n\nMeasurements arrive through several paths: the Zabbix **agent** installed on each server, the **SNMP** protocol for routers, switches and UPS units, **web scenarios** for websites and APIs, or direct queries to a database. Ready-made **templates** group the right items and triggers for Linux, Windows, nginx, MySQL, PostgreSQL or Docker.",{"type":43,"title":44,"items":45},"ul","What Zabbix brings",[46,47,48,49,50,51],"**Linux and Windows agents** — CPU, memory, disks, network, services, processes and logs.","**SNMP** — network devices monitored without an agent, with automatic interface discovery.","**Triggers and escalations** — readable thresholds, dependencies between hosts, alerts that move up a level if nobody reacts.","**Web scenarios** — availability, response time and content of a sequence of pages or API calls.","**Dashboards, maps and reports** — for the operations team as well as for your clients.","**Permissions per host group** — each user only sees what concerns them.",{"type":53,"title":54,"headers":55,"rows":59},"comparison","Zabbix compared with other options",[5,56,57,58],"Zabbix","Prometheus + Grafana","Uptime Kuma",[60,65,70,74,79],[61,62,63,64],"What is monitored","Servers, services, network, websites","Application and container metrics","Availability of sites and ports",[66,67,68,69],"Collection","Agent, SNMP, HTTP, databases","Scraped exporters","HTTP, TCP and ping probes",[71,72,73,72],"Configuration","Web interface","YAML files",[75,76,77,78],"Alerts","Built in, with escalations","Separate Alertmanager","Built in",[80,81,81,81],"Cost","Price of the VPS",{"type":39,"title":83,"body":84},"Prerequisites","An Ubuntu 24.04 VPS with 2 GB of RAM and 20 GB of disk for a few dozen hosts, Docker and the Compose plugin installed, and a subdomain pointing to the VPS, for example `zabbix.example.com`. Plan more disk if you keep a long history: the PostgreSQL database grows with the number of measurements.",{"type":86,"title":87,"steps":88},"steps","Install Zabbix with Docker Compose",[89,92,95],{"title":90,"body":91},"Prepare the directory and the database password","The `.env` file holds the PostgreSQL password, shared by the server and the web interface.\n```bash\nmkdir -p \u002Fopt\u002Fzabbix && cd \u002Fopt\u002Fzabbix\necho \"DB_PASSWORD=$(openssl rand -hex 16)\" > .env\nchmod 600 .env\n```",{"title":93,"body":94},"Write the docker-compose.yml file","Four services: the Zabbix server, the web interface (nginx and PHP), the VPS agent and PostgreSQL. Only the web interface is published, and only on the loopback: nginx will handle HTTPS.\n```yaml\nservices:\n  zabbix-server:\n    image: zabbix\u002Fzabbix-server-pgsql:alpine-8.0.0\n    restart: unless-stopped\n    depends_on:\n      database:\n        condition: service_healthy\n    environment:\n      DB_SERVER_HOST: database\n      POSTGRES_USER: zabbix\n      POSTGRES_PASSWORD: ${DB_PASSWORD}\n      POSTGRES_DB: zabbix\n  zabbix-web:\n    image: zabbix\u002Fzabbix-web-nginx-pgsql:alpine-8.0.0\n    restart: unless-stopped\n    depends_on:\n      - zabbix-server\n    ports:\n      - \"127.0.0.1:8080:8080\"\n    environment:\n      ZBX_SERVER_HOST: zabbix-server\n      DB_SERVER_HOST: database\n      POSTGRES_USER: zabbix\n      POSTGRES_PASSWORD: ${DB_PASSWORD}\n      POSTGRES_DB: zabbix\n      PHP_TZ: Africa\u002FCasablanca\n  zabbix-agent:\n    image: zabbix\u002Fzabbix-agent2:alpine-8.0.0\n    restart: unless-stopped\n    environment:\n      ZBX_HOSTNAME: \"Zabbix server\"\n      ZBX_SERVER_HOST: zabbix-server\n  database:\n    image: postgres:17.11-alpine\n    restart: unless-stopped\n    environment:\n      POSTGRES_USER: zabbix\n      POSTGRES_PASSWORD: ${DB_PASSWORD}\n      POSTGRES_DB: zabbix\n    volumes:\n      - zabbix-db:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n    healthcheck:\n      test: [\"CMD-SHELL\", \"pg_isready -U zabbix -d zabbix\"]\n      interval: 5s\n      retries: 12\nvolumes:\n  zabbix-db: {}\n```",{"title":96,"body":97},"Start the stack","On first start, the server creates the database schema; allow a minute before the interface answers.\n```bash\ndocker compose up -d\ndocker compose ps\ncurl -fsS -o \u002Fdev\u002Fnull -w '%{http_code}\\n' http:\u002F\u002F127.0.0.1:8080\u002F\n```",{"type":99,"title":100,"body":101},"tip","Change the factory password first","A fresh Zabbix installation opens the `Admin` account with the password `zabbix`, known to everyone. Log in immediately and replace it in User settings, Profile, Change password — even before putting the interface behind its domain name.",{"type":39,"title":103,"body":104},"Put Zabbix behind nginx over HTTPS","Port 8080 only listens on `127.0.0.1`: nginx, installed on the host, receives public traffic and relays it. Certbot then adds the certificate and the redirect to HTTPS.\n\n```nginx\nserver {\n    listen 80;\n    server_name zabbix.example.com;\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:8080;\n        proxy_set_header Host $host;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}\n```\n\n```bash\ncertbot --nginx -d zabbix.example.com\n```",{"type":39,"title":106,"body":107},"Link the \"Zabbix server\" host to the VPS agent","Zabbix creates a \"Zabbix server\" host out of the box, which polls an agent on `127.0.0.1`. In Docker, the agent lives in its own container: open Data collection, then Hosts, click \"Zabbix server\" and replace the Agent interface with the DNS name `zabbix-agent`, with \"Connect to\" set to DNS. A minute later, the ZBX indicator turns green and Latest data shows the VPS's CPU, memory and load.",{"type":39,"title":109,"body":110},"Monitor your other servers","On each server, install the `zabbix-agent2` package from your distribution or from the official Zabbix repository, then declare the public IP of your Zabbix VPS as the allowed server. In passive mode, the Zabbix server polls the agent on port 10050: open that port to that IP only.\n\n```ini\n# \u002Fetc\u002Fzabbix\u002Fzabbix_agent2.conf\nServer=203.0.113.10\nHostname=web-01\n```\n\n```bash\nsystemctl restart zabbix-agent2\nufw allow from 203.0.113.10 to any port 10050 proto tcp\n```\n\nIn Data collection, then Hosts, create the host `web-01` with its IP and the \"Linux by Zabbix agent\" template. Active mode, where the agent pushes its data to the server's port 10051, requires opening that port on the Zabbix VPS: restrict it to your servers' IPs.",{"type":39,"title":112,"body":113},"Receive alerts","In Alerts, then Media types, enable and configure email (SMTP server, sender), Telegram or Slack — Zabbix ships ready-made types for dozens of services. Then add the media to your user in User settings, Profile, Media, and enable the \"Report problems to Zabbix administrators\" action in Alerts, Actions. Test it by stopping a server's agent: a \"Zabbix agent is not available\" problem should reach you.",{"type":39,"title":115,"body":116},"Back up and update","All configuration and history live in PostgreSQL. A daily `pg_dump` backup is enough:\n\n```bash\ncd \u002Fopt\u002Fzabbix\ndocker compose exec -T database pg_dump -U zabbix zabbix | gzip > zabbix-$(date +%F).sql.gz\n```\n\nTo update, change the version number of the three Zabbix images in `docker-compose.yml`, then run `docker compose pull && docker compose up -d`: the server upgrades the schema on start. Back up the database just before, and read the release notes before moving to a new major branch.",{"type":39,"title":118,"body":119},"One-click installation on ServOrbit","From the Marketplace in your client area, Zabbix installs on a ServOrbit VPS without writing a line: server, web interface, PostgreSQL and VPS agent are deployed, the \"Zabbix server\" host is already linked to its agent, the factory password is replaced by a generated one shown in your client area, and the interface is published over HTTPS on your domain or on the VPS's free subdomain.","Monitor your fleet from your VPS","A ServOrbit Ubuntu 24.04 VPS with 2 GB of RAM is enough to start Zabbix. One-click installation from the Marketplace, HTTPS on your domain or on the VPS's free subdomain, administrator password generated for you.","Install Zabbix","\u002Fapplications\u002Fmonitoring-observability\u002Fzabbix",[125,149,166],{"id":126,"slug":127,"slugs":128,"title":132,"excerpt":133,"readTime":134,"views":135,"isPinned":19,"noindex":19,"publishedAt":136,"updatedAt":137,"category":138,"categories":144,"featuredImage":30,"bgImage":31,"posterImage":146,"relatedSolution":147},106,"vps-monitoring-with-grafana-and-prometheus",{"fr":129,"en":127,"ar":130,"es":131},"monitoring-vps-grafana-prometheus","مراقبة-الخادم-الافتراضي-vps-باستخدام-grafana-و-prometheus","monitorizacion-vps-grafana-prometheus","VPS Monitoring with Grafana and Prometheus","Deploy Prometheus 3.x, Grafana 13.x, Node Exporter and Alertmanager on your VPS with Docker Compose. Dashboards, alerts and hardening.",11,1,"2026-03-06T00:00:00+00:00","2026-10-05T14:05:27+00:00",{"id":139,"name":140,"slug":141,"color":142,"icon":143},8,"Security & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[145],{"id":139,"name":140,"slug":141,"color":142,"icon":143},"\u002Fblog\u002Fcovers\u002Fmonitoring-vps-grafana-prometheus-poster.svg",{"categorySlug":34,"appSlug":148},"grafana",{"id":150,"slug":151,"slugs":152,"title":156,"excerpt":157,"readTime":139,"views":18,"isPinned":19,"noindex":19,"publishedAt":158,"updatedAt":159,"category":160,"categories":161,"featuredImage":30,"bgImage":31,"posterImage":163,"relatedSolution":164},105,"monitoring-your-vps-with-uptime-kuma",{"fr":153,"en":151,"ar":154,"es":155},"superviser-vps-uptime-kuma","مراقبة-خادمك-الافتراضي-vps-باستخدام-uptime-kuma","supervisar-vps-con-uptime-kuma","Monitoring your VPS with Uptime Kuma","Deploy Uptime Kuma on your VPS to monitor your sites and services self-hosted, with alerts and a public status page.","2026-03-07T00:00:00+00:00","2026-11-09T20:55:19+00:00",{"id":139,"name":140,"slug":141,"color":142,"icon":143},[162],{"id":139,"name":140,"slug":141,"color":142,"icon":143},"\u002Fblog\u002Fcovers\u002Fsuperviser-vps-uptime-kuma-poster.svg",{"categorySlug":34,"appSlug":165},"uptime-kuma",{"id":167,"slug":168,"slugs":169,"title":173,"excerpt":174,"readTime":175,"views":135,"isPinned":19,"noindex":19,"publishedAt":176,"updatedAt":177,"category":178,"categories":179,"featuredImage":30,"bgImage":31,"posterImage":181,"relatedSolution":182},107,"monitor-your-vps-in-real-time-with-netdata",{"fr":170,"en":168,"ar":171,"es":172},"monitorer-vps-netdata","راقب-خادمك-الافتراضي-vps-في-الوقت-الفعلي-باستخدام-netdata","monitorizar-vps-en-tiempo-real-con-netdata","Monitor your VPS in real time with Netdata","Install Netdata on your VPS for per-second real-time monitoring: thousands of metrics, zero configuration, alerts included.",3,"2026-03-05T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":139,"name":140,"slug":141,"color":142,"icon":143},[180],{"id":139,"name":140,"slug":141,"color":142,"icon":143},"\u002Fblog\u002Fcovers\u002Fmonitorer-vps-netdata-poster.svg",{"categorySlug":34,"appSlug":183},"netdata",true,1794270498809]