ما با محدودکردن حق استفاده از اینترنت مخالفیم.
اطلاعات بیشتر

راهنمای نصب سیستم مانیتورینگ Zabbix

آکادمی ابری زس
راهنمای نصب سیستم مانیتورینگ Zabbix

سیستم مانیتورینگ شبکه ZABBIX یکی از قویترین و شناخته شده ترین سیستم‌های مانیتورینگ در دنیا می‌باشد که از سال ۲۰۰۱ اولین نسخه آن به بازار عرضه شده

مراحل نصب Zabbix Server

این نرم افزار را روی CentOS7 Minimal نصب می‌‌کنیم.
1_در ابتدا باید پیکج آن را نصب کنیم.
[root@localhost ~]# yum -y install httpd
1-2_در این مرحله وارد مسیر زیر می‌شویم و باید تغییراتی را روی فایل کانفیگ فایل https اعمال کنیم
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
این تغییر به ما این امکان را می‌دهد که به فایل hdaccess در همه جا دسترسی داشته باشیم.
درون فایل hdaccess می‌توانیم تغییرات مربوط به سرویس Apache را اعمال کنیم.
Before :
Line 151 :     AllowOverride None
After:
 Line 151 :     AllowOverride All
در این قسمت باید ببینیم صفحه index یا همان صفحه اصلی وبسایت ما می‌تواند از چه فایل‌هایی تشکل شود.
در این بخش گفته‌ایم فایل index ما از 3 زبان php,cgi,html پشتیبانی می‌کند. هرکدام از این فایل‌ها را پیدا کردی نمایش بدهید.
Before:
Line 164 : DirectoryIndex index.html
After:
Line 164 : DirectoryIndex index.html index.cgi index.php
حال به انتهای فایل می‌رویم و 2 خط زیر را در انتهای فایل اضافه می‌‌کنیم.
ServerTokens Prod
KeepAlive On
ServerTokens Prod
وقتی ی یوزر آدرس وب ما را وارد می‌کند اگر دچار خطایی شود یا تغییراتی را خود کاربر ایجاد کند. سیستم عامل ما یک پیغام خطا به کاربر نمایش می‌‌دهد.
این پیغام خطا اطلاعاتی از سیستم عامل ما را در اختیار کاربر قرار می‌‌دهد، از قبیل نوع سیستم عامل، ورژن سیستم عامل، توسعه دیتا‌بیس و... با نوشتن خطوط بالا این امکان را از Apache می‌‌گیریم که این اطلاعات را به هیچ کس نمایش ندهد.
KeepAlive On
وقتی کاربری  به وب سرور ما وصل می‌‌شود صفحه اصلی برای آن باز می‌‌شود که اطلاعاتی از قبیل عکس‌ها، فیلم‌ها و... را در اختیار کاربر قرار می‌دهد. با نوشتن این خط این امکان را از کاربر سلب می‌کنیم تا به صفحه ما دسترسی نداشته باشد و سرعت ما را بالا می‌‌برد.
1-3_با دستورات زیر سرویس Apache را در چند وضعیت قرار می‌‌دهیم.

1-3-1 :systemctl restart httpd: این دستور سرویس  وب سرور را را ریستارت می‌‌کند.
1-3-2 : systemctl start httpd :این دستور سرویس وی سرور را  را استارت می‌‌کند.
1-3-3 : systemctl stop  httpd : این دستور سرویس وی سرور را  را استاپ می‌کند.
1-3-4 : systemctl enable httpd : اگر سیستم عامل ری استارت شد وقتی سیستم عامل بالا بیاید سرویس وب سرور را خود به خود استارت می‌‌کند.
1-3-5 : systemctl disable httpd: سرویس  وب سرور را  disable می‌‌کند.
1-3-6 : systemctl status  httpd:وضعیت سرویس  وب سرور را به ما نمایش می‌‌دهد که روشن است یا خاموش.
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]#  systemctl enable httpd
[root@localhost ~]#  systemctl status httpd
 httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2019-10-13 18:25:58 +0330; 41s ago
1-4 _حال باید پورت‌های http را درون فایروال خود اضافه کنیم  که اجازه سرویس دهی به شبکه داخل و بیرون را داشته باشد.
به کمک دستور زیر این کار را انجام می‌دهیم
[root@localhost ~]# firewall-cmd --add-service=http --permanent
Success
به کمک این دستور فایروال را بازخوانی می‌کنیم. (ریلود می‌‌کنیم)
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]#
حال اگر IP سرور را در یک مرورگر بزنیم صفحه خوش آمدگویی Apache را در آنجا خواهیم دید
آدرسی که با علامت زرد نمایش داده شده آدرس همین صفحه است آن را حذف می‌کنیم

 zabbix

[root@localhost ~]# rm -rf /etc/httpd/conf.d/welcome.conf
2_در این مرحله باید PHP را برای سرور خود نصب کنیم.
به کمک دستورات زیر این پکیج را نصب می‌کنیم.
[root@localhost ~]# yum -y install php php-mbstring php-pear

2-1_حال باید تنظیمات PHP را انجام دهیم وارد مسیر زیر می‌‌شویم و فایل زیر را تغییر می‌‌دهیم.
درون این فایل کلمه timezone را سرچ می‌کنیم
و خط date.timezone = را از حالت کامنت خارج کرده و جلوی آن نام Asia/Tehran را می‌‌نویسیم.
[root@localhost ~]# vi /etc/php.ini
Line : 878
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone =Asia/Tehran
2-2_بعد از انجام این تغییرات Apache را دوباره ریستارت می‌کنیم تا Timezone خود را با PHP همگام سازی کند.
[root@localhost ~]# systemctl restart httpd
2-3 : دستور زیر یک فایل به نام index.php ایجاد می‌کند و آن را در وب Apache به جای عکس قبلی نمایش می‌دهد
[root@localhost ~]# echo "" > /var/www/html/index.php

zabbix

3_در این مرحله باید دیتا‌بیس Mysql را نصب کنیم.
به کمک دستور زیر این کار را انجام می‌‌دهیم.
[root@localhost ~]# yum -y install mariadb-server
3-1_باید mysql را تنظیم کنیم. وارد مسیر زیر می‌شویم  و عبارت character-set-server=utf8 را وارد می‌کنیم. این خط باعث می‌شود که سرویس ما اطلاعات را بر اساس utf8 درون خود ذخیره کند و یا به عبارتی دیگر این خط باعث می‌‌شود که mysql ما زبان فارسی را هم پشتیبانی کند.
[root@localhost ~]# vi /etc/my.cnf
[mysqld]
character-set-server=utf8
3-2_ حال باید سرویس Mysql را ریستارت کنیم.
[root@localhost ~]# systemctl restart mariadb
برای اینکه بتوانیم یک مقدار امنیت Mysql را بالا ببریم به کمک دستور زیر این کار را انجام می‌‌دهیم.
در این محیط یک رمز برای کاربر Root در نظر می‌گیریم. به کمک این رمز می‌‌توانیم به Mysql وصل بشویم.
چند سوال امنیتی پرسیده می‌شود همگی را Yes یا Enter می‌کنیم.
[root@localhost ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n]
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
... Success!
 - Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
[root@localhost ~]#
3-3_به کمک دستور زیر وارد محیط Mysql می‌‌شویم و از آن خارج می‌‌شویم.
[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.64-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>exit;
3-4_باید سرویس Mysql را به صورت همیشگی روشن بگذاریم به طوری‌که اگر سیستم ریستارت شد به صورت خودکار شروع به کار کند.
[root@localhost ~]# systemctl enable mariadb
3-5_ باید پورت Mysql را درون فایروال اضافه کنیم پورتی که Mysql استفاده می‌کند 3306 است. حال باید این سرویس را درون فایروال اضافه کنیم.
[root@localhost ~]# firewall-cmd --add-service=mysql --permanent
success
 [root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]#
4_در این مرحله  پیش نیاز‌های Zabbix‌ها را نصب می‌‌کنیم.
[root@localhost ~]# yum -y install php-mysql php-gd php-xml php-bcmath
4-1_ در مرحله بعد باید وارد وبسایت zabbix شویم و آخرین پکیج Zabbix را برای آن نصب کنیم.
http://repo.zabbix.com/zabbix/
در ابتدا لینک ریپوزیتوری آن را نصب می‌‌کنیم. 

zabbix

لینک دانلود آن بدین صورت است.
http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
به کمک دستور زیر لینک آن را دانلود و نصب می‌کنیم
[root@localhost ~]# yum -y install http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
 

zabbix


4-2_ به کمک دستور زیر پکیج zabbix را به طور کامل به همراه وابستگی‌هایش دانلود و نصب می‌‌کنیم.
[root@localhost ~]# yum -y install zabbix-get zabbix-server-mysql zabbix-web-mysql
4-3_ بعد از نصب این موارد باید وارد دیتا‌بیس شویم و محیطی را جهت ذخیره سازی اطلاعات Zabbix Server ایجاد کنیم.
[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 5.5.64-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
یک دیتا‌بیس به نام zabbix ایجاد می‌‌کنیم.
MariaDB [(none)]> create database zabbix;
Query OK, 1 row affected (0.00 sec)
این دستور کاربری را با نام zabbix و ip لوکال و همچنین پسورد Xx123456@ ایجاد می‌کند و همه دسترسی‌ها را به این کاربر اعظا می‌‌کنیم. 
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'Xx123456@';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'Xx123456@';
Query OK, 0 rows affected (0.01 sec)
بیشترین دسترسی را به این یوزر اعطا می‌کنیم
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
با این دستور دیتا‌بیس‌ها را مشاهده می‌کنیم
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zabbix             |
+--------------------+
4 rows in set (0.00 sec)
با این دستور وارد یکی از دیتا‌بیس‌ها می‌شویم
MariaDB [(none)]> use zabbix;
Database changed
با این دستور جداول درون دیتابیس را مشاهده می‌کنیم
MariaDB [zabbix]> show tables;
Empty set (0.00 sec)
با این دستور از دیتا‌بیس خارج می‌شویم
MariaDB [zabbix]> exit
Bye
[root@localhost ~]#
4-4 : حال باید جدول‌های مورد نیاز Zabbix را ایجاد کنیم.
برای اینکه بدانیم به چه جداولی نیاز داریم باید وارد مسیر زیر شویم. در این مسیر چندین فایل و دایرکتوری وجود دارد همه آن‌ها را یکجا به صورت زیر باز می‌کنیم.
جداول ما درون فایل create.sql.gz قرار دارد بنابراین باید این فایل را اکسترکت کنیم.
[root@localhost ~]# cd /usr/share/doc/zabbix-server-mysql*/
[root@localhost zabbix-server-mysql-4.4.0]# ll
total 2448
-rw-r--r--. 1 root root      98 Sep 27 10:02 AUTHORS
-rw-r--r--. 1 root root 1040914 Oct  7 11:59 ChangeLog
-rw-r--r--. 1 root root   17990 Sep 27 10:02 COPYING
-rw-r--r--. 1 root root 1427560 Oct  7 14:55 create.sql.gz
-rw-r--r--. 1 root root      52 Sep 27 10:02 NEWS
-rw-r--r--. 1 root root    1317 Oct  3 16:30 README
[root@localhost zabbix-server-mysql-4.4.0]#
به کمک دستور زیر دایرکتوری فشرده شده را به کمک دستور زیر از حالت فشرده خارج کرده و باز می‌کنیم.
[root@localhost zabbix-server-mysql-4.4.0]# gunzip create.sql.gz
[root@localhost zabbix-server-mysql-4.4.0]# ll
-rw-r--r--. 1 root root 8313635 Oct  7 14:55 create.sql
حال با دستور زیر کلیه جداول درون دایرکتوری زیر را درون Mysql باید import  کنیم.
[root@localhost zabbix-server-mysql-4.4.0]# mysql -u root zabbix -p < create.sql
Enter password:
[root@localhost zabbix-server-mysql-4.4.0]#
حال اگر وارد دیتا‌بیس بشویم می‌‌بینیم که جداول در آن وارد شده است.
[root@localhost zabbix-server-mysql-4.4.0]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 17
Server version: 5.5.64-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> use zabbix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
| auditlog                   |
| config                     |
| correlation                |
در این مرحله باید دسترسی‌های که به Mysql اعطا کردیم  را درون فایل کانفیگ zabbix هم به صورت دائمی‌‌ ثبت کنیم.
برای این کار باید وارد مسیر زیر شویم و درون فایل تغییرات زیر را انجام دهیم.
[root@localhost zabbix-server-mysql-4.4.0]# vi /etc/zabbix/zabbix_server.conf
#       If set to empty string, socket is used for PostgreSQL.
#
# Mandatory: no
# Default:
#آدرس ip یوزری که می‌‌خواهد به این سرور دسترسی مستقیم داشته باشد که در این جا و دیتابیس Localhost  ثبت شده است.
DBHost=localhost
### Option: DBName
#       Database name.
#
# Mandatory: yes
# Default:
# DBName=
#این قسمت اسم دیتا‌بیسی که در Mysql معرفی کردیم را باید بنویسیم.
DBName=zabbix
### Option: DBSchema
#       Schema name. Used for IBM DB2 and PostgreSQL.
# Mandatory: no
# Default:
# DBSchema=
### Option: DBUser
#       Database user.
# Mandatory: no
# Default:
# DBUser=
#در این قسمت هم باید نام یوزری که عضو این دیتا‌بیس شده است را بنویسیم.
DBUser=zabbix
### Option: DBPassword
#       Database password.
#       Comment this line if no password is used.
# Mandatory: no
# Default:
#همچنین در این قسمت باید رمزی که برای آن یوزر در نظر گرفتیم را بنویسیم.
DBPassword=Xx123456@
5_  حال باید سرویس SElinux را غیر فعال کنیم.
به کمک دستور زیر می‌توانیم وضعیت SElinux را بررسی کنیم.
[root@localhost zabbix-server-mysql-4.4.0]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31
[root@localhost zabbix-server-mysql-4.4.0]#
وارد مسیر زیر می‌‌شویم و آن را غیر فعال می‌‌کنیم.
[root@localhost zabbix-server-mysql-4.4.0]# vi /etc/sysconfig/selinux
[root@localhost zabbix-server-mysql-4.4.0]# cat /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@localhost zabbix-server-mysql-4.4.0]#
6_ در مرحله آخر نصب سیستم را reboot می‌کنیم
[root@localhost zabbix-server-mysql-4.4.0]# reboot
7_در این مرحله سرویس zabbix را باید ریستارت کنیم.
[root@localhost ~]# systemctl restart zabbix-server
[root@localhost ~]# systemctl start zabbix-server
[root@localhost ~]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@localhost ~]# 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 2019-10-13 21:45:52 +0330; 18s ago
 Main PID: 1889 (zabbix_server)
   CGroup: /system.slice/zabbix-server.service
8_در این بخش وارد مسیر زیر می‌شویم و تغییرات لازم جهت اجرا سرویس zabbix را انجام می‌‌دهیم.
در این بخش باید اعلام کنیم که چه محدوده IP می‌تواند به zabbix server ما دسترسی داشته باشد
به جای Require all granted باید محدوده شبکه خود را بنویسیم.
همچنین در بخش php_value date.timezone  باید آدرس timezone منطقه خود را Asia/Tehran  بدهیم.

[root@localhost ~]# cat /etc/httpd/conf.d/zabbix.conf
#
# Zabbix monitoring system php web frontend
Alias /zabbix /usr/share/zabbix

    Options FollowSymLinks
    AllowOverride None
    Require ip 127.0.0.1 192.168.100.0/24
   
        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 Asia/Tehran
9_ در این مرحله دوباره سرویس Apache را ریستارت می‌کنیم
[root@localhost ~]# systemctl restart httpd.service
[root@localhost ~]# systemctl start httpd.service
[root@localhost ~]# systemctl enable httpd.service
تمامی ‌‌تنظیماتی که برای نصب Zabbix server نیاز بود را انجام داده‌ایم.
حال وارد  مرور گر گوگل کروم شده و آدرس زیر را وارد می‌کنیم.(آدرس مربوط به سرور زبیکس را وارد می‌‌کنیم)
192.168.100.16/zabbix/
گزینه Next را می‌زنیم.

zabbix

 اطلاعات کلی در مورد خطا‌ها و مواردی که نصب نشده را نمایش  می‌‌دهد اگر همه چیز خوب بود گزینه Next را می‌‌زنیم.

zabbix

 پسوردی که برای Zabbix در نظر گرفته بودیم در محیط Mysql اینجا باید وارد کنیم.

zabbix

 در این قسمت یک نام برای user خود در نظر می‌‌گیریم.

zabbix

 در این مرحله اطلاعات کلی در مورد مواردی که نصب شده را به ما نمایش می‌‌دهد.

 همه چیز با موفقیت نصب شده و تایید می‌‌کنیم.

zabbix

 برای محیط لاگین با زدن user و پسورد زیر می‌‌توانیم وارد محیط zabbix بشویم.
برای این محیط سرور zabbix پسورد و یوزر مخصوص خود را دارد.
User: admin
Password: zabbix

zabbix

 

...
...