Обновление 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, т.к. последний версия репозитория 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
В системе версия 7.2. Переключаемся на 7.4.
# dnf module switch-to php:7.4
Проверяем и видим, что PHP 7.4 присутствует.
Переходим к установке Забикс сервера, веб интерфейса и агента, все по инструкции:
# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
Забикс будет работать на БД 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
Проверяем статус работы забикс -сервера.
sudo systemctl status zabbix-server
Сервер использует 10051 порт, агент 10050 порт.
они должны быть разрешены в фаерволе.
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
При установке забикса создается файл конфигурации /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.
Источники: