Обновление Centos 8 до CentOS 8 Stream и установка Zabbix 6.2

Обновление Centos

Имеем Centos 8.4. Поддержка CentOS 8 заканчивается в 2021 году. После того, как Red Hat выкупили CentOS, было объявлено о создании нового релиза. Релиз был назван CentOS Stream.Вскоре Red Hat объявили о прекращении финансовой поддержки CentOS, и стало ясно, что её закрывают, оставляя CentOS Stream. Наши  приложения размещены на сервере CentOS 8, а выпуски обновлений операционной системы прекратились. И значит, пришло время обновить свой сервер до CentOS Stream release 8.

Проверяем какая версия ОС установлена.

cat /etc/centos-release или cat /etc/os-release

Результат вывода = Centos Linux release 8.4.

Обновляем пакеты dnf update и видим  ошибку в консоли.

8.4_dnf_update_error

Это означает, что система не может установить обновения из устаревшего репозитория 8.4, т.к. последний версия репозитория 8.6, которой нет в системе. Чтобы обновиться до ветки Stream нам нужно закачать новые репозитории ветки Stream. Кроме того в логах /var/log/dnf.log:

dnf.exceptions.RepoError: Failed to download metadata for repo ‘appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
2022-10-10T08:11:43+0300 CRITICAL Error: Failed to download metadata for repo ‘appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

Это означает, что по  путям, где находятся репозитарии, уже ничего не находится, поскольку текущая версия уже не поддерживается. Нам нужно поменять URL на актуальные.

sudo sed -i -e “s|mirrorlist=|#mirrorlist=|g” /etc/yum.repos.d/CentOS-*
sudo sed -i -e “s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g” /etc/yum.repos.d/CentOS-*

Проверяем, заходим /etc/yum.repos.d,открываем любой файл с названием CentOS и видим, что URL изменился.

[baseos]
name=CentOS Linux $releasever – BaseOS
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra
baseurl=http://vault.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/

Теперь качаем и устанавливаем новые репозитории

dnf swap centos-{linux,stream}-repos

Указываем системе использовать новые репозитории

dnf swap centos-{linux,stream}-repos

Синхронизируемся с новым репозиторием.

dnf distro-sync

После успешного выполнения проверяем cat /etc/centos-release или cat /etc/os-release версию ОС = CentOS Stream release 8

Делаем ребут.  Если в логам не видим ошибок .

Шпаргалка по использованию dnf:

# dnf –version            Проверка версии DNF
# dnf repolist               Вывод списка включенных репозиториев DNF
# dnf repolist all         Просмотр всех включенных и отключенных репозиториев DNF
# dnf list                  Вывод списка всех доступных и установленных пакетов, используя DNF
# dnf list installed       Вывод списка всех установленных пакетов
# dnf list available      Вывод списка всех доступных пакетов
# dnf search nano        Поиск пакета с использованием DNF
# dnf provides               /bin/bash Просмотр описание файл/субпакет, к какому пакету принадлежит файл, что он делает?
# dnf info nano              Просмотр деталей пакета
# dnf install nano          Установка пакета с DNF
# dnf update systemd  Обновление пакета с использованием DNF
# dnf check-update      Проверка наличия обновлений системы с помощью DNF.
# dnf update или # dnf upgrade Обновление всех системных пакетов

Некоторые источники URL:

https://ruvds.com/ru/helpcenter/kak-zaupdeitit-centos-8-do-centos-stream/

https://stackoverflow.com/questions/70926799/centos-through-a-vm-no-urls-in-mirrorlist

Установка Zabbix

Заходим на официальный сайт Zabbix, на котором есть краткая инструкция по установке https://www.zabbix.com/ru/download?zabbix=6.2&os_distribution=centos&os_version=8&components=server_frontend_agent&db=mysql&ws=apache

Выбираем версию 6.2, дистрибутив Centos,версия ОС 8Stream, компонент Заббикс Server,Frontend,Agent, база данных MySQL,веб сервер Apache.

Далее следуем инструкции с оф.сайта, скачиваем репозиторий Zabbix

# rpm -Uvh https://repo.zabbix.com/zabbix/6.2/rhel/8/x86_64/zabbix-release-6.2-3.el8.noarch.rpm
# dnf clean all

После выполнения заходим в /etc/yum.repos.d и видим текстовый файл zabbix.repo , в котором прописан URL на офф. ресурсы Забикса.

Версия 6.2 Забикса работает на PHP 7.4, смотрим какая у нас версия PHP:

#dnf module list php

php_old

В системе версия 7.2. Переключаемся на 7.4.

# dnf module switch-to php:7.4

php_new

php7.4upgrade2

Проверяем и видим, что  PHP 7.4 присутствует.

PHP7.4_done

Переходим к установке Забикс сервера, веб интерфейса и агента, все по инструкции:

# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

zabix1-2

zabix3

Забикс будет работать на БД MySQL. Если на сервере БД нет, ее нужно установить. Потом создаем БД zabbix, пользователя zabbix, даем пользователю zabbix все привелегии на БД zabbix.

# mysql -uroot -p
password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by ‘password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

Пароль на БД password нужно установить свой, потом его нужно будет прописать в конфиг забикс -сервера.

Некоторые команды для работы с MySQL:

SELECT user FROM mysql.user;                                                                                    # Список пользователей БД
SELECT user,host FROM mysql.user;                                                                           # Список пользователей БД+ с каких IP подключения
show databases;                                                                                                                     # Показать существующие БД
CREATE USER ‘new_user’@’localhost’ IDENTIFIED BY ‘password';                  #Создание пользователя
GRANT ALL PRIVILEGES ON database_name.* TO ‘new_user’@’localhost'; # Назначение привелегий пользователю на БД

Создание пользователя в БД. %=любой IP. Вместо % можно вписать конкретный IP, тогда, доступ будет только из него.

mysql> CREATE USER ‘root’@’%’ IDENTIFIED BY ‘PASSWORD';
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

Импортируем дефолтную БД в в нашу созданную БД zabbix, нужно будет ввести созданный пароль на БД zabbix.

# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql –default-character-set=utf8mb4 -uzabbix -p zabbix

После выполнения отключаем опцию log_bin_trust_function_creators:

# mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

Заходим в конфиг сервера забикс /etc/zabbix/zabbix_server.conf и вводим пароль  БД.

DBPassword=password

Запускаем сервер и агент Забикса, рестартуем appache и активируем автозагрузку.

# systemctl restart zabbix-server zabbix-agent httpd php-fpm
# systemctl enable zabbix-server zabbix-agent httpd php-fpm

zabix4run

Проверяем статус работы забикс -сервера.

sudo systemctl status zabbix-server

status_zabbix

Сервер использует 10051 порт, агент 10050 порт.

netstat

они должны быть разрешены в фаерволе.

sudo firewall-cmd –permanent –zone=public –add-port=10050/tcp
sudo firewall-cmd –permanent –zone=public –add-port=10051/tcp
sudo firewall-cmd –reload

Проверяем внесение изменений.

firewall-cmd –permanent –list-all 

firewall

При установке забикса создается файл конфигурации  /etc/httd/conf.d/zabbix.conf в котором прописывается алиас /zabbix. При открытии http://YouIP/zabbix увидим отображение веб страницы Забикса. Если у нас есть доменное имя, можем сконфигурировать Virtualhost:

<VirtualHost *:80>
ServerName your_domain
ServerAlias your_IP
DocumentRoot /usr/share/zabbix
ErrorLog /var/log/zabbix/error.log
CustomLog /var/log/zabbix/access.log combined
</VirtualHost>

При первом открытии страницы в браузере вводим логин Admin, пароль  zabbix, далее  увидим используемые параметры PHP, потом нужно ввести пароль в БД MySQL для пользователя zabbix.

Источники:

https://uh.ua/kb/vps/software-installation/zabbix.html