Ubuntu 24.04-ல் Zabbix 7.0 LTS நிறுவுவது எப்படி?
Ubuntu 24.04-ல் Zabbix 7.0 LTS-ஐ நிறுவும் முறையை அறியுங்கள். இதில் repository சேர்த்தல், MySQL schema இறக்குமதி, nginx மற்றும் agent2 கட்டமைப்பு ஆகியவற்றை படிப்படியாக விளக்கியுள்ளோம்.
நீங்கள் உருவாக்குவது
முழுமையான Zabbix 7.0 LTS stack-ஐ இயக்கும் ஒரு Ubuntu 24.04 VPS: இது தரவுகளைச் சேகரித்து எச்சரிக்கை செய்யும் zabbix-server daemon, ஒவ்வொரு அளவீட்டையும் (metric) சேமிக்கும் MariaDB/MySQL தரவுத்தளம், nginx மூலம் வழங்கப்படும் PHP frontend மற்றும் அந்த server-ன் அளவீடுகளைச் சேகரிக்கும் zabbix-agent2 ஆகியவற்றைக் கொண்டிருக்கும். இது தயாரானதும், மற்றொரு server-ஐ இணைத்து, ஒரு template-ஐப் பொருத்தி, வட்டு (disk) நிறைந்தாலோ அல்லது ஒரு service நின்றாலோ உடனடியாக மின்னஞ்சல் எச்சரிக்கையைப் பெறலாம்.
Zabbix என்பது ஒரு status-page கருவியை விட அதிக திறன் கொண்டது: இது templates, triggers, escalation மற்றும் history retention வசதிகளைக் கொண்ட ஒரு உண்மையான time-series அமைப்பாகும். மக்கள் தவிர்க்கும் மூன்று படிகளில்தான் பெரும்பாலான சிக்கல்கள் உள்ளன: தரவுத்தள schema-வை இறக்குமதி செய்தல், server உண்மையில் வாசிக்கும் தரவுத்தள கடவுச்சொல்லை அமைத்தல் மற்றும் nginx config-ல் இரண்டு வரிகளை uncomment செய்தல். இவற்றைச் சரியாகச் செய்தால், மீதமுள்ளவை எளிது. உங்களுக்கு up/down சோதனைகள் மற்றும் பகிரக்கூடிய status page மட்டுமே தேவைப்பட்டால், ஒரு எளிய Uptime Kuma status monitor-ஐ ஒரு container-ல் இயக்கலாம்; பல hosts-களில் ஒவ்வொரு metric-க்கும் வரம்புகளை (thresholds) நிர்ணயித்து, escalation செய்ய வேண்டியிருக்கும் போதுதான் Zabbix-ன் பயன்பாடு முழுமையாகத் தெரியும்.
7.0 LTS வரிசையைப் பயன்படுத்தவும்: இதன் server, frontend, agent2 மற்றும் schema ஆகியவை ஒரே பதிப்பைக் கொண்டவை, மேலும் பல ஆண்டுகளுக்குப் பாதுகாப்புத் திருத்தங்களைப் பெறும். கீழே உள்ள repository கோப்பின் பெயரை நகலெடுக்கும் முன், அதிகாரப்பூர்வ Zabbix பதிவிறக்கப் பக்கத்தைப் பார்க்கவும். latest release package எப்போதும் புதிய 7.0 point release-க்கு இணையும். ஆனால், நீங்கள் ஒரு குறிப்பிட்ட 7.0-N build-ஐப் பயன்படுத்த விரும்பினால், அந்தப் பக்கத்தில் அதற்கான கோப்பின் பெயரும் இருக்கும். இங்குள்ள மற்ற அனைத்துக் கட்டளைகளும் 7.0 வரிசை முழுவதும் நிலையானவை.
அளவு, ports மற்றும் முன்நிபந்தனைகள்
root அல்லது sudo வசதியுடன் கூடிய புதிய Ubuntu 24.04 KVM VPS-ஐப் பயன்படுத்துவதாகக் கருதுங்கள். வளங்களைப் பொறுத்தவரை உண்மையாக இருக்க வேண்டும்: ஒரு server, database, Nginx மற்றும் PHP ஆகியவற்றை ஒரே பெட்டியில் இயக்கி, சில hosts-களைக் கண்காணிப்பதற்கு 2 GB RAM மற்றும் இரண்டு vCPUs என்பதே நடைமுறைக்குச் சாத்தியமான குறைந்தபட்ச அளவாகும். 1 GB அளவுள்ள பெட்டி boot ஆகும், ஆனால் வரலாறு வளர வளர database-க்குத் தேவையான வளம் கிடைக்காமல் போகும்; சில டஜன் hosts-களுக்கு மேல் கண்காணிக்க 4 GB-ஐத் திட்டமிடுங்கள், நூறு hosts-களுக்கு மேல் சென்றால் database-ஐத் தனி server-க்கு மாற்றிவிடுங்கள். நீங்கள் சேகரிக்கும் தரவுகளின் எண்ணிக்கை மற்றும் அவற்றை எவ்வளவு காலம் வைத்திருக்கிறீர்கள் என்பதைப் பொறுத்து வட்டு (disk) பயன்பாடு அதிகரிக்கும்; தொடக்கத்தில் சில gigabytes ஒதுக்குங்கள், நீங்கள் அமைக்கும் retention windows-க்கு ஏற்ப housekeeper பழைய தரவுகளை நீக்கிவிடும்.
Ports: frontend-க்காக 80 மற்றும் 443, இவை பொதுமக்களுக்குத் திறந்திருக்கலாம் அல்லது உங்கள் IP-க்கு மட்டும் கட்டுப்படுத்தப்படலாம். தரவுகளை அனுப்பும் active agents-க்காக server TCP 10051-ல் listening நிலையில் இருக்கும், மேலும் server தரவுகளைப் பெறுவதற்காக ஒவ்வொரு agent-ம் TCP 10050-ல் listening நிலையில் இருக்கும். ஒரு firewall முன்னால் இருந்தால், நீங்கள் எதை வெளிப்படுத்துகிறீர்களோ அதை மட்டும் திறக்கவும். frontend-க்கு ஒரு DNS A record வைத்திருப்பது நல்லது, ஏனெனில் அதற்கு நீங்கள் முறையான certificate-ஐப் பெற வேண்டியிருக்கும். Zabbix பெட்டி நீங்கள் இயக்கும் மற்ற அனைத்து சேவைகளையும் கண்காணிக்கும் என்பதால், இது ஏதோ ஒரு கூடுதல் இணைப்பாக இல்லாமல், 2026-ல் இயக்க வேண்டிய விரிவான self-hosting stack-ன் ஒரு பகுதியாக இருக்க வேண்டும்.
படி 1, அதிகாரப்பூர்வ Zabbix 7.0 repository-ஐச் சேர்த்தல்
zabbix-release தொகுப்பு ஒரு வேலையை மட்டுமே செய்கிறது: இது apt source list மற்றும் signing key-ஐ உங்கள் கணினியில் பதிவிறக்குகிறது. இதை நிறுவி, பின் index-ஐப் புதுப்பிக்கவும்.
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 updatewget கட்டளை 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 என்று வந்தால், release தொகுப்பு அதன் key-ஐ நிறுவவில்லை என்று பொருள், எனவே dpkg -i கட்டளையை மீண்டும் இயக்கி, மீண்டும் update செய்யவும்.
படி 2, server, frontend மற்றும் agent-ஐ நிறுவுதல்
MySQL-உடன் கட்டமைக்கப்பட்ட server, PHP frontend, nginx configuration, SQL schema கோப்புகள் மற்றும் agent2 ஆகியவற்றை ஒரே கட்டத்தில் நிறுவவும்.
sudo apt install -y zabbix-server-mysql zabbix-frontend-php \
zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2zabbix-server-mysql என்பது MySQL/MariaDB-க்காக தொகுக்கப்பட்ட server ஆகும்; PostgreSQL-க்கு பதிலாக zabbix-server-pgsql-ஐ நிறுவி, கீழே உள்ள database படிகளை மாற்றியமைக்கவும். zabbix-sql-scripts என்பது நீங்கள் அடுத்து import செய்யும் schema-வைக் கொண்டுள்ளது. இது 7.0 பதிப்பில் ஒரு தனி தொகுப்பாகும்; இதை நிறுவ மறப்பதுதான், பிற்காலத்தில் import path காணாமல் போவதற்கு முக்கிய காரணமாகும். இவை எவையும் database engine-ஐ தானாக நிறுவ மாட்டாது, எனவே உங்கள் server-ல் MariaDB இல்லையென்றால் அதை இப்போதே நிறுவவும்.
sudo apt install -y mariadb-server
sudo systemctl enable --now mariadbபடி 3, சரியான character set-உடன் database-ஐ உருவாக்குதல்
Zabbix-ன் collation அமைப்பு மிகவும் கண்டிப்பானது: database கண்டிப்பாக 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-வானது stored functions-ஐ உருவாக்குகிறது. binary logging இயக்கப்பட்டிருக்கும்போது, zabbix போன்ற SUPER அல்லாத கணக்கினால் அவற்றை உருவாக்க முடியாது. MySQL 8-ல் binary logging இயல்பாகவே இயக்கப்பட்டிருக்கும், சில நிர்வகிக்கப்படும் (managed) MariaDB பதிப்புகளிலும் இது இருக்கும் (சாதாரண MariaDB-ல் இது இருக்காது). binary logging இயக்கப்பட்டிருக்கும் server-ல் இந்த flag-ஐத் தவிர்த்தால், ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled பிழையுடன் import நின்றுவிடும். root பயனராக இதை அமைப்பது அந்தத் தடையை நீக்கும்; import முடிந்ததும் இதை மீண்டும் அணைத்துவிடலாம். கடவுச்சொல்லைச் சரியாகக் குறித்துக்கொள்ளவும், server config-ல் அதே கடவுச்சொல் ஒவ்வொரு byte-ம் மாறாமல் இருக்க வேண்டும்.
படி 4, schema-வை இறக்குமதி செய்தல் (பலர் தவிர்க்கும் படி)
புதிய frontend இயங்க மறுப்பதற்கு இதுவே மிக முக்கியமான பொதுவான காரணம்: நீங்கள் உருவாக்கிய database காலியாக உள்ளது. zabbix-sql-scripts-ல் வழங்கப்பட்டுள்ள schema-வை அதில் ஏற்றவும்.
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 package நிறுவப்படவில்லை என்று பொருள் (படி 2-க்குச் செல்லவும்). ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' என்பது படி 3-ல் உள்ள கடவுச்சொல் அல்லது அனுமதி (grant) தவறானது என்று பொருள். இது முடிந்ததும், பாதுகாப்பு flag-ஐ மீண்டும் அணைக்கவும்:
sudo mysql -e "SET GLOBAL log_bin_trust_function_creators = 0;"sudo mysql -e "SELECT COUNT(*) FROM zabbix.users;" மூலம் பதிவேற்றத்தை உறுதிப்படுத்தவும், ஒரு எண் கிடைத்தால், doesn't exist பிழை இல்லை என்றால், schema வெற்றிகரமாக ஏற்றப்பட்டுள்ளது என்று பொருள்.
படி 5, zabbix_server.conf கோப்பில் database கடவுச்சொல்லை அமைத்தல்
Server தனது database நற்சான்றிதழ்களை (credentials) /etc/zabbix/zabbix_server.conf கோப்பிலிருந்து வாசிக்கிறது. கடவுச்சொல்லை மட்டும் அமைத்தால் போதும், DBName மற்றும் DBUser ஆகியவை ஏற்கனவே zabbix என இயல்பாக (default) அமைக்கப்பட்டுள்ளன. # DBPassword= வரியின் முன்னால் உள்ள குறியீட்டை நீக்கி (uncomment), அதை இவ்வாறு அமைக்கவும்:
DBName=zabbix
DBUser=zabbix
DBPassword=choose-a-strong-passwordஇந்தக் கடவுச்சொல் படி 3-ல் நீங்கள் உருவாக்கிய அதே கடவுச்சொல்லாக இருக்க வேண்டும். DBPassword காலியாக இருந்தாலோ அல்லது தவறாக இருந்தாலோ, பிற்காலத்தில் நீங்கள் காணும் "Zabbix server is not running" என்ற பிழை செய்திக்கு அதுவே முக்கிய காரணமாகும்: daemon தொடங்குகிறது, ஆனால் login செய்யத் தவறி வெளியேறுகிறது. திரையில் இது குறித்து எந்தத் தகவலும் வராது, log கோப்பில் மட்டுமே இதைக் காண முடியும்.
படி 6, Nginx-ஐ frontend-உடன் இணைத்தல்
zabbix-nginx-conf தொகுப்பு /etc/zabbix/nginx.conf-ல் ஒரு server block-ஐ நிறுவி, அதை /etc/nginx/conf.d/zabbix.conf-லிருந்து Nginx-க்கு இணைக்கிறது. ஆனால், இது listen மற்றும் server_name வரிகள் comment செய்யப்பட்ட நிலையில் வருகிறது. எனவே, அவற்றை நீங்கள் திருத்தும் வரை Zabbix-க்காக Nginx எதையும் வழங்காது:
server {
listen 80;
server_name zabbix.example.com;
...
}உங்களிடம் இன்னும் DNS இல்லை என்றால், உங்கள் domain-ஐ அல்லது server-ன் public IP-ஐப் பயன்படுத்தவும். இதில் இரண்டு கவனிக்க வேண்டிய விஷயங்கள் உள்ளன. Ubuntu-வின் default Nginx welcome site-ம் port 80-ல் இயங்குகிறது மற்றும் அதுவே default server-ஆகக் குறிக்கப்பட்டுள்ளது. எனவே, அதன் பெயருடன் பொருந்தாத எந்தவொரு கோரிக்கைக்கும் அதுவே முன்னுரிமை பெறும். அதை நீக்கவும், இல்லையெனில் தவறான பக்கம் தோன்றும்: 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 கட்டளையைப் பயன்படுத்தி நீங்களே இணைப்பை உருவாக்கவும். பிறகு, சோதித்து reload செய்யவும்:
sudo nginx -t
sudo systemctl reload nginxnginx -t கட்டளை test is successful என்று காட்ட வேண்டும். அதற்குப் பதிலாக nginx: [emerg] a duplicate default server for 0.0.0.0:80 என்று காட்டினால், default site மற்றும் Zabbix block ஆகிய இரண்டுமே default_server-ஐக் கோருகின்றன என்று அர்த்தம்; default site-ஐ நீக்கிவிட்டு மீண்டும் சோதிக்கவும். பெரும்பாலும், conflicting server name எச்சரிக்கையுடன் சோதனை வெற்றிபெறும், ஆனால் browser-ல் இன்னும் plain welcome page-தான் தோன்றும்: இது பொருந்தாத பெயருக்கு default site முன்னுரிமை பெறுவதால் நடக்கிறது, அதை நீக்குவது இந்தச் சிக்கலைச் சரிசெய்யும்.
படி 7, சேவைகளைத் தொடங்குதல் மற்றும் செயல்படுத்துதல் (Start and enable)
Server, agent, PHP-FPM மற்றும் nginx ஆகியவற்றைத் தொடங்கி, reboot-க்கு பிறகும் அவை இயங்கும் வகையில் அவற்றை enable செய்யவும்.
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 தொகுப்பு அதன் frontend-ஐ அதே master-ன் கீழ் இயக்குகிறது. Server தொடங்கி, தொடர்ந்து இயங்குகிறதா என்பதை உறுதிப்படுத்தவும்:
sudo systemctl status zabbix-server --no-pager
sudo tail -n 20 /var/log/zabbix/zabbix_server.logசரியாக இயங்கும் log-ன் இறுதியில் server தொடங்கிவிட்டதாகவும், அதன் housekeeper, poller மற்றும் trapper செயல்முறைகள் (processes) இயங்குவதாகவும் இருக்க வேண்டும். நீங்கள் [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost'-ஐக் கண்டால், படி 5-ல் உள்ள DBPassword பொருந்தவில்லை என்று அர்த்தம்; அதைச் சரிசெய்துவிட்டு restart செய்யவும். [Z3005] query failed: [1146] Table 'zabbix.dbversion' doesn't exist வரி இருந்தால், நீங்கள் படி 4-ல் schema import-ஐத் தவிர்க்கவில்லை என்று பொருள், எனவே server-க்கு வாசிப்பதற்கு தரவுகள் ஏதுமில்லை.
படி 8, இணையதள அமைப்பு வழிகாட்டியை (web setup wizard) நிறைவு செய்தல்
http://your-domain-or-ip முகவரிக்குச் செல்லவும். Zabbix அமைப்பு வழிகாட்டி திறக்கும். அதில் பின்வருவனவற்றைச் செய்யவும்:
- Welcome, ஒரு மொழியைத் தேர்ந்தெடுக்கவும்.
- Check of pre-requisites, ஒவ்வொரு வரிசையும் இயல்பாகவே OK என்று இருக்க வேண்டும்; தொகுக்கப்பட்ட
/etc/zabbix/php-fpm.confpool, Zabbix-க்குத் தேவையான PHP வரம்புகளை ஏற்கனவே உயர்த்தியுள்ளது. - Configure DB connection, database வகை MySQL, host
localhost, port0(இது இயல்புநிலை port அல்லது socket-ஐக் குறிக்கும்), database பெயர்zabbix, பயனர்zabbix, மற்றும் படி 3-ல் உள்ள கடவுச்சொல் ஆகியவற்றை உள்ளிடவும். தவறான நற்சான்றிதழ்கள் (credentials) அல்லது விடுபட்ட schema இருந்தால், அது இங்கேயே காட்டப்படும். - Settings, Zabbix server host
localhost, port10051ஆகியவற்றை அப்படியே விட்டுவிட்டு, இந்த நிறுவலுக்கு ஒரு பெயரை இடவும். - Pre-installation summary, பின்னர் Install என்பதைக் கிளிக் செய்யவும், வழிகாட்டி
/etc/zabbix/web/zabbix.conf.phpகோப்பை எழுதும். - Finish,
Admin(பெரிய எழுத்து A) என்ற பயனர் பெயருடனும்,zabbixஎன்ற கடவுச்சொல்லுடனும் உள்நுழையவும். உடனடியாக Users பகுதிக்குச் சென்று கடவுச்சொல்லை மாற்றவும்.
வழிகாட்டி Cannot create the configuration file என்று பிழையைக் காட்டினால், இணைய பயனர் (web user) /etc/zabbix/web/ கோப்பில் எழுத முடியாது என்று அர்த்தம். அது வழங்கும் zabbix.conf.php கோப்பைப் பதிவிறக்கம் செய்து, sudo கட்டளையைப் பயன்படுத்தி அதை அந்த இடத்தில் கைமுறையாக வைக்கவும், பின்னர் Finish என்பதைக் கிளிக் செய்யவும்.
படி 9, local host-ஐச் சேர்த்தல் மற்றும் template-ஐ இணைத்தல்
Zabbix தானாகவே தன்னை கண்காணித்துக் கொள்ளாது. Data collection → Hosts → Create host பகுதிக்குச் செல்லவும், host name-ஐ zabbix-server என அமைக்கவும், அதை Linux servers குழுவில் சேர்க்கவும், மேலும் 127.0.0.1 IP மற்றும் 10050 port கொண்ட ஒரு Agent interface-ஐச் சேர்க்கவும். Templates பிரிவின் கீழ், Linux by Zabbix agent-ஐ இணைக்கவும் (இது passive-poll வகை; Linux by Zabbix agent active என்பது agent-ஐ push செய்ய வைக்கும்). சேமிக்கவும்.
ஒரு நிமிடத்திற்குள், host வரிசையில் பச்சை நிற ZBX லேபிள் தோன்றும் மற்றும் Monitoring → Latest data பிரிவில் அளவீடுகள் வரத் தொடங்கும். சிவப்பு நிற ZBX லேபிள் இருந்தால், server-ஆல் agent-ஐ அணுக முடியவில்லை என்று பொருள். இது கீழே விவரிக்கப்பட்டுள்ள ஒரு தோல்வி நிலை (failure mode) ஆகும், இந்த படியில் செய்யப்பட்ட தவறு அல்ல.
படி 10, ஒரு பயனுள்ள trigger மற்றும் மின்னஞ்சல் எச்சரிக்கை
Linux by Zabbix agent template ஏற்கனவே அதிக CPU, குறைந்த memory மற்றும் நிறைந்த disk ஆகியவற்றுக்கான triggers-ஐக் கொண்டுள்ளது, எனவே நீங்கள் அதை இணைத்த உடனேயே எச்சரிக்கைகளைப் பெறலாம். ஒரு trigger எவ்வாறு உருவாக்கப்படுகிறது என்பதைப் பார்க்க, நீங்களே ஒன்றைச் சேர்க்கவும்: host-ஐத் திறந்து, Triggers → Create trigger என்பதற்குச் சென்று, அதற்கு Root filesystem over 90% full on {HOST.NAME} என்று பெயரிட்டு, severity-ஐ High என அமைத்து, இந்த expression-ஐப் பயன்படுத்தவும்:
last(/zabbix-server/vfs.fs.dependent.size[/,pused])>90vfs.fs.dependent.size[/,pused] என்பது root filesystem-க்காக template-ன் filesystem discovery உருவாக்கும் percent-used item ஆகும் (7.0-ன் Linux template vfs.fs.get-ஐ ஒருமுறை சேகரித்து, ஒவ்வொரு mount-க்கும் தேவையான dependent items-ஐ உருவாக்குகிறது), எனவே கூடுதல் தரவு சேகரிப்பு இல்லாமலேயே இந்த trigger செயல்படும். இதைச் சேமிக்கவும்.
ஒரு action யாரையாவது எச்சரிக்கும் வரை, trigger என்பது dashboard-ல் உள்ள ஒரு வரிசையின் நிறத்தை மட்டுமே மாற்றும். Alerts → Media types → Email என்பதற்குச் சென்று, SMTP server, port, sender address, connection security (பொதுவாக STARTTLS) மற்றும் ஏதேனும் relay credentials ஆகியவற்றை அமைக்கவும். பிறகு Test என்பதைப் பயன்படுத்தவும்; இதில் தோல்வி ஏற்பட்டால், உண்மையான எச்சரிக்கை வருவதற்கு முன்பே SMTP பாதையில் தவறு உள்ளது என்று அர்த்தம். Users → Users → Admin → Media → Add என்பதற்குச் சென்று Admin பயனருக்கு ஒரு மின்னஞ்சல் முகவரியைச் சேர்த்து, எந்தெந்த severity-களுக்கு அறிவிப்பு வர வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும். பிறகு Alerts → Actions → Trigger actions → Create action என்பதற்குச் சென்று அதை இணைக்கவும்: Trigger severity >= Warning போன்ற ஒரு condition-ஐச் சேர்த்து, Operations பிரிவில் Admin-க்கு Email மூலம் அனுப்பவும். இதைச் சேமித்து enable செய்யவும். Chat வசதி வேண்டுமா? Zabbix 7.0-ல் Slack, Discord மற்றும் Telegram ஆகியவற்றுக்கான webhook media types உள்ளன; அவற்றை Email போலவே configure செய்து ஒரு பயனருக்கு ஒதுக்கலாம்.
மற்றொரு server-ஐ agent மூலம் கண்காணித்தல்
மற்றொரு server-ஐ கண்காணிக்க, அங்கும் Zabbix repository-ஐச் சேர்க்கவும். Ubuntu 24.04-ல் Zabbix packages இல்லாததால், agent-ஐ மட்டும் நிறுவவும்:
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 server-ன் IP-ஐக் குறிப்பிடவும் (passive polling-க்காக). Active checks-க்காக, ServerActive மற்றும் நீங்கள் frontend-ல் உருவாக்கும் host-க்கு இணையான தனித்துவமான Hostname ஆகியவற்றை அமைக்கவும்:
Server=10.0.0.10
ServerActive=10.0.0.10
Hostname=web-01sudo systemctl restart zabbix-agent2-ஐ இயக்கவும். Zabbix server-லிருந்து இந்த machine-க்கு TCP 10050 port-ஐத் திறக்கவும். Restart செய்வது அவசியம்: package நிறுவப்பட்டவுடனேயே agent இயங்கத் தொடங்கிவிடும், அது ஏற்கனவே உள்ள Server=127.0.0.1-ஐப் பயன்படுத்தும். Agent தனது கோப்பைத் தொடங்கும் போது மட்டுமே வாசிக்கும். enable --now-ஐ இயக்கினால், அது ஏற்கனவே இயங்கிக்கொண்டிருப்பதைக் கண்டு எந்த மாற்றத்தையும் செய்யாது; எனவே agent உங்கள் Zabbix server-ன் இணைப்பைத் தொடர்ந்து நிராகரிக்கும். Package தானாகவே unit-ஐ enable செய்துள்ளதால், boot-ல் தொடங்குவது ஏற்கனவே அமைக்கப்பட்டுள்ளது. Frontend-க்குச் சென்று, அந்த machine-ன் IP-ஐக் குறிக்கும் Agent interface கொண்ட host-ஐ உருவாக்கவும். Linux template-ஐ இணைக்கவும்; ஒரு நிமிடத்திற்குள் தகவல்கள் வந்துவிடும்.
தோல்வி முறைகள் மற்றும் நீங்கள் காணும் செய்திகள்
Frontend-ல் Error connecting to database அல்லது database பிழை காட்டுகிறது. Wizard-ன் DB நிலையில், Access denied for user 'zabbix'@'localhost' (using password: YES) என்பது கடவுச்சொல் Step 3-ல் உள்ளதோடு பொருந்தவில்லை அல்லது GRANT இயக்கப்படவில்லை என்று பொருள். Database இணைக்கப்பட்டும் frontend The frontend does not match Zabbix database அல்லது Table 'zabbix.users' doesn't exist என்று காட்டினால், Step 4-ல் உள்ள schema import தவிர்க்கப்பட்டது அல்லது தோல்வியடைந்தது என்று அர்த்தம்; புதிதாக உருவாக்கப்பட்ட database-ல் அதை மீண்டும் இயக்கவும்.
Orange banner: Zabbix server is not running: the information displayed may not be current. Frontend இயங்குகிறது, ஆனால் live server-ஐ அணுக முடியவில்லை. மூன்று காரணங்கள் உள்ளன, முதல் காரணம் அதிக வாய்ப்புள்ளது. Service இயங்கவில்லை, systemctl status zabbix-server-ஐ சரிபார்த்து அதைத் தொடங்கவும். Service இயங்குகிறது ஆனால் database-ஐ அணுக முடியவில்லை, log-ல் [Z3001] connection to database 'zabbix' failed: [1045] Access denied என்று காட்டினால், தவறான அல்லது காலியான DBPassword என்று பொருள். அல்லது frontend தவறான server-ஐக் குறிக்கிறது, இது /etc/zabbix/web/zabbix.conf.php-ல் host localhost port 10051 எனச் சேமிக்கப்பட்டிருக்கும். Ubuntu-வில் இயல்பாக SELinux கிடையாது, எனவே RHEL வழிகாட்டிகளில் கூறப்படும் SELinux-socket காரணம் இங்கு பொருந்தாது; பெரும்பாலும் இது database கடவுச்சொல் அல்லது நிறுத்தப்பட்ட service காரணமாகவே இருக்கும்.
Host-ல் சிவப்பு நிற ZBX label; item error Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused. Agent இயங்கவில்லை அல்லது port-ல் கேட்கவில்லை (listening). systemctl status zabbix-agent2-ஐச் சரிபார்த்து ListenPort=10050-ஐ உறுதிப்படுத்தவும். "Connection refused" என்பதற்குப் பதிலாக timeout ஏற்பட்டால், firewall port 10050-ஐத் தடுக்கிறது என்று பொருள். தொடர்புடைய Received empty response from Zabbix Agent. Assuming that agent dropped connection because of access permissions. என்பது agent-ஐ அணுக முடிகிறது, ஆனால் அதன் Server= வரியில் Zabbix server-ன் IP இல்லை என்று பொருள்; அதைச் சேர்த்துவிட்டு agent-ஐ restart செய்யவும்.
சாதாரண nginx welcome பக்கம் அல்லது 502 Bad Gateway. Welcome பக்கம் தெரிந்தால், default site இன்னும் enabled நிலையில் உள்ளது அல்லது Zabbix block இணைக்கப்படவில்லை என்று பொருள்; /etc/nginx/sites-enabled/default-ஐ நீக்கிவிட்டு, Step 6-ல் உள்ளபடி /etc/nginx/conf.d/zabbix.conf இருப்பதை உறுதிப்படுத்தவும். 502 என்பது nginx-ஆல் PHP-ஐ அணுக முடிந்தது, ஆனால் PHP-FPM முடக்கப்பட்டுள்ளது அல்லது வேறு socket-ல் கேட்கிறது என்று பொருள்; php8.3-fpm-ஐத் தொடங்கி, Zabbix block-ல் உள்ள fastcgi_pass socket இயங்கும் pool-உடன் பொருந்துகிறதா என்று சரிபார்க்கவும்.
Backups, upgrades, and TLS
Database என்பது முழுமையான வரலாற்றைக் கொண்டிருப்பதால், அதை mysqldump மூலம் அட்டவணைப்படி backup எடுத்து, அந்த dump கோப்பை server-க்கு வெளியே பாதுகாப்பாக வைக்கவும்:
mysqldump --single-transaction zabbix | gzip > zabbix-$(date +%F).sql.gz/etc/zabbix configuration கோப்புகள் அளவில் சிறியவை, அவற்றைச் சேமிப்பது நல்லது; ஆனால் அவற்றை மீண்டும் உருவாக்க முடியும், தரவுகளை மீண்டும் உருவாக்க முடியாது. Restore செய்யும் முறை இதற்கு நேர்மாறானது: database-ஐ உருவாக்கி, dump-ஐ import செய்து, config கோப்புகளை அதனுடன் இணைக்க வேண்டும்.
7.0 வரிசைக்குள் செய்யப்படும் மேம்படுத்தல்கள் சாதாரண apt update && apt upgrade செயல்பாடுகள் ஆகும்; server அடுத்த முறை தொடங்கும் போது schema மாற்றங்களை அதுவே செய்துகொள்ளும், எனவே packages-ஐ மேம்படுத்திவிட்டு zabbix-server-ஐ restart செய்யவும். எதிர்காலத்தில் வரும் major பதிப்பிற்கு மாறுவது ஒரு திட்டமிட்ட செயலாக இருக்க வேண்டும்; அதன் மேம்படுத்தல் குறிப்புகளைப் படித்து, முதலில் database-ஐ dump செய்துவிட்டு, schema மாற்றங்கள் ஒருவழிப்பாதையாக (one-way) இருக்கும் என்பதை நினைவில் கொள்ளவும். இந்த ஒருவழி மாற்றம் காரணமாகவே, நீங்கள் ஒரு LTS வரிசையைத் தேர்ந்தெடுத்து அதிலேயே நீடிப்பது அவசியம்.
Frontend-ஐ plain HTTP-ல் விட வேண்டாம். DNS அந்த server-ஐச் சுட்டிக்காட்டியதும், Certbot and Let's Encrypt on nginx for Ubuntu 24.04 மூலம் certificate-ஐ நிறுவவும்; இது 443 port-ல் கேட்கும் வகையிலும், 80 port-ஐ redirect செய்யும் வகையிலும் server block-ஐ மாற்றியமைக்கும். நீங்கள் இயக்கும் மற்ற அனைத்து server-களையும் கண்காணிக்கும் ஒரு server-ஐப் பலப்படுத்தும் போது, fail2ban banning brute-force SSH attempts மூலம் அதன் SSH அணுகலையும் கட்டுப்படுத்தவும். கண்காணிப்புக்கான login விவரங்கள் cleartext-ஆகச் செல்லக்கூடாது, மேலும் அதன் நுழைவாயில் கடவுச்சொல்லை ஊகிப்பவர்களுக்குத் திறந்திருக்கக்கூடாது.
FAQ
Zabbix agent எனக்குத் தேவையா, அல்லது அது இல்லாமலேயே கண்காணிக்க முடியுமா?
இரண்டுமே சாத்தியம். Agent (agent2) ஒவ்வொரு host-ன் CPU, memory, disks, processes, services, log files போன்ற விரிவான தரவுகளை வழங்குகிறது; நீங்கள் நிர்வகிக்கும் server-களுக்கு இதுவே சிறந்த தேர்வு. மென்பொருளை நிறுவ முடியாத சாதனங்களுக்கு agentless கண்காணிப்பு முறை பொருந்தும்: switches மற்றும் printers-க்கு SNMP, இணைப்புத் தன்மையை அறிய ICMP ping, endpoints-க்கு HTTP checks, மற்றும் hardware ஆரோக்கியத்திற்கு IPMI பயன்படுத்தலாம். பெரும்பாலான நடைமுறை அமைப்புகளில் இவை இரண்டும் கலந்து பயன்படுத்தப்படுகின்றன.
Zabbix server இயங்கவில்லை என்று frontend ஏன் காட்டுகிறது?
Frontend இயங்குகிறது, ஆனால் அதற்கு நேரடி zabbix-server process-ஐ அணுக முடியவில்லை. பொதுவாக server தொடங்குகிறது, ஆனால் zabbix_server.conf-ல் உள்ள DBPassword தவறாகவோ அல்லது காலியாகவோ இருப்பதால் login செய்ய முடியாமல் உடனே நின்றுவிடுகிறது. systemctl status zabbix-server-ஐ இயக்கி /var/log/zabbix/zabbix_server.log-ஐப் படிக்கவும்; அதில் உள்ள ஒரு [Z3001] connection to database ... failed வரி இதற்கான காரணத்தை உறுதிப்படுத்தும். கடவுச்சொல்லைச் சரிசெய்து restart செய்தால், ஒரு நிமிடத்திற்குள் அந்த எச்சரிக்கை மறைந்துவிடும்.
நான் MySQL-ஐத்தான் பயன்படுத்த வேண்டுமா, அல்லது PostgreSQL-ஐப் பயன்படுத்தலாமா?
இரண்டையுமே முழுமையாகப் பயன்படுத்தலாம்: இந்த வழிகாட்டியில் உள்ளது போல MariaDB அல்லது MySQL உடன் zabbix-server-mysql, அல்லது PostgreSQL உடன் zabbix-server-pgsql. சிறிய அளவிலான நிறுவல்களுக்கு இதில் பெரிய வித்தியாசம் இல்லை. பெரிய அளவிலான நிறுவல்களுக்கு, TimescaleDB extension கொண்ட PostgreSQL வரலாற்றுத் தரவு அட்டவணைகளை (history tables) பிரித்து, பராமரிப்புச் செலவைக் குறைக்கிறது; இதனாலேயே பெரிய தளங்கள் இதை விரும்புகின்றன. ஏதேனும் ஒன்றை மட்டும் தேர்ந்தெடுத்துத் தொடரவும்; பிற்காலத்தில் மாற்ற வேண்டுமென்றால் முழுமையாக export மற்றும் re-import செய்ய வேண்டியிருக்கும், வெறும் configuration மாற்றத்தால் மட்டும் இதைச் செய்ய முடியாது.
ஒரு Zabbix all-in-one server-க்கு எவ்வளவு RAM தேவை?
குறைந்த எண்ணிக்கையிலான host-களைக் கண்காணிக்கும் ஒரு server-க்கு 2 GB என்பது குறைந்தபட்சத் தேவை, சில டஜன் host-களுக்கு 4 GB போதுமானது; இதில் பெரும்பாலான memory database cache மற்றும் server-ன் pollers-க்குச் செலவாகும். 1 GB VPS-ல் இது இயங்கும், ஆனால் தரவு வளர வளர database-க்குத் தேவையான memory பற்றாக்குறை ஏற்படும். நூற்றுக்கும் மேற்பட்ட host-களைக் கண்காணிக்கும்போது, database-ஐத் தனி server-க்கு மாற்றி அதன் buffer pool-ஐத் தனிப்பயனாக்குவது சிறந்தது; ஒரே machine-ல் அதிக RAM-ஐச் சேர்ப்பது தீர்வாகாது.
சில server-களை மட்டும் கண்காணிக்க Zabbix மிகையானதா?
ஆம், இருக்கலாம். "server இயங்குகிறதா?" என்பதை மட்டும் அறியவும், மற்றவர்களுடன் பகிரக்கூடிய ஒரு பக்கம் மட்டுமே தேவை என்றால், uptime மற்றும் status கண்காணிப்பிற்கான Uptime Kuma போன்ற எளிமையான கருவி விரைவாக அமைக்கவும், எளிதாகப் புரிந்துகொள்ளவும் உதவும். ஒவ்வொரு metric-க்கும் வரம்புகள் (thresholds), வரலாற்று வரைபடங்கள் (historical graphs), templated hosts மற்றும் escalation விதிகள் போன்றவை தேவைப்படும்போது Zabbix-ஐத் தேர்ந்தெடுக்கவும்; ஒரு சாதாரண pinger கருவியால் இவை அனைத்தையும் வழங்க முடியாது.