Zabbix एक एंटरप्राइज़-लेवल ओपन-सोर्स मॉनिटरिंग सिस्टम है। वर्तमान में, Zabbix सबसे लोकप्रिय और शक्तिशाली मुफ्त मॉनिटरिंग सिस्टम में से एक है। इसकी सरल इंस्टॉलेशन और कॉन्फ़िगरेशन के कारण, Zabbix का उपयोग सैकड़ों होस्ट वाले बड़े इन्फ्रास्ट्रक्चर के साथ-साथ छोटे कॉन्फ़िगरेशन की निगरानी के लिए किया जा सकता है। इस लेख में हम आपको दिखाएंगे कि Linux Ubuntu और CentOS पर वेब इंटरफेस के साथ Zabbix सर्वर 5.0 को कैसे इंस्टॉल और कॉन्फ़िगर करें, और Windows या Linux चलाने वाले सर्वर पर Zabbix एजेंट कैसे इंस्टॉल करें और मॉनिटरिंग के लिए नए होस्ट जोड़ें।
आप नीचे स्क्रीनशॉट पर Zabbix सर्वर डैशबोर्ड इंटरफेस देख सकते हैं।

सरल और कॉन्फ़िगर करने में आसान Zabbix C (एक सर्वर, एक प्रॉक्सी, और एक एजेंट) और PHP (फ्रंटएंड) में लिखा गया है। Zabbix Server और Zabbix Proxy केवल Linux सिस्टम पर काम करते हैं। Zabbix एजेंट को समर्थित ऑपरेटिंग सिस्टम और प्लेटफॉर्म की एक विस्तृत विविधता पर इंस्टॉल किया जा सकता है।
Zabbix सर्वर इंस्टॉलेशन में शामिल हैं:
- एक zabbix_server बाइनरी (आमतौर पर यह एक सर्विस के रूप में काम करता है);
- MySQL/MariaDB/PostgreSQL डेटाबेस;
- PHP हैंडलर के साथ Apache2/Nginx वेब सर्वर;
- फ्रंटएंड साइट फ़ाइलें (.php, .js, .css, आदि)।
आमतौर पर, ऑपरेटिंग स्कीम इस तरह दिखती है:
- एक Zabbix एजेंट सर्वर को डेटा भेजता है;
- एक Zabbix सर्वर डेटा प्राप्त करता है और संसाधित करता है;
- यदि प्राप्त डेटा निर्दिष्ट शर्तों को पूरा करता है, तो एक ट्रिगर सक्रिय होता है;
- सक्रिय ट्रिगर इंगित करता है कि कोई समस्या है। फ्रंटएंड (साइट पर) में एक सूचना दिखाई देती है, और कॉन्फ़िगरेशन के आधार पर, एक ईमेल सूचना भेजी जाती है या कुछ कार्रवाइयां की जाती हैं (उदाहरण के लिए, एक मॉनिटर की गई सर्विस को रीस्टार्ट किया जाता है)।
Zabbix सभी ज्ञात प्रोटोकॉल के साथ काम कर सकता है। बाहरी स्क्रिप्ट का उपयोग करने की क्षमता के लिए धन्यवाद, Zabbix किसी भी निष्पादन योग्य स्क्रिप्ट/बाइनरी को निष्पादित और उनसे डेटा प्राप्त कर सकता है।
Linux (Ubuntu, CentOS) पर Zabbix सर्वर कैसे इंस्टॉल करें?
इस ट्यूटोरियल में हम दिखाएंगे कि पैकेज मैनेजर का उपयोग करके Linux (Ubuntu Server 18.4 और CentOS 8) पर Zabbix सर्वर कैसे इंस्टॉल करें।
https://www.zabbix.com/download पर डाउनलोड पेज पर जाएं और अपने Linux डिस्ट्रीब्यूशन से मेल खाने वाले रिपॉजिटरी का चयन करें। सभी लोकप्रिय Linux डिस्ट्रो के लिए तैयार पैकेज हैं।
उदाहरण के लिए, Ubuntu 18.04 पर Zabbix इंस्टॉल करने के लिए, क्रमशः चयन करें:
Zabbix Version (5.0 LTS) → OS Distribution (Ubuntu) → OS Version (18.04 Bionic) → Database (MySQL) → Web server (Nginx or Apache)।

रिपॉजिटरी डाउनलोड करें और जोड़ें:
# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+bionic_all.deb
# dpkg -i zabbix-release_5.0-1+bionic_all.deb
# apt update
फिर आवश्यक पैकेज इंस्टॉल करें:
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent

CentOS 8/RHEL 8 पर Zabbix इंस्टॉल करने के लिए, नवीनतम Zabbix संस्करण के साथ रिपॉजिटरी कनेक्ट करें (आप Zabbix को 4.0/5.0 LTS ब्रांच या नवीनतम Zabbix 5.2 से इंस्टॉल कर सकते हैं):
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
# dnf clean all
मान लें कि सर्वर पर nginx, MySQL/MariaDB, php और php-fpm पहले से इंस्टॉल हैं। Zabbix सर्वर और एजेंट इंस्टॉल करने के लिए dnf (yum) पैकेज मैनेजर का उपयोग करें:
# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-agent
फिर MySQL में Zabbix के लिए एक डेटाबेस बनाएं (आप MySQL के बजाय PostgreSQL का उपयोग कर सकते हैं, बस पिछले कमांड में 'mysql' को 'pgsql' से बदलें)।
एक डेटाबेस बनाएं और उस उपयोगकर्ता खाते को अनुमति दें जिसके तहत Zabbix DB तक पहुंचेगा:
mysql -uroot
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'ZabbixP@$$w0rd';
mysql> quit;
Zabbix डेटाबेस इंपोर्ट करें। आपके द्वारा उपयोगकर्ता बनाते समय निर्दिष्ट पासवर्ड दर्ज करें।
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p Zabbix
/etc/zabbix/zabbix_server.conf संपादित करें, आपके द्वारा बनाए गए उपयोगकर्ता का पासवर्ड निर्दिष्ट करें।
DBPassword=Zabbix_User_Password
चूंकि मेरे मामले में nginx वेब सर्वर के रूप में उपयोग किया जाता है, nginx.conf संपादित करें निम्न लाइनों को अनकमेंट करके:
# listen 80; # server_name example.com;
# हटाएं और example.com को Zabbix सर्वर होस्टनाम से बदलें। मेरे मामले में यह test.zabbix.local है।
Apache के लिए, /etc/httpd/conf.d/zabbix.conf संपादित करें।
PHP में टाइम जोन सेट करें। /etc/zabbix/php-fpm.conf में निम्न लाइन को अनकमेंट करें:
php_value[date.timezone] = Canada/Pacific
सुनिश्चित करें कि आपके Zabbix सर्वर पर समय एक विश्वसनीय NTP स्रोत के साथ सिंक्रनाइज़ है।
आप इन PHP पैरामीटर्स को /etc/php.ini में भी सेट कर सकते हैं:
memory_limit 128M upload_max_filesize 8M post_max_size 16M max_execution_time 300 max_input_time 300 max_input_vars 10000
zabbix-server सर्विस को स्टार्टअप में जोड़ें और चलाएं:
# systemctl enable zabbix-server zabbix-agent nginx php7.2-fpm
# systemctl restart zabbix-server zabbix-agent nginx php7.2-fpm
Zabbix वेब इंटरफेस कॉन्फ़िगरेशन
अब आपको Zabbix फ्रंटएंड (वेब इंटरफेस) कॉन्फ़िगर करना होगा। ब्राउज़र में पहले निर्दिष्ट Zabbix सर्वर URL खोलें। मेरे मामले में, यह test.zabbix.local है (या आपके द्वारा निर्दिष्ट डोमेन। इसे अपने होस्ट्स फ़ाइल में या DNS सर्वर पर रजिस्टर करना याद रखें)। सुनिश्चित करें कि सभी इंस्टॉलर आवश्यकताओं के आगे OK दिखाया गया है।

डेटाबेस कनेक्शन पैरामीटर्स और DB से कनेक्ट करने के लिए उपयोगकर्ता क्रेडेंशियल्स निर्दिष्ट करें। पहले बनाए गए यूजरनेम और पासवर्ड का उपयोग करें।

अपने Zabbix सर्वर का नाम निर्दिष्ट करें। मैं डिफ़ॉल्ट पोर्ट - TCP 10051 छोड़ने की सलाह देता हूं।
डिफ़ॉल्ट रूप से, Zabbix दो नेटवर्क पोर्ट का उपयोग करता है:
- TCP 10050 — पैसिव एजेंट पोर्ट, जिसका उपयोग Zabbix सर्वर क्लाइंट्स को पोल करने के लिए करता है;;
- TCP 10051 — पोर्ट जिसके माध्यम से Zabbix सर्वर क्लाइंट्स (एक्टिव एजेंट्स) से डेटा प्राप्त करता है।
फायरवॉल पर इन पोर्ट्स को खोलना याद रखें। उदाहरण के लिए, CentOS पर चल रहे Zabbix सर्वर पर आप firewalld का उपयोग करके firewall-cmd से पोर्ट्स खोल सकते हैं:
# firewall-cmd --add-service={http,https} --permanent
firewall-cmd --add-port={10051/tcp,10050/tcp} –permanent
एजेंट पर पोर्ट 10050 खोलना पर्याप्त है:
# firewall-cmd --permanent --add-port=10050/tcp
Firewalld रीस्टार्ट करें:
# firewall-cmd –reload

फिर Next Step और Finish पर क्लिक करें। इंस्टॉलेशन के बाद, आपको लॉगिन करने के लिए कहा जाएगा। डिफ़ॉल्ट लॉगिन Admin है, डिफ़ॉल्ट पासवर्ड zabbix है (इसे बदलें)।

Zabbix सर्वर इंस्टॉलेशन पूरा हुआ।
आप अन्य OS पर Zabbix सर्वर इंस्टॉलेशन के चरण-दर-चरण निर्देश और zabbix-server को सोर्स कोड से बनाने या डॉकर कंटेनर में चलाने के गाइड https://www.zabbix.com/download पर पा सकते हैं।
आप Zabbix को Active Directory LDAP का उपयोग करके उपयोगकर्ताओं को प्रमाणित करने के लिए कॉन्फ़िगर कर सकते हैं।
Windows पर Zabbix एजेंट कैसे इंस्टॉल करें?
आइए Windows चलाने वाले सर्वर पर Zabbix एजेंट इंस्टॉल करने का प्रयास करें और इसे हमारे Zabbix मॉनिटरिंग सर्वर में जोड़ें। आप यहां Windows के लिए Zabbix एजेंट संस्करण डाउनलोड कर सकते हैं: https://www.zabbix.com/download_agents. 
आवश्यक एजेंट संस्करण चुनें। मैं msi (amd64) चुनूंगा (OpenSSL के बिना)। यदि आप GPO या SCCM का उपयोग करके डोमेन सर्वर/कंप्यूटर पर Zabbix एजेंट इंस्टॉल करने जा रहे हैं, तो आप बाइनरी और कॉन्फ़िगरेशन फ़ाइलों के साथ ZIP आर्काइव डाउनलोड कर सकते हैं।
इंस्टॉलर चलाएं, लाइसेंस समझौते को स्वीकार करें और Zabbix सर्वर से कनेक्ट करने के लिए सेटिंग्स निर्दिष्ट करें। कृपया ध्यान दें कि "Server or Proxy for active checks" फ़ील्ड में मैंने IP:PORT फॉर्मेट में एक IP एड्रेस दर्ज किया है। चूंकि मैंने डिफ़ॉल्ट पोर्ट छोड़ा है, मैंने 192.168.20.30:10051 दर्ज किया है।

Next पर कुछ बार क्लिक करें, फिर Install पर क्लिक करें।
सुनिश्चित करें कि एजेंट इंस्टॉल हो गया है। Zabbix Agent सर्विसेज की सूची में दिखाई देना चाहिए।

अपने Windows होस्ट पर Windows Firewall में अपने Zabbix सर्वर IP एड्रेस से इनबाउंड कनेक्शन की अनुमति दें:
New-NetFirewallRule -DisplayName "ZabbixMonitoring" –RemoteAddress 192.168.20.30 -Direction Inbound -Protocol TCP –LocalPort 10050 -Action Allow
Zabbix सर्वर पर नया होस्ट कैसे जोड़ें?
यह सुनिश्चित करने के लिए कि एजेंट काम कर रहा है, testnode2 होस्ट को अपने Zabbix सर्वर में जोड़ें और इसे कुछ चेक (टेम्पलेट) असाइन करें।
नोट. Zabbix में 2 प्रकार के चेक होते हैं:- पैसिव — एक Zabbix सर्वर एजेंट से कुछ डेटा का अनुरोध करता है;
- एक्टिव — एजेंट सर्वर को डेटा भेजता है।
एजेंट इंस्टॉलेशन के दौरान, हमने एक्टिव चेक के लिए सर्वर को IP:PORT के रूप में निर्दिष्ट किया था।
आप Zabbix वेब इंटरफेस के माध्यम से एक नया मॉनिटरिंग होस्ट जोड़ सकते हैं। Configuration → Hosts पर जाएं।
Create host पर क्लिक करें और विवरण भरें। ध्यान दें कि Host name डिवाइस होस्टनाम या एजेंट कॉन्फ़िगरेशन फ़ाइल में Hostname पैरामीटर के मान से बिल्कुल मेल खाना चाहिए।

Templates टैब में बिल्ट-इन Windows टेम्पलेट जोड़ें। Zabbix में टेम्पलेट मान, ट्रिगर, ग्राफ और डिस्कवरी नियमों के सेट होते हैं जिन्हें एक या अधिक होस्ट को असाइन किया जा सकता है।
बिल्ट-इन टेम्पलेट्स में "active" लेबल होता है, और इसका मतलब है कि एक्टिव चेक का उपयोग किया जाएगा।

Add पर क्लिक करें। सर्वर और एजेंट के एक-दूसरे को देखने तक इंतजार न करने के लिए (आमतौर पर इसमें कुछ मिनट लगते हैं), testnode2 पर Zabbix Agent सर्विस रीस्टार्ट करें और एजेंट लॉग देखें (C:\Program Files\Zabbix Agent\zabbix_agentd.txt)।


"started [active checks #1]" संदेश का मतलब है कि होस्ट के लिए सर्वर पर कुछ एक्टिव चेक मिले हैं। फिर अपने Zabbix सर्वर द्वारा एजेंट से प्राप्त डेटा को देखें। ऐसा करने के लिए, Monitoring → Latest Data पर जाएं और Hosts फ़ील्ड में होस्ट चुनें।

यह सेक्शन चयनित होस्ट या होस्ट के समूहों पर नवीनतम डेटा दिखाता है जो Zabbix सर्वर पर आए हैं।
कृपया ध्यान दें कि मेरे मामले में Zabbix डैशबोर्ड में एक सूचना है कि BITS सर्विस नहीं चल रही है। सूचना दिखाई दी क्योंकि हमने अपने होस्ट को बिल्ट-इन टेम्पलेट असाइन किए। टेम्पलेट्स में से एक में BITS चेक है, और संबंधित ट्रिगर सक्रिय हुआ यदि BITS सर्विस Running स्टेट में नहीं है।

Windows के लिए एजेंट कॉन्फ़िगर हो गया है।
Linux पर Zabbix एजेंट इंस्टॉल करना
आइए Linux पर Zabbix एजेंट इंस्टॉल करें। पैकेज मैनेजर का उपयोग करके Ubuntu Server 18.04 पर Zabbix एजेंट इंस्टॉल करने के लिए, Zabbix रिपॉजिटरी डाउनलोड करें और इंस्टॉल करें। फिर रिपॉजिटरी से Zabbix एजेंट इंस्टॉल करें:
# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
# sudo dpkg -i zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
# sudo apt update
# sudo apt -y install zabbix-agent
CentOS पर रिपॉजिटरी जोड़ने और Zabbix एजेंट इंस्टॉल करने के लिए, इन कमांड का उपयोग करें:
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
# dnf clean all
# dnf install zabbix-agent
Zabbix एजेंट शुरू करने से पहले, कॉन्फ़िगरेशन फ़ाइल /etc/zabbix/zabbix_agentd.conf संपादित करें। एक्टिव चेक के लिए अपने Zabbix सर्वर का IP एड्रेस निर्दिष्ट करें।
Server=IP ServerActive=192.168.20.30:10051 Hostname=testagent
फिर एजेंट सर्विस शुरू करें:
# service zabbix-agent start
सुनिश्चित करें कि एजेंट सफलतापूर्वक शुरू हो गया है।
# cat /var/log/zabbix/zabbix_agentd.log

लाइन "cannot parse list of active checks" का मतलब है कि सर्वर पर होस्ट के लिए कोई एक्टिव चेक नहीं हैं।
Windows एजेंट की तरह, आपको अपने Linux होस्ट को Zabbix में जोड़ना होगा। अपने Zabbix सर्वर के होस्ट सेटिंग्स में Host name पैरामीटर पर ध्यान दें: यह Zabbix एजेंट कॉन्फ़िगरेशन फ़ाइल में हमारे द्वारा निर्दिष्ट Hostname पैरामीटर से मेल खाना चाहिए। ऊपर कॉन्फ़िग फ़ाइल में मैंने होस्ट नाम testagent के रूप में निर्दिष्ट किया था।

अपने Zabbix एजेंट को रीस्टार्ट करें और लॉग जांचें। सुनिश्चित करें कि एजेंट से डेटा आपके Zabbix सर्वर पर दिखाई दिया है। Linux पर Zabbix एजेंट कॉन्फ़िगर हो गया है।
अगले लेख में हम Zabbix के माध्यम से ICMP Ping का उपयोग करके होस्ट उपलब्धता की एजेंटलेस मॉनिटरिंग को देखेंगे।