📜 Как установить Zabbix сервер на CentOS / RHEL 8 |

📜 Как установить Zabbix сервер на CentOS / RHEL 8

Мануал
Zabbix – это бесплатное решение с открытым исходным кодом, предназначенное для мониторинга серверов, виртуальных машин, сетей и облачных сервисов в режиме реального времени.
Он был разработан Алексеем Владишевым и активно поддержан Zabbix SIA.
Он основан на модели клиент-сервер и способен отслеживать миллионы показателей, таких как загрузка процессора, использование сети и использование дискового пространства с десятков тысяч серверов.

Характеристики

  • Поддерживает MySQL, SQLite, PostgreSQL и IBM DB2.
  • Мониторинг различных системных матриц, включая память, процессор, диск, процесс.
  • Мониторинг сетевых устройств, оборудования, виртуальных машин, гипервизора VMware и VMware vCenter.
  • Поддерживает несколько методов аутентификации, таких как, LDAP и Active Directory.
  • Предоставляеи уведомление по электронной почте.
  • Автообнаружение и автоматизированный сбор метрик.
  • Распределенный мониторинг.

В этом руководстве мы объясним, как установить и настроить сервер мониторинга Zabbix на CentOS 8 и RHEL 8.

Шаг 1 – отключим SELinux

По умолчанию SELinux включен в CentOS 8.

Ранее мы подбродно разобрали этот вопрос:

Как отключить SELinux на RHEL 8 / CentOS 8

Рекомендуется отключить SELinux для правильной работы Zabbix.

Вы можете отключить SELinux, отредактировав файл /etc/selinux/config:

nano /etc/selinux/config

Измените следующую строку:

SELINUX=disabled
Сохраните и закройте файл, когда закончите, затем перезагрузите систему, чтобы изменения вступили в силу.
см. также:

Шаг 2 – Установите сервер LAMP

Во-первых, вам необходимо установить веб-сервер Apache, сервер базы данных MariaDB, PHP и другое необходимое расширение PHP в вашей системе.

Выполните следующую команду, чтобы установить все пакеты:

dnf install -y httpd mariadb-server php php-cli php-common php-mbstring php-mysqlnd php-xml php-bcmath php-devel php-pear php-gd

После завершения установки откройте файл php.ini и настройте некоторые параметры:

nano /etc/php.ini

Измените следующие значения в соответствии с вашими требованиями:

memory_limit 256M
upload_max_filesize 16M
post_max_size 16M
max_execution_time 300
max_input_time 300
max_input_vars 10000
date.timezone = Europe/Moscow
Сохраните и закройте файл, затем запустите службу Apache и MariaDB и разрешите им запускаться после перезагрузки системы с помощью следующей команды:
systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

Шаг 3 – Настройте базу данных MariaDB

По умолчанию сервер MariaDB не защищен в CentOS 8.

Выполните следующую команду, чтобы защитить MariaDB:

mysql_secure_installation
Этот скрипт установит пароль root для MariaDB, удалит анонимных пользователей, запретит вход в систему удаленно  и удалялит тестовую базу данных, как показано ниже:
Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Как только MariaDB защищен, войдите в оболочку MariaDB с помощью следующей команды:

mysql -u root -p

После входа в систему создайте базу данных и пользователя для Zabbix с помощью следующей команды:

MariaDB [(none)]> CREATE DATABASE zabbix CHARACTER SET utf8 collate utf8_bin;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY ‘zabbixpassword’;
Затем очистите привилегии и выйдите из оболочки MariaDB с помощью следующей команды:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Если вы столкнулись с ошибкой:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘‘zabbixpassword’’ at line 1 
Проверьте корректность созданной базы данных:
mysql> create database zabbix;
mysql> create user ‘zabbix’@’localhost’ identified by ‘парользаббикс’;
mysql> grant ALL on zabbix.* to ‘zabbix’@’localhost’;
mysql> flush privileges;

Шаг 4 – Установите Zabbix сервер

Перед установкой Zabbix вам необходимо установить библиотеку libssh2, необходимую для Zabbix.

Вы можете установить ее с помощью следующей команды:

dnf install -y http://mirror.centos.org/centos/8.0.1905/AppStream/x86_64/os/Packages/libssh2-1.8.0-8.module_el8.0.0+189+f9babebb.1.x86_64.rpm

По умолчанию Zabbix недоступен в репозитории CentOS 8.

Поэтому вам нужно будет установить репозиторий Zabbix в вашей системе.

На момент написания этого руководства последняя версия Zabbix была Zabbix 4.4.

Вы можете установить пакет репозитория Zabbix 4.4, выполнив следующую команду:

dnf install -y https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm

После создания репозитория выполните следующую команду, чтобы установить Zabbix сервер с другими необходимыми пакетами:

dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-apache-conf
После завершения установки запустите сервер Zabbix, агент Zabbix и службы PHP-FPM и включите их после перезагрузки системы с помощью следующей команды:
systemctl start zabbix-server
systemctl start zabbix-agent
systemctl start php-fpm
systemctl enable zabbix-server
systemctl enable zabbix-agent
systemctl enable php-fpm
Сервер и агент Zabbix теперь запущены и прослушивают порты 10050 и 10051.
Вы можете проверить их, используя следующую команду:
netstat -ant | grep LISTEN
Вы должны получить следующий вывод:
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 :::10050                :::*                    LISTEN     
tcp6       0      0 :::10051                :::*                    LISTEN     
tcp6       0      0 :::3306                 :::*                    LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN

Шаг 5 – Настройте Zabbix

Сначала вам нужно будет импортировать схему базы данных в базу данных Zabbix.

Вы можете импортировать ее с помощью следующей команды:

cd /usr/share/doc/zabbix-server-mysql
zcat create.sql.gz | mysql -u zabbix -p zabbix
Затем отредактируйте файл zabbix_server.conf и определите свои учетные данные базы данных Zabbix:
nano /etc/zabbix/zabbix_server.conf

Измените следующие строки:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbixpassword

Сохраните и закройте файл.

Затем настройте PHP для веб-интерфейса Zabbix, отредактировав следующий файл:

nano /etc/php-fpm.d/zabbix.conf

Измените значение часового пояса на желаемое значение, как показано ниже:

php_value[date.timezone] = Europe/Moscow
Сохраните и закройте файл, когда закончите.
Затем перезапустите все службы, чтобы применить изменения:
systemctl restart zabbix-server
systemctl restart zabbix-agent
systemctl restart php-fpm
systemctl restart httpd
systemctl restart mariadb

Шаг 6 – Настройка брандмауэра для Zabbix

Далее вам нужно будет разрешить порты Zabbix 10050 и 10051. и службу HTTP через firewalld.

Вы можете разрешить их с помощью следующей команды:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp

Теперь перезагрузите сервис firewalld для реализации изменений:

firewall-cmd --reload

Шаг 7 – Доступ к веб-интерфейсу Zabbix

Теперь откройте ваш любимый веб-браузер и введите URL-адрес http://ваш-адрес/zabbix.

Вы будете перенаправлены в мастер веб-установки Zabbix на следующем экране:

Нажмите на кнопку «next step».

Вы должны увидеть следующую страницу:

Убедитесь, что все необходимые зависимости установлены, затем нажмите кнопку «next step».
Вы должны увидеть следующую страницу:
Укажите  учетные данные базы данных и нажмите кнопку «Next step».
Укажите данные своего сервера и нажмите кнопку «Next step».
Убедитесь, что все параметры конфигурации верны, затем нажмите кнопку «Next step».
После успешного завершения установки вы должны увидеть следующую страницу:
Нажмите на кнопку Finish.
Вы будете перенаправлены на страницу входа в Zabbix, как показано ниже:
Укажите имя пользователя и пароль Zabbix по умолчанию [ Admin / zabbix ] и нажмите кнопку «Sign-in».
Вы должны увидеть панель инструментов Zabbix на следующем экране:

Заключение

Поздравляем! вы успешно установили Zabbix сервер на сервере CentOS 8

Статьи по теме:

Как установить агент Zabbix на Debian 9/8

Telebix: получать команды и отправлять информацию из инфраструктуры, контролируемой Zabbix

Zabbix Threat Control — плагин оценки уязвимости с помощью Zabbix

Как установить Zabbix и добавить удаленные хосты на Ubuntu 18.04

Как установить и настроить Zabbix на RHEL / CentOS 7

Как добавить мониторинг MySQL в Zabbix 3.2

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий

  1. Влад

    Зачем отключать selinux? Его придумали не зря. Он прекрасно настраивается. Вам понадобится ввести всего 3-4 команды. Не отключайте selinux!

    Ответить
    1. cryptoparty автор

      Чтобы не нагромождать руководство. Вы можете описать и мы обязательно дополним! Любые дополнения приветствуются

      Ответить
  2. Сергей

    После ввода
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY ‘zabbixpassword’;

    появляется ошибка

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘‘zabbixpassword’’ at line 1

    Ответить
    1. Сергей

      zabbixpassword нужно заменить на будущий пароль, как понимаю.

      Ответить
    2. cryptoparty автор

      Странно, по идее все правильно. Может он хочет 127.0.0.1 вместо локалхоста

      Ответить
    3. Alexander

      Потому что прежде чем дать права пользователю на базу, его нужно создать!
      mysql> create database zabbix;
      mysql> create user ‘zabbix’@’localhost’ identified by ‘парользаббикс’;
      mysql> grant ALL on zabbix.* to ‘zabbix’@’localhost’;
      mysql> flush privileges;

      Ответить
      1. cryptoparty автор

        Я думал он врятли начал с GRANT ALL PRIVILEGES ON

        Ответить
        1. Alexander

          Я с эмулировал данную комбинацию как в инструкции и это привело к данной ошибке. Если можешь поправь чтоб те кто не понимают что значат команды могли без труда всё установить. Остальное всё написано правильно и работает, проверил.

          Ответить
          1. cryptoparty автор

            Хорошо, спасибо за дополнение, добавлю!

  3. Сергей

    zabbix-server.service – Zabbix Server
    Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
    Active: activating (auto-restart) (Result: exit-code) since Wed 2021-06-16 16:11:40 MSK; 6s ago
    Process: 1789 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
    Main PID: 1791 (code=exited, status=1/FAILURE)

    июн 16 16:11:40 localhost.localdomain systemd[1]: zabbix-server.service: Main process exited, code=exited, status=1/FAILURE
    июн 16 16:11:40 localhost.localdomain systemd[1]: zabbix-server.service: Failed with result ‘exit-code’.

    Ответить
  4. Сергей

    Что делать если такая вот ошибка

    Ответить
    1. Сергей

      zabbix-server.service – Zabbix Server
      Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled)
      Active: activating (auto-restart) (Result: exit-code) since Wed 2021-06-16 16:11:40 MSK; 6s ago
      Process: 1789 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
      Main PID: 1791 (code=exited, status=1/FAILURE)

      июн 16 16:11:40 localhost.localdomain systemd[1]: zabbix-server.service: Main process exited, code=exited, status=1/FAILURE
      июн 16 16:11:40 localhost.localdomain systemd[1]: zabbix-server.service: Failed with result ‘exit-code’.

      Ответить
      1. cryptoparty автор

        системный юнит скиньте

        Ответить