Развертывание сервера с свободной системой мониторинга статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования Zabbix на ОС Linux CentOS 7 -------------------------------------------------------------------------------------------------------------------------------------------------------------- Все описанные ниже действия выполнялись под пользователем root -------------------------------------------------------------------------------------------------------------------------------------------------------------- Всем привет! Для реализации данного проекта мне потребовалось: 1) Прописать статические IP-адреса; 2) Обновить пакеты ОС Linux CentOS 7 до последней версии; 3) Отключить систему принудительного контроля доступа SELinux; 4) Установить дополнительный Epel-репозиторий; 5) Установить репозиторий Zabbix Server 4.2; 6) Установить пакеты Zabbix Server-а; 7) Установить и запустить сервис синхронизации времени; 8) Настроить брандмауэр; 9) Установить и настроить БД; 10) Установить и настроить Web-сервер Nginx; 11) Установить и настроить PHP. Установить дополнительные компоненты для PHP. Установить Nano; 12) Настроить совместнуб работу Nginx и PHP; 13) Создать и настроить БД; 14) Настроить конфигурационный файл Zabbix; 15) Запустить Zabbix Server; 16) Настроить Nginx; 17) Настроить Zabbix через Zabbix Web. -------------------------------------------------------------------------------------------------------------------------------------------------------------- Предисловие: ------------ Nano — это консольный текстовый редактор для UNIX и Unix-подобных операционных систем, основанный на библиотеке curses и распространяемый под лицензией GNU GPL. ------------ SELinux — реализация системы принудительного контроля доступа, которая может работать параллельно с классической избирательной системой контроля доступа. ------------ EPEL (Extra Packages for Enterprise Linux) ― это открытое бесплатное хранилище пакетов от Fedora. Оно содержит пакеты дополнительного программного обеспечения для Linux. Пакеты этого репозитория не конфликтуют с пакетами RHEL, поэтому этот репозиторий самый безопасный в использовании для CentOS. ------------ NMTUI — это инструмент командной строки, который используется для настройки сети в системах Gnu / Linux. При запуске он вызывает графический текстовый интерфейс, который помогает пользователям легко и эффективно настраивать сетевые интерфейсы. ------------ Zabbix — это свободная система мониторинга статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования. -------------------------------------------------------------------------------------------------------------------------------------------------------------- 1) Для избежания потери связи с АРМ/VM, нужно позаботиться о статической IP-адресации. Её можно настроить как на самой АРМ/VM, так и на самом сетевом устройстве. Статическую адресацию можно прописать с помощью инструмента командной строки nmtui. ------------ yum install -y NetworkManager-tui |#|#| Установка пакета "nmtui" для настройки сети на АРМ/VM ------------ Гайд по тому, как пользоваться инструментом nmtui, вы можете посмотреть в интернете. -------------------------------------------------------------------------------------------------------------------------------------------------------------- 2) Обновление пакетов системы. ------------ yum update -y && yum upgrade -y |#|#| Поиск и обновление пакетов системы ------------ reboot |#|#| Команда для перезагрузки АРМ/VM -------------------------------------------------------------------------------------------------------------------------------------------------------------- 3) Отключение системы принудительного контроля доступа SELinux. ------------ setenforce 0 |#|#| Команда для отключения SELinux в текущий момент ------------ sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config |#|#| Команда для отключения SELinux на постоянную основу -------------------------------------------------------------------------------------------------------------------------------------------------------------- 4) Установка Epel-репозитория. ------------ yum install -y epel-release |#|#| Команда для подключения Epel-репозитория -------------------------------------------------------------------------------------------------------------------------------------------------------------- 5) Установка репозитория Zabbix Server 4.2. ------------ yum install -y https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-2.el7.noarch.rpm |#|#| Команда для подключения Zabbix-репозитория -------------------------------------------------------------------------------------------------------------------------------------------------------------- 6) Установка пакетов Zabbix Server-а. ------------ yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get |#|#| Команда установки пакетов Zabbix Server-а -------------------------------------------------------------------------------------------------------------------------------------------------------------- 7) Установка и запуск сервиса синхронизации времени. ------------ yum install -y chrony |#|#| Команда для установка пакета Chrony ------------ systemctl enable chronyd |#|#| Команда для добавления службы Chrony в автозагрузку ------------ systemctl start chronyd |#|#| Команда для запуска службы Chrony -------------------------------------------------------------------------------------------------------------------------------------------------------------- 8) Настройка брандмауэра. ------------ firewall-cmd --permanent --add-port={80/tcp,443/tcp,10051/tcp,10050/tcp,10050/udp,10051/udp} |#|#| Команда для открытия tcp-портов: 80, 443, 10051, 10050 и udp-портов: 10050, 10051 ------------ firewall-cmd --reload |#|#| Команда для перезапуска файрвола и применения всех изменений -------------------------------------------------------------------------------------------------------------------------------------------------------------- 9) Установка и настройка БД. ------------ yum install -y mariadb mariadb-server |#|#| Команда для установки пакетов "Mariadb" и "Mariadb-Server" ------------ systemctl enable mariadb |#|#| Команда для добавления службы Mariadb в автозагрузку ------------ systemctl start mariadb<>/a |#|#| Команда для запуска службы Mariadb ------------ mysqladmin -u root password |#|#| Команда для создания пароля для суперпользователя СУБД -------------------------------------------------------------------------------------------------------------------------------------------------------------- 10) Установка и настройка Web-сервера Nginx. ------------ yum install nginx |#|#| Команда для установки пакета Nginx ------------ systemctl enable nginx |#|#| Команда для добавления службы Nginx в автозагрузку ------------ systemctl start nginx |#|#| Команда для запуска службы Nginx -------------------------------------------------------------------------------------------------------------------------------------------------------------- 11) Установка и настройка PHP. Установка дополнительных компонентов для PHP. Установка Nano. ------------ yum install -y php php-fpm php-mysql php-pear php-cgi php-common php-ldap php-mbstring php-snmp php-gd php-xml php-gettext php-bcmath |#|#| Команда для установки пакета "PHP" и дополнительных пакетов для корректной работы "PHP" ------------ yum install -y nano |#|#| Команда для установки пакета консольного текстового редактора Nano ------------ nano /etc/php.ini |#|#| Команда для открытия файла "php.ini" в текстовом редакторе Nano ------------ Приведите прописанные ниже строки в файле "php.ini" к следующему виду: date.timezone = "Asia/Yekaterinburg" max_execution_time = 300 post_max_size = 16M max_input_time = 300 max_input_vars = 10000 ------------ systemctl enable php-fpm |#|#| Команда для добавления службы "php-fpm" в автозагрузку ------------ systemctl start php-fpm |#|#| Команда для запуска службы "php-fpm" -------------------------------------------------------------------------------------------------------------------------------------------------------------- 12) Настройка совместной работы Nginx и PHP. ------------ nano /etc/nginx/nginx.conf |#|#| Команда для открытия файла nginx.conf в текстовом редакторе Nano ------------ Приведите раздел "server" в файле "nginx.conf" к следующему виду: server { listen 80 default_server; server_name _; set $root_path /usr/share/nginx/html; root $root_path; location / { index index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_buffer_size 32k; fastcgi_buffers 4 32k; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name; include fastcgi_params; fastcgi_param DOCUMENT_ROOT $root_path; fastcgi_read_timeout 300; } } ------------ nginx -t |#|#| Команда для проверки коррекности настроенной конфигурации Nginx ------------ systemctl restart nginx |#|#| Команда для перезапуска службы Nginx ------------ cd /usr/share/nginx/html |#|#| Команда для перехода в каталог "/usr/share/nginx/html" ------------ nano index.php |#|#| Команда для создания файла "index.php" ------------ Приведите текстовый файл "index.php" к следующему виду и не забудьте сохранить файл перед закрытием: <?php phpinfo(); ?> -------------------------------------------------------------------------------------------------------------------------------------------------------------- 13) Создание и настройка БД. ------------ mysql -u root -p |#|#| Команда для входа в реляционную систему управления БД(При входе вводите пароль от суперпользователя СУБД) ------------ CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; |#|#| Команда для создания БД "zabbix" ------------ GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbixpassword'; |#|#| Команда для создания пользователя "zabbix" с паролем "zabbixpassword" ------------ \q |#|#| Команда для выхода из реляционной системы управления БД ------------ cd /usr/share/doc/zabbix-server-mysql-* |#|#| Команда для перехода в каталог "/usr/share/doc/zabbix-server-mysql-*" ------------ gunzip create.sql.gz |#|#| Команда для распаковки архива с дампом базы ------------ mysql -u root -p zabbix < create.sql |#|#| Команда для восстановления БД(При восстановлении вводите пароль от суперпользователя СУБД) -------------------------------------------------------------------------------------------------------------------------------------------------------------- 14) Настройка конфигурационного файла Zabbix. ------------ nano /etc/zabbix/zabbix_server.conf |#|#| Команда для открытия файла "zabbix_server.conf" в текстовом редакторе Nano ------------ Приведите прописанные ниже строки в файле "zabbix_server.conf" к следующему виду(имя базы и пользователя должны быть "zabbix" т.к.они созданы в "mariadb"): DBPassword=zabbixpassword DBName=zabbix DBUser=zabbix -------------------------------------------------------------------------------------------------------------------------------------------------------------- 15) Запуск Zabbix Server. ------------ systemctl enable zabbix-server |#|#| Команда для добавления службы "zabbix-server" в автозагрузку ------------ systemctl start zabbix-server |#|#| Команда для запуска службы "zabbix-server" -------------------------------------------------------------------------------------------------------------------------------------------------------------- 16) Настройка Nginx. ------------ nano /etc/nginx/nginx.conf |#|#| Команда для открытия файла "nginx.conf" в текстовом редакторе Nano ------------ Приведите строку в текстовом файле "nginx.conf" к следующему виду и не забудьте сохранить файл перед закрытием: set $root_path /usr/share/zabbix; ------------ systemctl restart nginx |#|#| Команда для перезапуска службы "Nginx" -------------------------------------------------------------------------------------------------------------------------------------------------------------- 17) Настройка/установка Zabbix через Zabbix Web. ------------ 1. Открываете браузер и переходите по адресу http://IP-address server-a/zabbix/ — откроется страница установки Zabbix Web и нажимаем на кнопку "Next Step" 2. Далее внимательно смотрим на результаты проверки нашего Web-сервера — справа мы должны увидеть все OK. Когда все результаты будут OK, нажимаем на "Next Step" 3. Далее настройки подключения к базе оставляем как есть — дополнительно прописываем пароль, который задали при создании пользователя zabbix (в нашем случае zabbixpassword). После нажимаем "Next Step" 4. Далее в окне оставляем все как есть и нажимаем "Next Step" 5. В последнем окне мы проверяем настройки и нажимаем "Next Step" 6. После завершения установки нажимаем на кнопку "Finish" 7. Для входа в систему используйте следующие учетные данные: Login: Admin Password: zabbix -------------------------------------------------------------------------------------------------------------------------------------------------------------- На этом инструкция закончена! Спасибо за внимание!