نصب و کانفیگ zabbix 2.4.5 در دبیان ۸ و REHL/ CentOS 7

Zabbix یک نرم افزار متن باز پیشرفته سطح بالاست که برای مانیتورینگ شبکه٬ سرور و application ها طراحی شده است. این نرم افزار در دو مدل server و  client ساخته شده است. Zabbix میتواند گزارشات٬ روند کارکرد و Load را بصورت نمودار گرافیکی تهیه و ذخیره سازی نماید.

این ابزار مانیتورینگ قادر است سرویس های استاندارد شبکه از جمله (HTTP, FTP, SMTP, IMAP و …) را بدون نصب نرم افزار جانبی در سرورهای تحت شبکه بصورت ۲۴ ساعته نظارت کند و در صورت تشخیص هرگونه اشکال، با ارسال اخطار، مسئولان شبکه را از موضوع با خبر سازد.

با این حال چنانچه مایلید آمار و اطلاعات بیشتری از یک سرور را از جمله پردازنده٬ هارد٬ رم و … را تحت نظارت داشته باشید٬ لازم است  Zabbix agent را نصب و کانفیگ نمایید.

در ادامه چهار سری مقاله درباره مانیتورینگ Zabbix را دنبال خواهیم کرد که عبارت اند از:

بخش اول: نصب و کانفیگ zabbix 2.4.5 در دبیان ۸ و REHL/ CentOS 7

بخش دوم: آموزش کانفیگ مانیتورینگ zabbix برای ارسال اخطار به اکانت Gmail

بخش سوم: آموزش نصب و کانفیگ  Zabbix agent  در Remote سیستم عامل های لینوکس

 بخش چهارم: نصب و کانفیگ Zabbix agent در سیستم عامل ویندوز

این آموزش بر روی نحوه نصب و کامپایل مانیتورینگ zabbix در سرورهای Debian 8 Jessie و RHEL/CentOS 7 با کمک mysql جهت ذخیره سازی گزارشات٬ به همراه وب سرور apache و php جهت مشاهده تحت وب داده ها فوکوس دارد.

البته این دستورالعمل در تمامی ورژن های دبیان و سیستم های ردهت از جمله CentOs و Fedora قابل پیاده سازی میباشد.

مرحله اول: نصب نرم افزارهای اولیه و پیش نیازها

تا این لحظه٬ zabbix بطور رسمی از پکیج های از پیش کامپایل شده پشتیبانی نمی کند و پیش نیازها را میبایست بصورت دستی از سورس های مربوطه دانلود و نصب نمایید.

به منظور نصب و کامپایل زبیکس از source ٬سرور شما نیاز به یکسری ابزارها و  پیشنیازهایی همچون devlopment tools (برای سیستم های بر پایه RedHat)  و  GCC (مخفف GNU Compiler Collection) برخی cli های شبکه از جمله curl و wget و همچنین یکسری فانکشن های ضروری برای پشتیبانی از SNMP دارد.

بسته های مورد نیاز سیستم را با صدور دستورات زیر میتوانید نصب نمایید:

برای Debian 8 Jessie

$ sudo apt-get install build-essential gcc curl wget libsnmp-dev libcurl4-gnutls-dev libxml2-dev

در RHEL/CentOS 7

# yum install gcc gcc-c++ make openssl-devel curl wget net-snmp net-snmp-utils net-snmp-libs net-snmp-devel gnutls gnutls-devel libxml2 libxml2-devel

مرحله دوم: نصب دیتابیس MariaDB و کتابخانه ها

مرحله بعدی نصب دیتابیس MariaDB از طریق پکیج binary میباشد. زمانی که MariaDB نصب می شود از شما یک کلمه عبور برای کاربر root دیتابیس پرسیده می شود. (فقط در دبیان ۸) یک کلمه عبور قوی وارد نمایید و مجددا نیز آن را تکرار کنید سپس منتظر باشید تا نصب انجام شود.

برای Debian 8 Jessie

$ sudo apt-get install mariadb-server mariadb-client libmysqld-dev

در RHEL/CentOS 7

# yum install mariadb-server mariadb-client mariadb-devel

زمانی که نصب Mariadb به پایان رسید٬ با صدور دستور mysql_secure_installation دیتابیس خود را ایمن نمایید.

# mysql_secure_installation

با صدور دستور فوق یکسری سوالات از قبیل تغییر کلمه عبور دیتابیس٬ حذف یوزرهای anonymous ٬ عدم اجازه لاگین root بصورت remote

و … پرسیده می شود که طبق تصویر با yes یا no پاسخ دهید. (تغییر کلمه عبور اخطاریست اما باقی موارد را پیشنهاد میشود با y پاسخ دهید)

مرحله سوم: نصب وب سرور آپاچی و php

در این مرحله با صدور دستورات زیر٬ نصب وب سرور آپاچی در کنار PHP را دنبال خواهیم کرد.

برای Debian 8 Jessie

$ sudo apt-get install apache2 php5 php5-mysql php5-gd php5-cli php5-xmlrpc

در RHEL/CentOS 7

# yum install httpd php php-mysql php-gd pgp-cli php-xml php-bcmath php-mbstring mod_ssl openssl

پس از نصب٬ شما نیاز دارید یکسری تغییرات در فایل php.ini جهت آماده سازی وب سرور برای میزبانی zabbix دارید.

بنابراین با دستور زیر فایل کانفیگ php.ini را باز میکنیم:

برای Debian 8 Jessie

$ sudo nano /etc/php5/apache2/php.ini

در RHEL/CentOS 7

# nano /etc/php.ini

حالا با کلید های ترکیبی CTRL+C مقادیر زیر را جستجو و جایگزین نمایید:

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Continent/City  
always_populate_raw_post_data = -1

منطقه زمانی مورد نظرتان را میتوانید در لینک روبرو بیابید: http://php.net/manual/en/timezones.php

پس از اعمال تغییرات با کلید ترکیبی Ctrl+x مراتب را ذخیره و از فایل کانفیگ خارج شوید.

سپس با صدور دستور زیر آپاچی را ریستارت نمایید تا تغییرات اعمال شده در حالت اجرایی منعکس شوند:

برای Debian 8 Jessie

sudo systemctl restart apache2.service

در RHEL/CentOS 7

systemctl restart httpd.service

دانلود٬ کامپایل و نصب zabbix server

حال سرور شما آماده نصب zabbix می باشد. با صدور دستور wget آخرین نسخه ی زبیکس (در حال حاضر ورژن ۲٫۴٫۵) را grab نمایید:

# wget http://sourceforge.net/projects/zabbix/files/ZABBIX\ Latest\ \Stable/2.4.5/zabbix-2.4.5.tar.gz

در صورتی که مایلید ورژن های قدیمی تر را دانلود نمایید میتوانید به مخازن زبیکس در Sourceforge مراجعه نمایید.

اکنون میبایست آرشیو zabbix را از حالت فشرده خارج نماییم سپس وارد پوشه مربوطه شده و فایل ها را لیست کنیم:

# tar xfz zabbix-2.4.5.tar.gz
# cd zabbix-2.4.5
# ls

وقتی وارد پوشه ی سورس شده اید٬ با دستور زیر پارامترهای کامپایل را لیست نمایید.

./configure -h

دستور زیر را وارد نموده و منتظر باشید تا به پایان برسد:

./configure

جهت نصب استاندارد زبیکس و کامپایل آن از سورس دستور زیر را صادر نمایید:

# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

پس از اینکه نرم افزار بر اساس پارامترهای فوق کانفیگ شد٬ دستور make را جهت آماده سازی نصب صادر نمایید. این دستور نسبت به دستور configure زمان بیشتری می برد. در پایان با دستور make install اقدام به نصب zabbix نمایید.

# make  
# make install

# groupadd zabbix
# useradd -g zabbix -d /usr/local/share/zabbix -s /bin/false zabbix

کانفیگ دیتابیس MariaDB برای زبیکس

ابتدا وارد mode دیتابیس Mariadb شده سپس یک دیتابیس برای زبیکس ایجاد می کنیم

mysql -u root -p 
MariaDB> create database zabbix;
MariaDB> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'your_password';
MariaDB> flush privileges;
MariaDB> exit

چنانچه zabbix server در سروری غیر از سرور MariaDB میزبانی می شود٬ با دستور زیر اجازه دسترسی به دیتابیس از طریق ریموت را باید ایجاد نمایید:

MariaDB> grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'your_password';

در مرحله بعد٬ مجددا وارد پوشه ی zabbix شوید٬ تیبل های mysql را لیست نمایید سپس آنها را ایپورت کنید:

# cd zabbix-2.4.5/
# ls database/mysql/
# mysql -u zabbix -p zabbix < database/mysql/schema.sql
# mysql -u zabbix -p zabbix < database/mysql/images.sql
# mysql -u zabbix -p zabbix < database/mysql/data.sql

کانفیگ وب سرور آپاچی برای زبیکس

پس از ایمپورت تیبل های دیتابیس٬ تمام سورس های php را میبایست با دستورات زیر در مسیر روت وب سرور آپاچی کپی کنیم. پیش از انجام این کار اطمینان پیدا کنید که در مسیر /var/www/html/ فایل index وجود نداشته باشد.

# rm /var/www/html/index.htm
# cp -rf frontends/php/* /var/www/html/

باید یوزر زابیکس را در سیستم گروپ وب سرور add کنیم٬ ماژول ssl اپاچی را فعال کنیم و در پایان وب سرور ریستارت شود.

در سیستم عامل دبیان ۸

# usermod -aG www-data zabbix 
# a2enmod ssl
# a2ensite default-ssl
# systemctl restart apache2.service

در سیستم عامل centos 7

# usermod -aG apache zabbix
# systemctl restart httpd.service

کانفیگ سرور زبیکس

فایل کانفیگ زبیکس را با دستور زیر باز میکنیم:

# nano /usr/local/etc/zabbix_server.conf

موارد را به شرح زیر تغییر میدهیم:

ListenPort=10051
LogFile=/var/log/zabbix_server.log
DBHost=localhost   ## Replace with the IP of the remote database in case MySQL server is located on a different host
DBName=zabbix  ## Use the name of the Zabbix MySQL database
DBUser =zabbix   ## Use the name of the Zabbix MySQL database User
DBPassword=password  ## Zabbix MYSQL database password
DBSocket=/var/run/mysqld/mysqld.sock
DBPort=3306

پس از انجام کانفیگ فوق شما نیاز دارید فایل لاگ ایجاد نموده و دسترسی آن را به zabbix دهید.

# touch /var/log/zabbix_server.log
# chmod 775 /var/log/zabbix_server.log
# chgrp zabbix /var/log/zabbix_server.log

پس از اینکه تمام کانفیگ های زبیکس انجام شدند٬ با دستور زیر Zabbix Server و Agent را استارت نمایید:

# /usr/local/sbin/zabbix_server
# /usr/local/sbin/zabbix_agentd
# /usr/local/sbin/zabbix_agent

شما میتوانید وضعیت Zabbix daemons و پورت های listen شده را با دستور netstat مشاهده نمایید:

# netstat -tulpn

نصب zabbix بواسطه رابط کاربری تحت وب

حال وقت آن رسیده که Zabbix Server Frontend را بصورت تحت وب نصب کنیم.  یک مرورگر باز کرده و ip سرور را با پروتکل http یا https به صورت زیر فراخوانی نمایید.

http://192.168.1.221/setup.php
OR
https://192.168.1.221/setup.php

مرحله خوشامد گویی را next بزنید.

در صورتی که تمام پیش نیاز ها آماده شده اند٬ به مرحله بعد بروید

در مرحله بعد تنظیمات sql را تکمیل نمایید Test connection را بزنید. در صورت برقراری ارتباط با mysql ٬ امکان عبور به مرحله بعد فعال می شود.

کادر مربوط به هاست را با localhost یا ip سرور تکمیل فرمایید. پورت را تغییر ندهید٬ نام دلخواه را برای این سرور تنظیم نمایید.

دسترسی نوشتن را به وب سرور میدهیم تا امکان تغییر کانفیگ را داشته باشد:

برای دبیان ۸

# chown -R www-data /var/www/html/conf/

برای centos 7

# chown -R apache /var/www/html/conf/

سپس به مرورگر بازگشته و next را میزنیم تا نصب صورت پذیرد.

نصب با موفقیت انجام شد.

دستور زیر جهت اعطای دسترسی فایل کانفیگ به root

# chown -R root /var/www/html/conf/

با نام کاربری و کلمه عبور زیر میتوانید لاگین شوید:

Username: admin
Password: zabbix

برای اینکه پس از هر بار ریستارت سرور Zabbix daemons نیز اجرا شوند فایل /etc/rc.local را باز کرده و موارد زیر را اضافه نمایید:

# /usr/local/sbin/zabbix_agentd
# /usr/local/sbin/zabbix_agent
# /usr/local/sbin/zabbix_server

در مقاله بعد موارد زیر را دنبال خواهیم کرد:

بخش دوم: آموزش کانفیگ مانیتورینگ zabbix برای ارسال اخطار به اکانت Gmail

بخش سوم: آموزش نصب و کانفیگ  Zabbix agent  در Remote سیستم عامل های لینوکس

 بخش چهارم: نصب و کانفیگ Zabbix agent در سیستم عامل ویندوز