SSD Nodes Learn Hosting plans →
मार्गदर्शक Matt Connorद्वारे Matt Connor · अपडेटेड 2026-09-28

Ubuntu 24.04 वर Zabbix 7.0 LTS कसे इंस्टॉल करावे

Ubuntu 24.04 वर Zabbix 7.0 LTS इंस्टॉल करण्याची संपूर्ण प्रक्रिया. यात रिपॉझिटरी सेटअप, MySQL स्कीमा आणि nginx कॉन्फिगरेशनमधील महत्त्वाच्या त्रुटी कशा सोडवायच्या हे दिले आहे.

तुम्ही काय तयार करत आहात

तुम्ही एकाच Ubuntu 24.04 VPS वर संपूर्ण Zabbix 7.0 LTS स्टॅक चालवणार आहात: यामध्ये zabbix-server डेमन जो पोलिंग आणि अलर्ट देतो, MariaDB/MySQL डेटाबेस जो प्रत्येक मेट्रिक साठवतो, nginx द्वारे सर्व्ह केलेला PHP फ्रंटएंड आणि स्वतः सर्व्हरवरून मेट्रिक्स गोळा करणारा zabbix-agent2 यांचा समावेश आहे. एकदा हे सेटअप पूर्ण झाले की, तुम्ही ते दुसऱ्या सर्व्हरला जोडू शकता, टेम्पलेट अटॅच करू शकता आणि डिस्क भरल्यास किंवा एखादी सेवा बंद पडल्यास त्वरित ईमेल मिळवू शकता.

Zabbix हे केवळ स्टेटस-पेज टूलपेक्षा अधिक प्रगत आहे: ही एक रिअल-टाइम टाइम-सीरीज सिस्टीम आहे ज्यामध्ये टेम्पलेट्स, ट्रिगर्स, एस्केलेशन आणि हिस्टरी रिटेंशनची सुविधा आहे. बहुतेक समस्या अशा तीन पायऱ्यांमध्ये येतात ज्या लोक दुर्लक्षित करतात: डेटाबेस स्कीमा इम्पोर्ट करणे, सर्व्हरला खरोखर वाचता येईल असा डेटाबेस पासवर्ड सेट करणे आणि nginx कॉन्फिगरेशनमधील दोन ओळी अनकमेंट करणे. या गोष्टी योग्य केल्यास उर्वरित प्रक्रिया सोपी होते. जर तुम्हाला फक्त अप/डाउन चेक आणि शेअर करण्यायोग्य स्टेटस पेज हवे असेल, तर एक हलके Uptime Kuma स्टेटस मॉनिटर एका कंटेनरमध्ये हे काम करते; Zabbix तेव्हाच उपयुक्त ठरते जेव्हा तुम्हाला अनेक होस्टवर प्रति-मेट्रिक थ्रेशोल्ड आणि एस्केलेशनची आवश्यकता असते.

7.0 LTS आवृत्ती वापरा: याचे सर्व्हर, फ्रंटएंड, agent2 आणि स्कीमा एकाच आवृत्तीचे आहेत आणि याला अनेक वर्षांपर्यंत सुरक्षा अपडेट्स मिळतात. खाली दिलेली रिपॉझिटरी फाईलचे नाव कॉपी करण्यापूर्वी, अधिकृत Zabbix डाउनलोड पेज एकदा तपासा. latest रिलीज पॅकेज नेहमी नवीन 7.0 पॉइंट रिलीजवर रिझॉल्व्ह होते, परंतु जर तुम्हाला एखादी विशिष्ट 7.0-N बिल्ड पिन करायची असेल, तर त्या पेजवर ती फाईल नेम देखील दिलेली असते. यातील इतर सर्व कमांड्स संपूर्ण 7.0 लाइनसाठी स्थिर आहेत.

आकारमान, पोर्ट्स आणि पूर्वअटी

root किंवा sudo ॲक्सेस असलेल्या नवीन Ubuntu 24.04 KVM VPS चा वापर करा. संसाधनांबाबत स्पष्ट सांगायचे तर, एकाच सर्व्हरवर सर्व्हर, डेटाबेस, Nginx आणि PHP चालवून काही होस्ट्सचे मॉनिटरिंग करण्यासाठी 2 GB RAM आणि दोन vCPUs हे किमान वास्तववादी प्रमाण आहे. 1 GB च्या सर्व्हरवर सिस्टिम सुरू होते, परंतु डेटाबेसचा इतिहास वाढत गेल्यावर संसाधनांची कमतरता भासते; काही डझन होस्ट्सच्या पुढे गेल्यास 4 GB RAM चे नियोजन करा आणि शंभरहून अधिक होस्ट्स असल्यास डेटाबेस वेगळ्या सर्व्हरवर हलवा. तुम्ही किती आयटम्स गोळा करता आणि किती काळ इतिहास जतन करता यावर डिस्कचा वापर अवलंबून असतो; सुरुवातीला काही GB जागा राखून ठेवा, आणि तुम्ही सेट केलेल्या रिटेंशन विंडोनुसार 'housekeeper' जुना डेटा काढून टाकते.

पोर्ट्स: फ्रंटएंडसाठी 80 आणि 443 पोर्ट्स, जे सार्वजनिक किंवा तुमच्या स्वतःच्या IP पुरते मर्यादित ठेवा. सक्रिय एजंट्सकडून डेटा मिळवण्यासाठी सर्व्हर TCP 10051 वर लिसन करतो आणि सर्व्हरकडून पोलिंग करण्यासाठी प्रत्येक एजंट TCP 10050 वर लिसन करतो. जर समोर फायरवॉल असेल, तर फक्त आवश्यक पोर्ट्सच उघडा. फ्रंटएंडसाठी DNS A record असणे फायदेशीर ठरते, कारण तुम्हाला त्यावर अधिकृत प्रमाणपत्र (real certificate) हवे असेल. Zabbix सर्व्हर तुमच्या इतर सर्व सेवांवर लक्ष ठेवतो, त्यामुळे त्याला केवळ नंतर जोडलेली गोष्ट न मानता 2026 मध्ये चालवण्यायोग्य व्यापक सेल्फ-होस्टिंग स्टॅक चा भाग मानणे योग्य ठरेल.

पायरी 1, अधिकृत Zabbix 7.0 रिपॉझिटरी जोडा

zabbix-release पॅकेज एकच काम करते: ते तुमच्या सिस्टिमवर apt सोर्स लिस्ट आणि साइनिंग की (signing key) स्थापित करते. ते इंस्टॉल करा आणि त्यानंतर इंडेक्स रिफ्रेश करा.

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo apt update

जर wget ने 404 Not Found असे उत्तर दिले, तर फाईलचे नाव बदलले आहे. Zabbix डाउनलोड पेज उघडा, Ubuntu 24.04 निवडा आणि तिथे दिसणारा अचूक zabbix-release URL कॉपी करा. एक यशस्वी apt update मध्ये repo.zabbix.com ओळ दिसते आणि कोणतीही की (key) वॉर्निंग येत नाही; The following signatures couldn't be verified because the public key is not available चा अर्थ असा की रिलीज पॅकेजने त्याची की इंस्टॉल केलेली नाही, म्हणून dpkg -i पुन्हा चालवा आणि पुन्हा अपडेट करा.

पायरी 2, सर्व्हर, फ्रंटएंड आणि एजंट इन्स्टॉल करा

MySQL वर आधारित सर्व्हर, PHP फ्रंटएंड, nginx कॉन्फिगरेशन, SQL स्कीमा फाइल्स आणि agent2 एकाच वेळी इन्स्टॉल करा.

sudo apt install -y zabbix-server-mysql zabbix-frontend-php \
  zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

zabbix-server-mysql हा MySQL/MariaDB साठी कंपाईल केलेला सर्व्हर आहे; PostgreSQL साठी त्याऐवजी zabbix-server-pgsql इन्स्टॉल करा आणि खालील डेटाबेस पायऱ्यांमध्ये आवश्यक बदल करा. zabbix-sql-scripts मध्ये तो स्कीमा असतो जो तुम्ही पुढे इम्पोर्ट करता, 7.0 आवृत्तीमध्ये हे एक स्वतंत्र पॅकेज आहे आणि ते इन्स्टॉल करायला विसरल्यामुळेच नंतर इम्पोर्ट पाथ सापडत नाही. यापैकी कोणतेही पॅकेज डेटाबेस इंजिन इन्स्टॉल करत नाही, त्यामुळे जर सर्व्हरवर आधीच MariaDB नसेल, तर ते आता इन्स्टॉल करा.

sudo apt install -y mariadb-server
sudo systemctl enable --now mariadb

पायरी 3, योग्य character set वापरून डेटाबेस तयार करणे

Zabbix मध्ये collation बाबत कडक नियम आहेत: डेटाबेस utf8mb4 आणि utf8mb4_bin सह असणे आवश्यक आहे, अन्यथा foreign-key त्रुटींमुळे import प्रक्रिया मध्येच थांबते. sudo mysql वापरून root shell उघडा आणि खालील कमांड चालवा:

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER zabbix@localhost IDENTIFIED BY 'choose-a-strong-password';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;

ती SET GLOBAL ओळ import साठी एक सुरक्षा उपाय आहे. Zabbix schema स्टोअर्ड फंक्शन्स तयार करतो आणि binary logging सुरू असताना zabbix सारखे non-SUPER खाते ती तयार करू शकत नाही. MySQL 8 मध्ये binary logging डीफॉल्टनुसार सुरू असते आणि काही व्यवस्थापित MariaDB बिल्ड्समध्येही ते असते (स्टॉक MariaDB मध्ये नसते). जर सर्व्हरवर binary logging सुरू असेल आणि हा flag वापरला नाही, तर import प्रक्रिया ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled त्रुटीसह थांबते. root म्हणून हे सेट केल्याने ती अडचण दूर होते; import पूर्ण झाल्यावर तुम्ही ते पुन्हा बंद करू शकता. पासवर्डची नोंद अचूक ठेवा, कारण सर्व्हर कॉन्फिगरेशनमध्ये तो तंतोतंत तसाच असणे आवश्यक आहे.

पायरी 4, स्कीमा इम्पोर्ट करणे (ही पायरी अनेकदा दुर्लक्षित केली जाते)

नवीन फ्रंटएंड लोड न होण्याचे हे सर्वात सामान्य कारण आहे: तुम्ही तयार केलेला डेटाबेस रिकामा आहे. zabbix-sql-scripts मध्ये दिलेला स्कीमा त्यात लोड करा.

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | \
  mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

हे zabbix पासवर्डसाठी विचारते, लहान VPS वर तीस ते साठ सेकंद चालते आणि यशस्वी झाल्यावर काहीही आउटपुट देत नाही; येथे शांत राहणे म्हणजे प्रक्रिया यशस्वी झाली आहे. zcat: /usr/share/zabbix-sql-scripts/mysql/server.sql.gz: No such file or directory चा अर्थ असा की zabbix-sql-scripts पॅकेज इन्स्टॉल केलेले नाही (पायरी 2 कडे परत जा). ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' चा अर्थ असा की पायरी 3 मधील पासवर्ड किंवा ग्रँट चुकीचे आहे. एकदा प्रक्रिया पूर्ण झाली की, सेफ्टी फ्लॅग पुन्हा बंद करा:

sudo mysql -e "SET GLOBAL log_bin_trust_function_creators = 0;"

sudo mysql -e "SELECT COUNT(*) FROM zabbix.users;" वापरून लोड झाल्याची खात्री करा, जर एखादा नंबर आला (doesn't exist एरर नाही), तर याचा अर्थ स्कीमा यशस्वीरित्या लोड झाला आहे.

पायरी 5, zabbix_server.conf मध्ये डेटाबेस पासवर्ड सेट करा

सर्व्हर त्याचे डेटाबेस क्रेडेंशियल्स /etc/zabbix/zabbix_server.conf मधून वाचतो. फक्त पासवर्ड सेट करणे आवश्यक आहे, DBName आणि DBUser हे आधीच zabbix वर डिफॉल्ट आहेत. # DBPassword= ओळ अनकमेंट करा आणि ती सेट करा:

DBName=zabbix
DBUser=zabbix
DBPassword=choose-a-strong-password

पासवर्ड हा पायरी 3 मध्ये वापरलेल्या पासवर्डशी तंतोतंत जुळणारा असावा. चुकीचा किंवा रिकामा DBPassword हे नंतर दिसणाऱ्या "Zabbix server is not running" या बॅनरचे मुख्य कारण असते: डेमन सुरू होतो, लॉगिन करण्यात अपयशी ठरतो आणि बंद होतो. स्क्रीनवर काहीही दिसत नाही, फक्त लॉगमध्ये माहिती मिळते.

पायरी 6, Nginx ला फ्रंटएंडकडे निर्देशित करा

zabbix-nginx-conf पॅकेज /etc/zabbix/nginx.conf वर एक सर्व्हर ब्लॉक इन्स्टॉल करते आणि त्याला /etc/nginx/conf.d/zabbix.conf मधून Nginx मध्ये लिंक करते, परंतु ते listen आणि server_name ओळी कमेंट केलेल्या स्थितीत देते. जोपर्यंत तुम्ही त्या एडिट करत नाही, तोपर्यंत Nginx Zabbix साठी काहीही सर्व्ह करत नाही:

server {
    listen          80;
    server_name     zabbix.example.com;
    ...
}

तुमचे डोमेन वापरा, किंवा जर तुमच्याकडे अद्याप DNS नसेल तर सर्व्हरचा सार्वजनिक IP वापरा. येथे दोन गोष्टी लक्षात ठेवा. Ubuntu ची डीफॉल्ट Nginx वेलकम साईट देखील पोर्ट 80 वर लिसन करते आणि तिला डीफॉल्ट सर्व्हर म्हणून चिन्हांकित केले आहे, त्यामुळे ज्या विनंतीचे नाव जुळत नाही अशा कोणत्याही विनंतीसाठी तीच लोड होते. तिला काढून टाका अन्यथा चुकीचे पेज लोड होईल: sudo rm -f /etc/nginx/sites-enabled/default. आणि जर /etc/nginx/conf.d/zabbix.conf काही कारणास्तव गहाळ असेल (पॅकेजिंगमधील एक ज्ञात त्रुटी), तर sudo ln -s /etc/zabbix/nginx.conf /etc/nginx/conf.d/zabbix.conf वापरून ती लिंक हाताने तयार करा. त्यानंतर चाचणी करा आणि रीलोड करा:

sudo nginx -t
sudo systemctl reload nginx

nginx -t ने test is successful प्रिंट केले पाहिजे. जर त्याऐवजी nginx: [emerg] a duplicate default server for 0.0.0.0:80 प्रिंट झाले, तर डीफॉल्ट साईट आणि Zabbix ब्लॉक दोन्ही default_server वर दावा करत आहेत, अशा वेळी डीफॉल्ट साईट काढून टाका आणि पुन्हा चाचणी करा. अनेकदा चाचणी केवळ conflicting server name वॉर्निंगसह यशस्वी होते, तरीही ब्राउझरमध्ये साधे वेलकम पेज दिसते: याचे कारण डीफॉल्ट साईट नावाशी जुळत नसतानाही विनंती स्वीकारत आहे, आणि तिला काढून टाकल्याने ही समस्या सुटते.

पायरी 7, सर्व्हिसेस सुरू करणे आणि enable करणे

सर्व्हर, एजंट, PHP-FPM आणि nginx सुरू करा आणि त्यांना enable करा, जेणेकरून रीबूटनंतरही त्या आपोआप सुरू होतील.

sudo systemctl restart zabbix-server zabbix-agent2 nginx php8.3-fpm
sudo systemctl enable  zabbix-server zabbix-agent2 nginx php8.3-fpm

Ubuntu 24.04 मध्ये PHP 8.3 असते, त्यामुळे FPM सर्व्हिस php8.3-fpm अशी आहे; zabbix-nginx-conf पॅकेज त्याचे फ्रंटएंड त्याच मास्टर अंतर्गत चालवते. सर्व्हर सुरू झाला आहे आणि चालू आहे याची खात्री करा:

sudo systemctl status zabbix-server --no-pager
sudo tail -n 20 /var/log/zabbix/zabbix_server.log

एक निरोगी लॉग सर्व्हर सुरू झाल्याच्या आणि त्याचे housekeeper, poller आणि trapper प्रोसेस चालू असल्याच्या माहितीसह संपतो. जर तुम्हाला [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' दिसत असेल, तर पायरी 5 मधील DBPassword जुळत नाहीये, ते दुरुस्त करा आणि पुन्हा सुरू करा. [Z3005] query failed: [1146] Table 'zabbix.dbversion' doesn't exist ओळीचा अर्थ असा आहे की तुम्ही पायरी 4 मधील स्कीमा इम्पोर्ट वगळला आहे, त्यामुळे सर्व्हरकडे वाचण्यासाठी काहीही नाही.

पायरी 8, वेब सेटअप विझार्ड पूर्ण करा

http://your-domain-or-ip वर ब्राउझ करा. Zabbix सेटअप विझार्ड उघडेल. खालीलप्रमाणे प्रक्रिया पूर्ण करा:

  1. Welcome, भाषा निवडा.
  2. Check of pre-requisites, प्रत्येक ओळ 'OK' दर्शविली पाहिजे; पॅकेज केलेले /etc/zabbix/php-fpm.conf पूल Zabbix ला आवश्यक असलेल्या PHP मर्यादा आधीच पूर्ण करते.
  3. Configure DB connection, डेटाबेस प्रकार MySQL निवडा, host localhost, port 0 (याचा अर्थ डीफॉल्ट पोर्ट किंवा सॉकेट), डेटाबेसचे नाव zabbix, वापरकर्ता zabbix आणि पायरी 3 मधील पासवर्ड प्रविष्ट करा. चुकीची क्रेडेन्शियल्स किंवा गहाळ स्कीमा असल्यास येथे त्रुटी दिसून येईल.
  4. Settings, Zabbix server host localhost, port 10051 तसेच ठेवा आणि इन्स्टॉलेशनला नाव द्या.
  5. Pre-installation summary, त्यानंतर Install वर क्लिक करा, विझार्ड /etc/zabbix/web/zabbix.conf.php लिहून पूर्ण करेल.
  6. Finish, Admin (मोठ्या लिपीतील A) वापरकर्तानाव आणि zabbix पासवर्ड वापरून लॉग इन करा आणि Users विभागात जाऊन तो पासवर्ड त्वरित बदला.

जर विझार्डने Cannot create the configuration file त्रुटी दर्शविली, तर याचा अर्थ वेब वापरकर्त्याला /etc/zabbix/web/ मध्ये लिहिण्याची परवानगी नाही. अशा वेळी, विझार्डने दिलेली zabbix.conf.php फाईल डाउनलोड करा, ती sudo वापरून योग्य ठिकाणी ठेवा आणि 'Finish' वर क्लिक करा.

पायरी 9, लोकल होस्ट जोडा आणि टेम्पलेट संलग्न करा

Zabbix स्वतःहून स्वतःचे मॉनिटरिंग करत नाही. Data collection → Hosts → Create host वर जा, होस्टचे नाव zabbix-server असे सेट करा, ते Linux servers ग्रुपमध्ये जोडा आणि IP 127.0.0.1 व पोर्ट 10050 सह एक Agent इंटरफेस जोडा. Templates अंतर्गत, Linux by Zabbix agent लिंक करा (हे passive-poll प्रकार आहे; Linux by Zabbix agent active मध्ये एजंट डेटा पुश करतो). सेव्ह करा.

एका मिनिटाच्या आत होस्टच्या ओळीवर हिरवे ZBX लेबल दिसेल आणि Monitoring → Latest data अंतर्गत मेट्रिक्स येण्यास सुरुवात होईल. लाल ZBX लेबलचा अर्थ असा आहे की सर्व्हर एजंटपर्यंत पोहोचू शकत नाही. ही एक त्रुटी नसून खाली स्पष्ट केलेली एक फेल्युअर मोड (failure mode) आहे.

पायरी 10, एक उपयुक्त ट्रिगर आणि ईमेल अलर्ट

Linux by Zabbix agent टेम्पलेटमध्ये आधीच हाय CPU, कमी मेमरी आणि फुल डिस्कसाठी ट्रिगर्स दिलेले असतात, त्यामुळे तुम्ही ते लिंक करताच तुम्हाला अलर्ट्स मिळतात. एखादा ट्रिगर कसा तयार केला जातो हे पाहण्यासाठी, तुमचा स्वतःचा ट्रिगर जोडा: होस्ट उघडा, Triggers → Create trigger वर जा, त्याला Root filesystem over 90% full on {HOST.NAME} असे नाव द्या, तीव्रता (severity) High सेट करा आणि खालील एक्सप्रेशन वापरा:

last(/zabbix-server/vfs.fs.dependent.size[/,pused])>90

vfs.fs.dependent.size[/,pused] हा टेम्पलेटच्या फाइलसिस्टम डिस्कव्हरीद्वारे रूट फाइलसिस्टमसाठी तयार केलेला 'percent-used' आयटम आहे (7.0 चे Linux टेम्पलेट vfs.fs.get एकदाच गोळा करते आणि त्यावरून प्रत्येक माउंटसाठी स्वतंत्र आयटम तयार करते), त्यामुळे अतिरिक्त डेटा गोळा न करताच हा ट्रिगर कार्यान्वित होतो. तो सेव्ह करा.

जोपर्यंत एखादी action कोणाला तरी सूचित करत नाही, तोपर्यंत ट्रिगर फक्त डॅशबोर्डवरील ओळीचा रंग बदलतो. Alerts → Media types → Email अंतर्गत, SMTP सर्व्हर, पोर्ट, पाठवणाऱ्याचा पत्ता, कनेक्शन सुरक्षा (सहसा STARTTLS) आणि कोणतेही रिले क्रेडेंशियल्स सेट करा, त्यानंतर Test वापरा. जर तिथे चाचणी अयशस्वी झाली, तर याचा अर्थ असा की कोणताही खरा अलर्ट येण्यापूर्वीच SMTP पाथ चुकीचा आहे. Users → Users → Admin → Media → Add अंतर्गत Admin युजरला एक ईमेल पत्ता द्या आणि कोणत्या तीव्रतेचे अलर्ट्स पाठवायचे आहेत ते निवडा. त्यानंतर Alerts → Actions → Trigger actions → Create action अंतर्गत ते कॉन्फिगर करा: Trigger severity >= Warning सारखी अट जोडा आणि Operations मध्ये Admin ला ईमेलद्वारे अलर्ट पाठवण्याची कृती निवडा. ते सेव्ह करून इनेबल करा. तुम्हाला चॅट वापरणे अधिक आवडते का? Zabbix 7.0 मध्ये Slack, Discord आणि Telegram साठी वेबहूक मीडिया टाइप्स दिलेले आहेत, ते ईमेलप्रमाणेच कॉन्फिगर करा आणि एखाद्या युजरला असाइन करा.

एजंट वापरून दुसऱ्या सर्व्हरचे मॉनिटरिंग करणे

दुसऱ्या सर्व्हरचे मॉनिटरिंग करण्यासाठी, तिथेही Zabbix रिपॉझिटरी जोडा. Ubuntu 24.04 मध्ये स्वतःचे Zabbix पॅकेज उपलब्ध नसतात, त्यामुळे फक्त एजंट इन्स्टॉल करा:

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo apt update
sudo apt install -y zabbix-agent2

/etc/zabbix/zabbix_agent2.conf एडिट करा, Server मध्ये Zabbix सर्व्हरचा IP सेट करा (पॅसिव्ह पोलिंगसाठी). ॲक्टिव्ह चेकसाठी, ServerActive आणि एक युनिक Hostname सेट करा, जो तुम्ही फ्रंटएंडमध्ये तयार केलेल्या होस्टशी जुळतो:

Server=10.0.0.10
ServerActive=10.0.0.10
Hostname=web-01

sudo systemctl restart zabbix-agent2 रन करा आणि Zabbix सर्व्हरकडून या मशीनवर TCP 10050 पोर्ट उघडा. रीस्टार्ट करणे महत्त्वाचे आहे: पॅकेज इन्स्टॉल होताच एजंट डिफॉल्ट Server=127.0.0.1 सह सुरू झाला होता आणि एजंट फाईल फक्त सुरू होतानाच वाचतो. enable --now वापरल्यास एजंट आधीच सुरू असल्याचे दिसेल आणि कोणताही बदल होणार नाही, परिणामी एजंट तुमच्या Zabbix सर्व्हरला नाकारत राहील. बूट होताना एजंट सुरू होणे आधीच सेट केलेले असते, कारण पॅकेजने युनिट इनेबल केलेले असते. फ्रंटएंडमध्ये परत जाऊन एक होस्ट तयार करा, ज्याचा Agent interface त्या मशीनच्या IP कडे निर्देश करेल, Linux टेम्पलेट लिंक करा आणि एका मिनिटाच्या आत रिपोर्टिंग सुरू होईल.

अपयशाचे प्रकार आणि दिसणारे संदेश

फ्रंटएंडवर Error connecting to database किंवा डेटाबेस एरर दिसते. विझार्डच्या DB स्टेपमध्ये, Access denied for user 'zabbix'@'localhost' (using password: YES) चा अर्थ असा की पासवर्ड स्टेप 3 शी जुळत नाही किंवा GRANT कधीही रन झालेला नाही. जर डेटाबेस कनेक्ट होत असेल पण फ्रंटएंड The frontend does not match Zabbix database किंवा Table 'zabbix.users' doesn't exist दर्शवत असेल, तर स्टेप 4 मधील स्कीमा इम्पोर्ट वगळला गेला आहे किंवा अयशस्वी झाला आहे; तो नव्याने तयार केलेल्या डेटाबेसमध्ये पुन्हा रन करा.

नारिंगी बॅनर: Zabbix server is not running: the information displayed may not be current. फ्रंटएंड सुरू आहे पण लाइव्ह सर्व्हरपर्यंत पोहोचू शकत नाही. याची तीन मुख्य कारणे आहेत, सर्वात संभाव्य कारण आधी दिले आहे. सर्व्हिस बंद आहे, systemctl status zabbix-server तपासा आणि ती सुरू करा. सर्व्हिस सुरू आहे पण डेटाबेसपर्यंत पोहोचू शकत नाही, लॉगमध्ये [Z3001] connection to database 'zabbix' failed: [1045] Access denied दिसते, ज्याचा अर्थ चुकीचा किंवा रिकामा DBPassword असा आहे. किंवा फ्रंटएंड चुकीच्या सर्व्हरकडे निर्देश करत आहे, जो /etc/zabbix/web/zabbix.conf.php मध्ये host localhost आणि port 10051 म्हणून साठवलेला आहे. Ubuntu वर डीफॉल्टनुसार SELinux नसते, त्यामुळे RHEL गाईड्समध्ये उल्लेख केलेले SELinux-socket चे कारण येथे लागू होत नाही; येथे बहुतेक वेळा डेटाबेस पासवर्ड किंवा बंद असलेली सर्व्हिस हेच कारण असते.

होस्टवर लाल ZBX लेबल दिसते; आयटम एरर Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused. एजंट चालू नाही किंवा लिसन करत नाही. systemctl status zabbix-agent2 तपासा आणि ListenPort=10050 कन्फर्म करा. "connection refused" ऐवजी टाइमआउट येणे म्हणजे फायरवॉल पोर्ट 10050 ड्रॉप करत आहे. संबंधित Received empty response from Zabbix Agent. Assuming that agent dropped connection because of access permissions. चा अर्थ असा की एजंट पोहोचण्यायोग्य आहे पण त्याच्या Server= ओळीमध्ये Zabbix सर्व्हरचा IP नमूद केलेला नाही, तो जोडा आणि एजंट रीस्टार्ट करा.

साधे nginx वेलकम पेज, किंवा 502 Bad Gateway. वेलकम पेजचा अर्थ असा की डीफॉल्ट साइट अजूनही इनेबल आहे किंवा Zabbix ब्लॉक लिंक केलेला नाही, /etc/nginx/sites-enabled/default काढून टाका आणि स्टेप 6 प्रमाणे /etc/nginx/conf.d/zabbix.conf अस्तित्वात असल्याची खात्री करा. 502 चा अर्थ असा की nginx ने PHP पर्यंत संपर्क साधला आहे पण PHP-FPM बंद आहे किंवा वेगळ्या सॉकेटवर लिसन करत आहे, php8.3-fpm सुरू करा आणि Zabbix ब्लॉक मधील fastcgi_pass सॉकेट चालू असलेल्या पूलशी जुळते का ते तपासा.

बॅकअप, अपग्रेड आणि TLS

डेटाबेस हा संपूर्ण इतिहासाचा भाग असतो, म्हणून mysqldump वापरून त्याचे वेळापत्रकानुसार बॅकअप घ्या आणि ही डंप फाईल सर्व्हरच्या बाहेर सुरक्षित ठेवा:

mysqldump --single-transaction zabbix | gzip > zabbix-$(date +%F).sql.gz

/etc/zabbix चे कॉन्फिगरेशन फाईल्स आकाराने लहान असतात आणि त्या जतन करणे फायदेशीर ठरते, परंतु त्या पुन्हा तयार करता येतात; डेटा मात्र पुन्हा मिळवता येत नाही. रिस्टोर करण्याची प्रक्रिया उलट असते: डेटाबेस तयार करा, डंप इम्पोर्ट करा आणि कॉन्फिगरेशन फाईल त्या डेटाबेसकडे निर्देशित करा.

7.0 मालिकेतील अपग्रेड्स हे सामान्य apt update && apt upgrade रन असतात; सर्व्हर पुढील स्टार्टअपच्या वेळी आवश्यक असलेले सर्व स्कीमा मायग्रेशन्स आपोआप लागू करतो, त्यामुळे पॅकेजेस अपग्रेड करा आणि zabbix-server रीस्टार्ट करा. भविष्यातील एखादी मोठी (major) आवृत्ती ही एक जाणीवपूर्वक केलेली कृती असावी; त्याआधी अपग्रेड नोट्स वाचा, डेटाबेसचा डंप घ्या आणि स्कीमामध्ये होणारे एकतर्फी (one-way) बदल लक्षात घ्या. हा एकतर्फी बदल टाळण्यासाठीच तुम्ही LTS लाईनवर राहणे आणि ती पिन करणे महत्त्वाचे असते.

फ्रंटएंडला प्लेन HTTP वर सोडू नका. एकदा का DNS सर्व्हरकडे निर्देशित झाले की, Ubuntu 24.04 वर nginx साठी Certbot आणि Let's Encrypt वापरून त्यावर प्रमाणपत्र स्थापित करा. हे टूल सर्व्हर ब्लॉकला 443 पोर्टवर ऐकण्यासाठी (listen) आणि 80 पोर्टवरील ट्रॅफिक रिडायरेक्ट करण्यासाठी अपडेट करते. तुम्ही अशा सर्व्हरला सुरक्षित करत आहात जो इतर सर्व सर्व्हर्सवर लक्ष ठेवण्यासाठी वापरला जातो, त्यामुळे fail2ban वापरून SSH ब्रूट-फोर्स प्रयत्न रोखणे या मार्गदर्शिकेनुसार SSH ला देखील लॉकडाऊन करा. मॉनिटरिंगसाठी वापरले जाणारे लॉगिन कधीही प्लेन टेक्स्टमध्ये नसावे आणि त्याचे मुख्य प्रवेशद्वार पासवर्ड शोधणाऱ्यांसाठी (password-guessers) उघडे नसावे.

FAQ

मला Zabbix agent ची गरज आहे का, की मी त्याशिवाय मॉनिटरिंग करू शकतो?

दोन्ही पर्याय उपलब्ध आहेत. Agent (agent2) मुळे प्रति-होस्ट सखोल मेट्रिक्स, CPU, मेमरी, डिस्क, प्रक्रिया, सेवा आणि लॉग फाइल्सची माहिती मिळते, त्यामुळे ज्या सर्व्हर्सवर तुमचे नियंत्रण आहे त्यांच्यासाठी हाच सामान्य पर्याय आहे. ज्या उपकरणांवर तुम्ही सॉफ्टवेअर इन्स्टॉल करू शकत नाही, तिथे agentless मॉनिटरिंग वापरले जाते: स्विचेस आणि प्रिंटर्ससाठी SNMP, पोहोचता येते की नाही हे तपासण्यासाठी ICMP ping, एंडपॉइंट्ससाठी HTTP checks आणि हार्डवेअरच्या आरोग्यासाठी IPMI. बहुतेक प्रत्यक्ष उपयोगांमध्ये या दोन्ही पद्धतींचे मिश्रण असते.

फ्रंटएंडवर Zabbix server सुरू नसल्याचा संदेश का येतो?

फ्रंटएंड काम करत आहे, पण त्याला चालू असलेला zabbix-server प्रोसेस सापडत नाहीये. सहसा सर्व्हर सुरू होतो, पण zabbix_server.conf मधील DBPassword चुकीचे किंवा रिकामे असल्यामुळे तो लॉग-इन करू शकत नाही आणि लगेच बंद होतो. systemctl status zabbix-server चालवा आणि /var/log/zabbix/zabbix_server.log वाचा; तिथे असलेली [Z3001] connection to database ... failed ओळ याचे कारण स्पष्ट करते. पासवर्ड दुरुस्त करून सर्व्हर रीस्टार्ट करा, त्यानंतर एका मिनिटाच्या आत बॅनर निघून जाईल.

मला MySQL च वापरावे लागेल का, की मी PostgreSQL वापरू शकतो?

दोन्ही पूर्णपणे समर्थित आहेत: या मार्गदर्शिकेप्रमाणे MariaDB किंवा MySQL सह zabbix-server-mysql, किंवा PostgreSQL सह zabbix-server-pgsql. लहान इन्स्टॉलेशन्ससाठी निवडीचा फारसा फरक पडत नाही. मोठ्या इन्स्टॉलेशन्ससाठी, TimescaleDB एक्स्टेंशनसह PostgreSQL वापरल्याने हिस्ट्री टेबल्सचे विभाजन (partitioning) होते आणि डेटाबेस मेंटेनन्स स्वस्त पडतो, म्हणूनच मोठ्या साइट्स याला प्राधान्य देतात. एक पर्याय निवडा आणि तोच वापरा; नंतर स्थलांतर (migrate) करायचे असल्यास पूर्ण एक्सपोर्ट आणि री-इंपोर्ट करावे लागेल, केवळ कॉन्फिगरेशन बदलून चालणार नाही.

Zabbix all-in-one सर्व्हरसाठी किती RAM लागते?

काही मोजक्या होस्ट्सचे मॉनिटरिंग करण्यासाठी 2 GB RAM ही किमान गरज आहे, तर काही डझन होस्ट्ससाठी 4 GB RAM पुरेशी असते; मेमरीचा मुख्य वापर डेटाबेस कॅशे आणि सर्व्हरच्या पोलर्ससाठी होतो. 1 GB चा VPS चालू शकतो, पण जशी हिस्ट्री वाढते तसा डेटाबेस मेमरीच्या कमतरतेमुळे मंदावतो. शंभरपेक्षा जास्त होस्ट्स असल्यास, डेटाबेस वेगळ्या सर्व्हरवर हलवा आणि एकाच मशीनमध्ये जास्त RAM टाकण्याऐवजी त्याचा बफर पूल ट्यून करा.

दोन-चार सर्व्हर्ससाठी Zabbix वापरणे गरजेपेक्षा जास्त (overkill) आहे का?

हो, असू शकते. जर तुम्हाला फक्त "सर्व्हर चालू आहे का?" हे पाहायचे असेल आणि शेअर करण्यायोग्य पेज हवे असेल, तर Uptime Kuma for uptime and status monitoring सारखे हलके साधन वापरणे सोपे आणि जलद आहे. जेव्हा तुम्हाला प्रति-मेट्रिक थ्रेशोल्ड्स, ऐतिहासिक आलेख (historical graphs), टेम्पलेट केलेले होस्ट्स आणि एस्केलेशन नियम हवे असतात, तेव्हा Zabbix निवडा; साधे पिंगर हे सर्व एका मोठ्या फ्लीटसाठी देऊ शकत नाही.