آموزش نصب Zabbix در Centos 7
Zabbix یک برنامه کامل و رایگان برای مانیتور کردن سرورها است زبیکس اطلاعاتی رو از دستگاه های متصل به شبکه ، سیستم ها ، برنامه جمع آوری میکنه و عملکرد اونهارو بررسی میکنه و در صورت بروز مشکل از طریق اطلاع رسانی به روش های مختلف ، هشدار لازم رو ارسال میکنه ، در این آموزش نحوه نصب Zabbix 4.0 در سیستم عامل Centos 7 با استفاده از دیتابیس MariaDB رو آموزش میدیم ، همچنین نحوه راه اندازی و کانفیگ agent زبیکس برای اتصال از راه دور به host و اضافه کردن یک Host جدید به zabbix رو بررسی میکنیم. در صورت نیاز برای تهیه، در صفحه خرید VPS میتونین لیست پلن های سرور مجازی مشاهده کنید.
سایر آموزش ها : آموزش نصب Zabbix 5 در CentOS 8
سایر آموزش ها : آموزش نصب Zabbix Server 5 در اوبونتو 20.04
با فرض اینکه دیتابیس MariaDB در سرور نصب شده مراحل رو دنبال میکنیم ، ابتدا وارد shell mysql میشیم ، سپس به ترتیب شروع به ساخت یک دیتابیس میکنیم ، سپس یک یوزر برای دسترسی به دیتایس ایجاد میکنیم و در آخر از shell mysql خارج میشیم
sudo mysql
CREATE DATABASE zabbix CHARACTER SET utf8 collate utf8_bin;
GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'change-with-strong-password';
EXIT;
نسخه موجود در repositories سیستم عامل Centos قدیمی هست به همین خاطر ما از repositories رسمی zabbix که نسخه 4 رو داره ، نصب رو انجام میدیم. ابتدا پکیج rpm رو دانلود میکنیم و نصب رو انجام میدیم
wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
sudo yum localinstall zabbix-release-4.0-1.el7.noarch.rpm
sudo yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
اگر Apache و PHP قبلاً روی سرویس شما نصب نشده باشند ، دستور بالا آنها را نصب خواهد کرد.
موقع نصب ، وب سرور آپاچی موارد مورد نیاز و تنظیمات آپاچی و php رو ایجاد میکنه فقط برای تغییرات کوچیکی بدیم و همچنین منطقه زمانی رو نیز بسته به کشور خودمون عوض کنیم به همین خاطر ابتدا فایل تنظیمات رو که در مسیر زیر هست باز میکنیم و time zone رو عوض میکنیم ، برای مشاهده time zone کشورها از این سایت میتونین استفاده کنین.
/etc/httpd/conf.d/zabbix.conf
...
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
php_value date.timezone Europe/Riga
</IfModule>
...
بعد از تغییر ناحیه زمانی ، برای اعمال تغییرات باید وب سرور رو ریستارت کنین
sudo systemctl restart httpd
بسته نصبی زبیکس یک فایل dump شامل اطلاعات و schema فراهم میکنه که اون رو از طریق کدهای زیر ایمپورت میکنیم به دیتابیسی که ایجاد کردیم ، هنگام ایمپورت هم رمز دیتابیسی که ساختیم رو باید وارد کنیم
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
سپس فایل تنظیمات zabbix رو باز میکنیم
sudo nano /etc/zabbix/zabbix_server.conf
و دنبال کلمه DBPassword
میگردیم و از حالت کامنت خارجش میکنیم (کاراکتر # رو حذف میکنیم) و مجدد ذخیره میکنیم
...
### Option: DBPassword
# Database password.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=change-with-strong-password
...
بعد Zabbix server و agent services رو ریستارت میکنیم و در هر موقع بوت شدن سیستم عامل هم فعال میکنیم
sudo systemctl restart zabbix-server zabbix-agent
sudo systemctl enable zabbix-server zabbix-agent
از طریق دستور زیر نیز میتونین وضعیت Zabbix server رو بررسی کنیم که باید active (running)
باشه
sudo systemctl status zabbix-server
● zabbix-server.service - Zabbix Server
Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2018-12-30 21:18:01 UTC; 51s ago
Main PID: 5558 (zabbix_server)
CGroup: /system.slice/zabbix-server.service
...
محیط گرافیکی وب Zabbix با php نوشته شده و به ما دسترسی تغییرات در سرور رو میده ، مشاهده داده های جمع آوری شده ، اضافه کردن هاست جدید برای مانیتور کردین هاست هایی که میخواهیم رو فراهم میکنه ، قبل از از شروع به استفاده از اینترفیس وب زبیکس نیاز داریم که اون رو نصب کنیم. برای انجام اینکار از طریق آدرس دامنه یا آی پی سرور ، آدرس زیر رو در مرورگر باز میکنیم و صفحه خوش آمدگویی زیر برامون باز میشه که روی Next step
کلیک میکنیم
http(s)://your_domain_or_ip_address/zabbix
در تصویر زیر ، پیش نیازهای php برای اجرای zabbix frontend نشون داده میشه که باید همه اونها OK باشن ، بعد از تایید این مرحله Next step
رو میزنیم
در تصویر زیر نیز ، باید اطالعات و تنظیمات دیتابیس ایجاد شده برای اتصال رو وارد فیلدها کنیم
در تصویر زیر نیز ، اطلاعات سرور zabbix رو وارد میکنیم که بصورت اختیاری هست که در منوبار نمایش داده میشه
در اینجا خلاصه اطلاعات نصب نمایش داده میشه
در تصویر زیر نصب zabbix انجام شده و بعد از زدن دکمه Finish وارد صفحه لاگین میشین
نام کاربری پیش فرض Admin و رمز عبور نیست zabbix هست.
بعد از اینکه لاگین شدین ، وارد صفحه داشبور ادمین زبیکس میشین که میتونین هاست های جدید اضافه کنین ، ولی در اولین گام باید رمز ورود پیش فرض به zabbix رو عوض کنین ، برای انجام اینکار از قسمت پروفایل کاربری که در منوی بالا آیکونش موجود هست اقدام میکنین.
اضافه کردن هاست جدید به Zabbix Server
اضافه کردن هاست جدید به zabbix برای مانیتورینگ شامل 2 مرحله هست ، یکی مرحله نصب Zabbix agent در هاستی که ریموت هست (هاست میزبان) و بعد اضافه کردن هاست به اینترفیس وب zabbix server .
نصب Zabbix agent
در این آموزش فرض میکنیم هاست میزبان از سیستم عامل Centos 7 استفاده میکنه ، برای اینکار نیز دقیقا مثل آموزش بالا zabbix server رو نصب و فعال میکنیم
wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
sudo yum localinstall zabbix-release-4.0-1.el7.noarch.rpm
سپس Zabbix agent رو نصب میکنیم
sudo yum install zabbix-agent
Zabbix از 2 متد برای encryption ارتباط سرور-کلاینت پشتیبانی میکنه Preshared Key (PSK) و certificate-based encryption. در این آموزش متد pre-shared keys (PSK) رو استفاده میکنیم ، برای انجام اینکار ، ابتدا باید pre-shared key رو ایجاد و فایلش رو ذخیره کنیم
openssl rand -hex 32 | sudo tee /etc/zabbix/zabbix_agentd.psk
مثلا کد ایجاد شده PSK ، مثل نمونه زیر خواهد بود
fc3077ed3db8589ec920ac98a7ddea96aca205eb63bbd29c66ae91743a7ecbb6
تنظیمات Zabbix agent رو باز میکنیم
sudo nano /etc/zabbix/zabbix_agentd.conf
دنبال کلمه Server
برای تغییر این مقدار به IP آدرس Zabbix server که آی پی اصلی سرور زبیکس برای مانیتور کردن هست میگردیم و آی پی رو عوض میکنیم.
...
### Option: Server
# List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
# Incoming connections will be accepted only from the hosts listed here.
# If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
# and '::/0' will allow any IPv4 or IPv6 address.
# '0.0.0.0/0' can be used to allow any IPv4 address.
# Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
#
# Mandatory: yes, if StartAgents is not explicitly set to 0
# Default:
# Server=
Server=127.0.0.1
...
سپس دنبال کلمه TSLConnect
میگردیم و از حالت کامنت خارج میکنیم (# اولش رو حذف میکنیم) بعد مقدارش رو برابر psk قرار میدیم.
...
### Option: TLSConnect
# How the agent should connect to server or proxy. Used for active checks.
# Only one value can be specified:
# unencrypted - connect without encryption
# psk - connect using TLS and a pre-shared key
# cert - connect using TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
TLSConnect=psk
...
کلمه TLSAccept
رو نیز پیدا کرده و از کامنت خارج میکنیم و مقدارش رو برابر psk قرار میدیم
...
### Option: TLSAccept
# What incoming connections to accept.
# Multiple values can be specified, separated by comma:
# unencrypted - accept connections without encryption
# psk - accept connections secured with TLS and a pre-shared key
# cert - accept connections secured with TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
TLSAccept=psk
...
کلمه TLSPSKIdentity
رو نیز پیدا میکنیم و از کامنت خارج میکنیم و مقدارش رو برابر PSK 001
قرار میدیم ، این مقدار باید یه رشته یونیک استرینگ باشه
...
### Option: TLSPSKIdentity
# Unique, case sensitive string used to identify the pre-shared key.
#
# Mandatory: no
# Default:
TLSPSKIdentity=PSK 001
...
کلمه TLSPSKFile
رو نیز پیدا میکنیم و از کامنت خارج میکنیم و مقدارش رو برابر با مسیر کد pre-shared key که ایجاد کردیم قرار میدیم
...
### Option: TLSPSKFile
# Full pathname of a file containing the pre-shared key.
#
# Mandatory: no
# Default:
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
...
سپس تنظیمات رو ذخیره میکنیم و از اون فایل رو میبندیم.
حالا سرویس Zabbix agent service رو فعال میکنیم و برای زمان بوت شدن سیستم عامل نیز فعالش میکنیم
sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent
حالا باید پورت 10050
TCP برای زبیکس سرور که مورد استفاده قرار میگیره رو در فایروال باز کنیم ، اگه از firewallD استفاده میکنین از دستور زیر میتونین استفاده کنین
sudo firewall-cmd --new-zone=zabbix --permanent
sudo firewall-cmd --zone=special --add-source=192.168.121.70/32
sudo firewall-cmd --zone=special --add-port=10050/tcp
راه اندازی هاست جدید
حالا که agent در سروری که باید مانیتور بشه نصب و تنظیم شد ، باید به Zabbix server معرفیش کنیم، ابتدا وارد پنل ادمین Zabbix server میشیم
http(s)://your_domain_or_ip_address/zabbix
از منوی بالا روی Configuration
بعد روی Hosts
کلیک میکنیم. بعد روی دکمه آبی رنگ Create host
که در سمت راست بالای قرار داره کلیک میکنیم و صفحه تنظیمات هاست باید باز بشه .
در تصویر زیر Hostname و IP آدرس سرور ریموتی که باید مورد مانیتورینگ قرار بگیره رو وارد میکنیم ، همچنین گروه رو هم میتونین وارد کنین ، مثلا برای سرورهای لینوکسی ما اسم Linux Servers
رو وارد کردیم.
بعد از add کردن روی Templates
کلیک میکنیم و Template OS Linux
رو انتخاب و add میکنیم.
بعد تب Encryption
رو باز میکنیم و PSK رو برای هر 2 حالت Connections to host
و Connections from host
انتخاب میکنیم.
مقدار PSK identity
رو نیز برابر PSK 001
قرار میدیم ، مقدار TLSPSKIdentity
همونی هست که در مراحل نصب zabbix agent تنظیم کردیم در مراحل قبل.
مقدار PSK value
رو نیز ، همون مقدار key هست که در zabbix agent در فایل /etc/zabbix/zabbix_agentd.psk
ایجاد شد رو قرار میدیم و در نهایت روی دکمه آبی Add کلیک میکنیم.