Ubuntu 24.04 پر Zabbix مانیٹرنگ انسٹال کرنے کا طریقہ
Zabbix 7.0 LTS کو Ubuntu 24.04 پر سیٹ اپ کریں: ریپو شامل کریں، MySQL اسکیما درآمد کریں، nginx فرنٹ اینڈ اور agent2 جوڑیں، پھر ڈیٹا بیس پاس ورڈ اور 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 لائن میں مستحکم ہے۔
سائزنگ، پورٹس اور پیشگی شرائط
ایک تازہ Ubuntu 24.04 KVM VPS فرض کریں جس میں root یا sudo ہو۔ وسائل کے بارے میں ایمانداری سے بتائیں: ایک ہی باکس پر سرور، ڈیٹا بیس، nginx اور PHP کے لیے 2 GB RAM اور دو vCPUs حقیقت پسندانہ کم از کم ہیں جو مٹھی بھر میزبانوں کی نگرانی کر رہا ہو۔ 1 GB والا باکس بوٹ تو ہو جاتا ہے لیکن جیسے جیسے ہسٹری بڑھتی ہے ڈیٹا بیس کو بھوکا رکھتا ہے؛ چند درجن میزبانوں سے آگے 4 GB کا منصوبہ بنائیں، اور سو سے زیادہ ہونے پر ڈیٹا بیس کو اس کے اپنے سرور پر منتقل کریں۔ ڈسک اس حساب سے بڑھتی ہے کہ آپ کتنی آئٹمز جمع کرتے ہیں اور کتنی دیر تک ہسٹری رکھتے ہیں؛ شروع میں چند گیگا بائٹس مختص کریں، اور ہاؤس کیپر آپ کی مقرر کردہ برقراری مدت پر پرانا ڈیٹا صاف کر دیتا ہے۔
پورٹس: فرنٹ اینڈ کے لیے 80 اور 443، عوامی یا آپ کے اپنے IP تک محدود۔ سرور TCP 10051 پر سنتا ہے تاکہ فعال ایجنٹ ڈیٹا اندر بھیج سکیں، اور ہر ایجنٹ TCP 10050 پر سنتا ہے تاکہ سرور اس سے پول کر سکے۔ اگر سامنے فائر وال ہو تو صرف وہی کھولیں جو آپ ظاہر کرتے ہیں۔ فرنٹ اینڈ کے لیے ایک DNS A ریکارڈ رکھنا مفید ہے، کیونکہ آپ اس پر ایک حقیقی سرٹیفکیٹ چاہیں گے، ایک Zabbix باکس آپ کی چلنے والی ہر دوسری سروس پر نظر رکھتا ہے، اس لیے یہ 2026 میں چلانے کے قابل وسیع تر سیلف ہوسٹنگ اسٹیک میں شامل ہونے کا مستحق ہے نہ کہ بعد میں سوچ کر جوڑا جانے والا اضافہ۔
مرحلہ 1، آفیشل Zabbix 7.0 ریپوزٹری شامل کریں
zabbix-release پیکیج ایک کام کرتا ہے: یہ آپ کے سسٹم پر apt سورس لسٹ اور سائننگ کی ڈراپ کرتا ہے۔ اسے انسٹال کریں، پھر انڈیکس ریفریش کریں۔
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 یو آر ایل دکھائے اسے کاپی کریں۔ ایک کلین apt update میں repo.zabbix.com لائن نظر آتی ہے اور کوئی کی وارننگ نہیں ہوتی؛ 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-agent2zabbix-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، درست کریکٹر سیٹ کے ساتھ ڈیٹا بیس بنائیں
Zabbix کولیشن کے بارے میں سخت ہے: ڈیٹا بیس کا utf8mb4 ہونا لازمی ہے جس میں utf8mb4_bin ہو، ورنہ امپورٹ درمیان میں ہی غیر ملکی کلید کی غلطیوں کے ساتھ رک جاتا ہے۔ sudo mysql کے ساتھ روٹ شیل کھولیں اور چلائیں:
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 لائن امپورٹ کے لیے ایک حفاظتی والو ہے۔ Zabbix اسکیما اسٹورڈ فنکشنز بناتا ہے، اور SUPER جیسا غیر zabbix اکاؤنٹ انہیں اس وقت نہیں بنا سکتا جب بائنری لاگنگ آن ہو، MySQL 8 بطور ڈیفالٹ بائنری لاگنگ فعال کرتا ہے، اور کچھ منظم MariaDB بلڈز بھی ایسا کرتے ہیں (اسٹاک MariaDB نہیں کرتا)۔ بائنری لاگنگ فعال والے سرور پر اس جھنڈے کو چھوڑ دیں اور امپورٹ ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled کے ساتھ رک جاتا ہے۔ اسے بطور روٹ سیٹ کرنے سے یہ صاف ہو جاتا ہے؛ آپ امپورٹ کے بعد اسے دوبارہ بند کر دیتے ہیں۔ پاس ورڈ کو بالکل نوٹ کریں، سرور کنفگ کو وہی سٹرنگ بائٹ در بائٹ درکار ہوتی ہے۔
مرحلہ 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 استعمال کریں۔ دو مشکلات ہیں۔ اوبنٹو کی طے شدہ 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 nginxnginx -t کو test is successful پرنٹ کرنا چاہیے۔ اگر یہ اس کے بجائے nginx: [emerg] a duplicate default server for 0.0.0.0:80 پرنٹ کرتا ہے، تو طے شدہ سائٹ اور Zabbix بلاک دونوں default_server کا دعویٰ کرتے ہیں، طے شدہ سائٹ کو چھوڑ دیں اور دوبارہ جانچیں۔ اکثر جانچ صرف conflicting server name انتباہ کے ساتھ پاس ہو جاتی ہے پھر بھی براؤزر سادہ ویلکم صفحہ دکھاتا ہے: یہ طے شدہ سائٹ کا غیر مماثل نام پر جیتنا ہے، اور اسے ہٹانے سے یہ ٹھیک ہو جاتا ہے۔
مرحلہ 7، خدمات شروع کریں اور فعال کریں
سرور، ایجنٹ، PHP-FPM اور nginx کو چلائیں، اور انہیں فعال کریں تاکہ ریبوٹ کے بعد بھی چلتے رہیں۔
sudo systemctl restart zabbix-server zabbix-agent2 nginx php8.3-fpm
sudo systemctl enable zabbix-server zabbix-agent2 nginx php8.3-fpmUbuntu 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 سیٹ اپ وزرڈ کھل جائے گا۔ اس میں آگے بڑھیں:
- خوش آمدید، ایک زبان منتخب کریں۔
- پیشگی شرائط کی جانچ، ہر قطار میں پہلے سے ہی OK لکھا ہونا چاہیے؛ پیک کیا گیا
/etc/zabbix/php-fpm.confپول پہلے ہی Zabbix کو درکار PHP حدود بڑھا دیتا ہے۔ - ڈیٹا بیس کنکشن ترتیب دیں، ڈیٹا بیس کی قسم MySQL، میزبان
localhost, پورٹ0(جس کا مطلب طے شدہ پورٹ یا ساکٹ ہے)، ڈیٹا بیس کا نامzabbix, صارفzabbix, اور مرحلہ 3 کا پاس ورڈ۔ غلط اسناد یا غیر موجود اسکیما یہاں فوراً ظاہر ہو جاتے ہیں۔ - ترتیبات، Zabbix سرور میزبان
localhost, پورٹ10051کو جوں کا توں چھوڑیں، اور تنصیب کا نام دیں۔ - پیشگی تنصیب کا خلاصہ، پھر انسٹال کریں، وزرڈ
/etc/zabbix/web/zabbix.conf.phpلکھتا ہے۔ - ختم،
Admin(بڑے A کے ساتھ) کے طور پر پاس ورڈzabbixسے لاگ ان کریں، اور فوراً صارفین کے تحت وہ پاس ورڈ تبدیل کریں۔
اگر وزرڈ Cannot create the configuration file کی اطلاع دے، تو ویب صارف /etc/zabbix/web/ میں لکھ نہیں سکتا، اس کی پیش کردہ zabbix.conf.php ڈاؤن لوڈ کریں، اسے sudo کے ذریعے ہاتھ سے وہاں رکھیں، اور ختم پر کلک کریں۔
مرحلہ 9، مقامی میزبان شامل کریں اور ایک سانچہ منسلک کریں
Zabbix خودکار طور پر اپنی نگرانی نہیں کرتا۔ ڈیٹا کلیکشن → ہوسٹس → ہوسٹ بنائیں پر جائیں، میزبان کا نام zabbix-server رکھیں، اسے Linux servers گروپ میں شامل کریں، اور IP 127.0.0.1، پورٹ 10050 کے ساتھ ایک ایجنٹ انٹرفیس شامل کریں۔ سانچے کے تحت، Linux by Zabbix agent (غیر فعال-پول قسم؛ Linux by Zabbix agent active میں ایجنٹ پش کرتا ہے) کو لنک کریں۔ محفوظ کریں۔
ایک منٹ کے اندر میزبان کی قطار میں سبز ZBX لیبل ظاہر ہوتا ہے اور میٹرکس مانیٹرنگ → تازہ ترین ڈیٹا کے تحت آنا شروع ہو جاتے ہیں۔ سرخ ZBX لیبل کا مطلب ہے کہ سرور ایجنٹ تک نہیں پہنچ سکتا، یہ ایک ناکامی کی صورت ہے جس کا احاطہ نیچے کیا گیا ہے، اس مرحلے میں کوئی غلطی نہیں ہے۔
مرحلہ 10، ایک کارآمد ٹرگر اور ای میل الرٹ
Linux by Zabbix agent سانچہ پہلے سے ہی زیادہ سیپییو، کم میموری اور بھری ڈسکوں کے لیے ٹرگر فراہم کرتا ہے، لہٰذا اسے لنک کرتے ہی آپ کو الرٹس مل جاتے ہیں۔ یہ دیکھنے کے لیے کہ ایک کیسے بنتا ہے، اپنا خود کا شامل کریں: میزبان کھولیں، ٹرگرز → ٹرگر بنائیں پر جائیں، اسے Root filesystem over 90% full on {HOST.NAME} نام دیں، شدت زیادہ مقرر کریں، اور یہ ایکسپریشن استعمال کریں:
last(/zabbix-server/vfs.fs.dependent.size[/,pused])>90vfs.fs.dependent.size[/,pused] وہ فیصد-استعمال شدہ آئٹم ہے جسے سانچے کی فائل سسٹم دریافت روٹ فائل سسٹم کے لیے بناتی ہے (7.0 کا لینکس سانچہ vfs.fs.get کو ایک بار جمع کرتا ہے اور فی-ماؤنٹ منحصر آئٹمز اخذ کرتا ہے)، لہٰذا ٹرگر بغیر کسی اضافی ڈیٹا جمع کیے متحرک ہو جاتا ہے۔ اسے محفوظ کریں۔
ایک ٹرگر صرف ڈیش بورڈ پر ایک قطار کا رنگ بدلتا ہے جب تک کہ کوئی ایکشن کسی کو مطلع نہ کرے۔ الرٹس → میڈیا اقسام → ای میل کے تحت، ایسایمٹیپی سرور، پورٹ، بھیجنے والے کا پتہ، کنکشن سیکیورٹی (عام طور پر STARTTLS) اور کوئی بھی ریلے اسناد سیٹ کریں، پھر ٹیسٹ استعمال کریں، وہاں ناکامی کا مطلب ہے کہ ایسایمٹیپی کا راستہ غلط ہے اس سے پہلے کہ کوئی حقیقی الرٹ اس پر انحصار کرے۔ ایڈمن صارف کو صارفین → صارفین → ایڈمن → میڈیا → شامل کریں کے تحت ایک پتہ دیں اور منتخب کریں کہ کون سی شدتیں مطلع کریں۔ پھر اسے الرٹس → ایکشنز → ٹرگر ایکشنز → ایکشن بنائیں کے تحت جوڑیں: ایک شرط شامل کریں جیسے Trigger severity >= Warning, اور آپریشنز کے تحت ای میل کے ذریعے ایڈمن کو بھیجیں۔ محفوظ کریں اور اسے فعال کریں۔ چیٹ کو ترجیح دیتے ہیں؟ Zabbix 7.0 سلیک، ڈسکارڈ اور ٹیلیگرام کے لیے ویب ہُک میڈیا اقسام فراہم کرتا ہے، بالکل ای میل کی طرح ایک تشکیل دیں اور اسے ایک صارف کو تفویض کریں۔
ایجنٹ کے ذریعے دوسرے سرور کی نگرانی
کسی دوسرے سرور پر نظر رکھنے کے لیے، وہاں بھی 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-01sudo systemctl enable --now zabbix-agent2 چلائیں اور Zabbix سرور سے اس مشین کی طرف TCP 10050 کھولیں۔ واپس فرنٹ اینڈ میں، ایک میزبان بنائیں جس کا ایجنٹ انٹرفیس اس مشین کے IP کی طرف اشارہ کرے، Linux سانچہ لنک کریں، اور یہ اطلاع دینا شروع کر دے گا۔
ناکامی کی صورتیں، اور وہ عبارات جو آپ دیکھیں گے
فرنٹ اینڈ Error connecting to database یا ڈیٹا بیس کی خرابی دکھاتا ہے۔ وزرڈ کے ڈی بی مرحلے میں، 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 میں ہوسٹ localhost پورٹ 10051 کے طور پر محفوظ ہے۔ اوبنٹو پر بطور ڈیفالٹ کوئی SELinux نہیں ہے، اس لیے SELinux-ساکٹ والی وجہ جو RHEL گائیڈز بیان کرتی ہیں لاگو نہیں ہوتی؛ یہاں تقریباً ہمیشہ ڈیٹا بیس کا پاس ورڈ یا بند سروس ہوتی ہے۔
میزبان ایک سرخ ZBX لیبل دکھاتا ہے؛ آئٹم کی خرابی Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused۔ ایجنٹ نہیں چل رہا یا سن نہیں رہا۔ systemctl status zabbix-agent2 چیک کریں اور ListenPort=10050 کی تصدیق کریں۔ "کنکشن مسترد" کی بجائے ٹائم آؤٹ کا مطلب ہے کہ فائر وال پورٹ 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 ہٹائیں اور تصدیق کریں کہ /etc/nginx/conf.d/zabbix.conf موجود ہے، جیسا کہ مرحلہ 6 میں ہے۔ 502 کا مطلب ہے کہ nginx پی ایچ پی تک پہنچ گیا لیکن 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 دوبارہ شروع کریں۔ مستقبل کی کوئی بڑی لائن ایک دانستہ اقدام ہے، اس کے اپ گریڈ نوٹس پڑھیں، پہلے ڈیٹا بیس ڈمپ کریں، اور یک طرفہ اسکیما تبدیلی کی توقع رکھیں۔ یہ یک طرفہ چھلانگ ہی وجہ ہے کہ آپ LTS لائن پر قائم رہتے ہیں اور اسی پر رہتے ہیں۔
فرنٹ اینڈ کو سادہ HTTP پر مت چھوڑیں۔ جب DNS سرور کی طرف اشارہ کرے، تو اس پر ایک سرٹیفکیٹ لگائیں Ubuntu 24.04 پر nginx کے لیے Certbot اور Let's Encrypt کے ذریعے، جو سرور بلاک کو 443 پر سننے اور 80 کو ری ڈائریکٹ کرنے کے لیے دوبارہ لکھتا ہے۔ جب آپ ایک ایسے سرور کو مضبوط کر رہے ہیں جو آپ کے ہر دوسرے سرور کو دیکھنے کے لیے لاگ ان ہوتا ہے، تو اس کی SSH کو بھی مقفل کریں fail2ban کے ذریعے بروٹ فورس SSH کوششوں پر پابندی کے ساتھ۔ ایک مانیٹرنگ لاگ ان کو صاف متن میں سفر نہیں کرنا چاہیے، اور اس کا مرکزی دروازہ پاس ورڈ اندازہ لگانے والوں کے لیے کھلا نہیں رہنا چاہیے۔
FAQ
کیا مجھے Zabbix ایجنٹ کی ضرورت ہے، یا میں اس کے بغیر بھی نگرانی کر سکتا ہوں؟
دونوں طریقے کام کرتے ہیں۔ ایجنٹ (agent2) فی میزبان بھرپور میٹرکس دیتا ہے، جیسے سی پی یو، میموری، ڈسکیں، پراسیسز، سروسز، لاگ فائلیں، اور یہ ان سرورز کے لیے عام انتخاب ہے جن پر آپ کا کنٹرول ہے۔ بغیر ایجنٹ کی نگرانی ان آلات کا احاطہ کرتی ہے جہاں آپ سافٹ ویئر انسٹال نہیں کر سکتے: سوئچز اور پرنٹرز کے لیے SNMP، رسائی کی جانچ کے لیے ICMP پنگ، اینڈپوائنٹس کے لیے HTTP چیک، ہارڈویئر کی صحت کے لیے IPMI۔ زیادہ تر حقیقی تنصیبات ان دونوں کو ملاتی ہیں۔
فرنٹ اینڈ کیوں کہتا ہے کہ Zabbix سرور نہیں چل رہا؟
فرنٹ اینڈ کام کرتا ہے لیکن ایک فعال zabbix-server پراسیس تک نہیں پہنچ سکتا۔ عام طور پر سرور شروع ہوا، لاگ ان کرنے میں ناکام رہا کیونکہ zabbix_server.conf میں DBPassword غلط یا خالی ہے، اور فوراً واپس بند ہو گیا۔ systemctl status zabbix-server چلائیں اور /var/log/zabbix/zabbix_server.log پڑھیں؛ ایک [Z3001] connection to database ... failed لائن اس کی تصدیق کرتی ہے۔ پاس ورڈ درست کریں اور دوبارہ شروع کریں، اور بینر ایک منٹ کے اندر صاف ہو جاتا ہے۔
کیا مجھے MySQL استعمال کرنا ضروری ہے، یا میں PostgreSQL استعمال کر سکتا ہوں؟
دونوں میں سے کسی کی بھی مکمل حمایت حاصل ہے: zabbix-server-mysql جیسا کہ یہ گائیڈ MariaDB یا MySQL کے ساتھ کرتا ہے، یا zabbix-server-pgsql PostgreSQL کے ساتھ۔ چھوٹی تنصیبات کے لیے انتخاب کی اہمیت بہت کم ہے۔ بڑی تنصیبات کے لیے، TimescaleDB ایکسٹینشن کے ساتھ PostgreSQL ہسٹری ٹیبلز کو تقسیم کرتا ہے اور ہاؤس کیپنگ کو کہیں زیادہ سستا بناتا ہے، یہی وجہ ہے کہ بڑی سائٹیں اس کی طرف مائل ہوتی ہیں۔ ایک کا انتخاب کریں اور اس پر قائم رہیں، بعد میں منتقلی کا مطلب ہے مکمل ایکسپورٹ اور دوبارہ امپورٹ، نہ کہ کنفگ کی تبدیلی۔
ایک Zabbix آل ان ون سرور کو کتنی RAM کی ضرورت ہے؟
مٹھی بھر میزبانوں کی نگرانی کرنے والے ایک باکس کے لیے، 2 GB ایک حقیقت پسندانہ کم از کم ہے اور چند درجن میزبانوں سے آگے 4 GB آرام دہ ہے؛ میموری زیادہ تر ڈیٹا بیس کیشے اور سرور کے پولرز کو جاتی ہے۔ ایک 1 GB VPS چلتا ہے لیکن جیسے جیسے ہسٹری بڑھتی ہے ڈیٹا بیس کو بھوکا رکھتا ہے۔ سو میزبانوں سے آگے، ڈیٹا بیس کو اس کے اپنے سرور پر الگ کریں اور ایک مشین میں زیادہ RAM ڈالنے کے بجائے اس کے بفر پول کو ٹیون کریں۔
کیا چند سرورز کے لیے Zabbix ضرورت سے زیادہ ہے؟
ہو سکتا ہے۔ اگر آپ کو صرف "کیا یہ چل رہا ہے؟" اور ایک صفحہ چاہیے جسے آپ شیئر کر سکیں، تو ایک ہلکا پھلکا ٹول جیسے اپ ٹائم اور اسٹیٹس مانیٹرنگ کے لیے اپ ٹائم کوما تیزی سے کھڑا ہوتا ہے اور ایک نظر میں پڑھنا آسان ہے۔ Zabbix کا انتخاب اس وقت کریں جب آپ فی میٹرک حدیں، تاریخی گراف، ٹیمپلیٹڈ میزبان اور ایسکلیشن رولز چاہتے ہیں، وہ چیزیں جو ایک سادہ پنگر آپ کو پورے بیڑے میں نہیں دے سکتا۔