четверг, 29 декабря 2022 г.

Установка Grafana в RockyLinux 9. Подключение Grafana к Clickhouse. Подключение Grafana к MariaDB. M2Collector.

Установка grafana с примерками команд описана на сайте https://grafana.com/grafana/download. Для бесплатного использования необходимо выбирать для установки версию OSS, а не Enterprise

Для установки свежего пакета grafana (9.3) на сервер выполняем:
# cd /usr/src/
# wget https://dl.grafana.com/oss/release/grafana-9.3.2-1.x86_64.rpm
# yum install grafana-9.3.2-1.x86_64.rpm
# systemctl start grafana-server
# systemctl enable grafana-server

Сервер grafana работает на порту 3000
Открываем порт 3000 в firewalld:
# firewall-cmd --permanent --zone=public --add-port=3000/tcp
# firewall-cmd --reload

Обратиться к нему можно по url: http://IPадрес:3000
По умолчанию данные для входа admin / admin
После первого входа сразу будет предложено сменить пароль.

Для установки плагина для grafana, работающего с clickhouse из консоли сервера выполняем:
# grafana-cli plugins install vertamedia-clickhouse-datasource
# systemctl restart grafana-server

(Страница плагина https://grafana.com/grafana/plugins/vertamedia-clickhouse-datasource/)
Для работы с сервером MariaDB специального плагина не нужно. В комплекте с Grafana уже идет предустановленный плагин для работы с базой MySQL. Этот плагин подойдет для работы с MariaDB.

После установки Grafana первым делом необходимо добавить в систему источники данных, куда должна обращаться система для извлечения исходных данных.
Для добавления базы clickhouse выполняем следующее:
Слева снизу выбираем иконку настроек (шестеренку) и пункт меню "Data Sources"
В окне добавления источников данных нажимаем кнопку "Add data source" 


В поисковой строке набираем “clickhouse”. Затем кликаем по найденному плагину "Altinity plugin for ClickHouse".

 
В поле URL вводим URL для доступа к базе. В случае ELIS это http://10.10.49.165:8123.
В простейшем случае более ничего не требуется.
Пример:


Нажимаем кнопку "Save&Test". Источник данных будет добавлен в систему.

 
Для добавления базы MariaDB выполняем следующее:
Слева снизу выбираем иконку настроек (шестеренку) и пункт меню "Data Sources". В поисковой строке набираем “mysql” и кликаем по найденному плагину


В открывшемся окне нужно заполнить данные для доступа к базе данных MariaDB:
Host, Database, User, Password.
Пример:


Нажимаем кнопку "Save&Test". Источник данных будет добавлен в систему.

Для того что что бы отобразить информацию о самой базе ClickHouse можем воспользоваться готовым дашбордом с ресурса
https://grafana.com/grafana/dashboards/?search=clickhouse
Например, "ClickHouse ANAL" с ID=14719
Для того что бы создать на основе этого шаблона dashboard, слева выбираем Dashboards -> +Import
В поле с ID вписываем номер 14719, нажимаем "Load", затем выбираем источник данных, который создали ранее (имя по умолчанию "Altinity plugin for ClickHouse (default)") и нажимаем "Import". Будет создан новый dashboard, отражающий параметры базы ClickHouse.


Для того что что бы отобразить информацию о самой базе MariaDB можем воспользоваться готовым дашбордом с ресурса
https://grafana.com/grafana/dashboards/?search=clickhouse
Например, можно воспользоваться плагином «2MySQL Simple Dashboard 4 MariaDB» с ID 11679.
Для того что бы создать на основе этого шаблона dashboard, слева выбираем Dashboards -> +Import
В поле с ID вписываем номер 11679, нажимаем "Load", затем выбираем источник данных, который создали ранее (в нашем случае MySQL UHOTOOL-2) и нажимаем Import. Будет создан новый dashboard, который призван отражать параметры базы MariaDB. Но по умолчанию база MariaDB не готова отображать статистику своей работы. И dashboard будет выглядеть так:

 
Пока информации тут никой нет. Дело в том, что статистику взять не откуда. Что бы статистика работы MariaDB накапливалась в самой базе MariaDB необходимо воспользоваться решением my2Collector - https://github.com/meob/my2Collector
Нужно сказать и запустить скрипт my2.sql, который создаст дополнительную базу данных на сервере. В эту базу данных с периодичностью 10 минут будут записываться данные о работе сервера MariaDB.
Запуск скрипта выполняется так:
# mysql --user=root -h127.0.0.1 -p < my2.sql
Затем вводиться пароль, после чего сгенерируется новая база my2.
Пользователю, которого мы прописывали в качестве параметров к источнику данных в Grafana нужно дать право выполнять Select в базе данных my2. В нашем случае это выполняется для пользователя viewuser
(GRANT SELECT ON `my2`.* TO 'viewuser'@'%';)
Из представления дашборда сразу исчезнут ошибки, но данные появятся только спустя некоторое время, когда произойдет накопление.

Пример dashboard с данными:


Для создания своего дашборда, который бы брал данные из источников clickhouse или MariaDB нужно выбрать пункт меню слева Dashboards -> + New Dashboards. Затем кликнуть по «Add a new panel». Внизу в левой части экрана настраиваются метрики, которые нужно отобразить, в колонке справа настраивается внешний вид графиков, сверху слева – будет представление метрик.  

Пример запроса к источнику Clickhouse для отображения метрики утилизации CPU

SELECT
    $timeSeries as t,
    diffmetrics.value as cpu
FROM $table
WHERE
    $timeFilter
    and metric = 'CPU-Utilization'

Пример запроса к источнику MariaDB для показа количества вызовов пои данным radius аккаутинга:

Select
  Count(*) as q
From
  radacct
where
  acctsessiontime > 0
  and $__timeFilter(acctstarttime)








понедельник, 12 декабря 2022 г.

Apache перенаправление запросов RedirectMatch

Для того что бы заставить сервер Apache выполнять переадресацию запросов к ряду URL на другой сервер
нужно воспользоваться директивой RedirectMatch.

Данная директива имеет два параметра:
 - маску, с которой будет сравниваться поступившйи URL
 - путь назначения

Например, вот тут все запросу к URL к каталогу "_sakura" к файлам php, html, js
будут переадресовываться на ресурс http://10.10.9.252/
RedirectMatch "_sakura/(.*)\.html$" "http://10.10.9.252/"
RedirectMatch "_sakura/(.*)\.php$" "http://10.10.9.252/"
RedirectMatch "_sakura/(.*)\.js$" "http://10.10.9.252/"


Директивы следует вписывать в конфигурационный файл apache, в блок описывающий поведении директории.
Например сюда:
файл /etc/httpd/conf/httpd.conf
Раздел:
<Directory "/var/www/html">
....
RedirectMatch "_sakura/(.*)\.html$" "http://10.10.9.252/"
RedirectMatch "_sakura/(.*)\.php$" "http://10.10.9.252/"
RedirectMatch "_sakura/(.*)\.js$" "http://10.10.9.252/"
</Directory>




понедельник, 21 ноября 2022 г.

Ошибка вставки данных в MariaDB Server 10.9.3 mysqli_sql_exception Data too long for column

В MariaDB Server версий больше 10.1.6 включены по умолчанию режимы, требующие четкого соблюдения типов вставляемых данных.
https://mariadb.com/kb/en/sql-mode/
Например, если вставляемые текстовые данные по объему больше, чем определено в типе поля, то будет возникать ошибка:
Fatal error: Uncaught mysqli_sql_exception: Data too long for column

Посмотреть, какие режимы установлены в текущей инсталляции можно так:
MariaDB [(none)]> SELECT @@SESSION.sql_mode
    -> ;
+-------------------------------------------------------------------------------------------+
| @@SESSION.sql_mode                                                                        |
+-------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------+


Режим STRICT_TRANS_TABLES - как раз отвечает за контроль того, что длинна строки вставляемых данных должна быть меньше определенной
в структуре таблицы значения. Можно отключить этот режим и тогда вставка данных будет происходить как в старых версиях - входная строка будет обрезаться до максимально возможного, определенного в структуре таблице.

Установку редима можно производить каждый раз при подключении к таблице, точно так же как мы устанавливаем режим кодировки:

$query="SET NAMES utf8";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
$query="SET sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);

воскресенье, 6 ноября 2022 г.

Установка и использование graphviz в RockyLinux 9

Установка graphviz
# yum install 'graphviz*'

Установка репозитария PHP
# cd /usr/src
# wget http://pear.php.net/go-pear.phar
# php go-pear.phar


Установка пакета php GraphViz
(https://pear.php.net/package/Image_GraphViz)
# /usr/bin/pear_old install Image_GraphViz

Теперь в коде PHP можно использовать:

require_once 'Image/GraphViz.php';
$gv = new Image_GraphViz();

И использовать свойства $gv для построения графиков

среда, 26 октября 2022 г.

BTOP++. Продвинутый аналог утилиты TOP

Ссылка на проект: https://github.com/aristocratos/btop
Установка из исходных кодов:
# cd /usr/src/
# mkdir btop
# cd btop
С ресурса скачиваем свежую версию утилиты https://github.com/aristocratos/btop/releases/tag/v1.2.12
# wget https://github.com/aristocratos/btop/releases/download/v1.2.12/btop-x86_64-linux-musl.tbz
Распаковываем архив:
# yum install bzip2
# bzip2 -d btop-x86_64-linux-musl.tbz
# tar -xvf btop-x86_64-linux-musl.tar
# make install


# ./setuid.sh
Запуск:
# /usr/local/bin/btop
Наслаждаемся фантастическим дизайном отображения основных характеристик сервера:




Утилита ncdu. Отображение размера занятого дискового пространства в псевдографическом интерфейсе

Установка утилиты
# yum install ncdu

Для использования нужно выполнить команду ncdu с аргументом в котором написать путь для сканирования. Например, «/»
#ncdu /
Утилита просканирует систему и представит наглядный интерфейс занятого места:
 


воскресенье, 23 октября 2022 г.

Подключение из нового Rocky Linux 9 к старому CentOS 6

Rocky Linux 9 имеет повышенный уровень защищенности.
В ОС по умолчанию не поддерживается устаревший алгоритм шифрования SHA1.
Подключение к старой версии CentOS 6.4 затруднительно.
При настройках по умолчанию подключение выдает ошибку:
# ssh root@10.10.50.252
ssh_dispatch_run_fatal: Connection to 10.10.50.252 port 22: error in libcrypto

Есть два способа устранить проблему:

1) В старой системе CentOS 6.4 использовать алгоритм ECDSA вместо RSA для создания ключа.
На сервере CentOS6.4 ключ ECDSA создается так:
# yum update openssh
# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -C '' -N ''
# chmod 600 /etc/ssh/ssh_host_ecdsa_key
# chmod 640 /etc/ssh/ssh_host_ecdsa_key.pub
# restorecon /etc/ssh/ssh_host_ecdsa_key.pub

Добавляем в настройки демона ssh опцию использования ключа ECDSA
# nano /etc/ssh/sshd_config
Добавляем строчку:
    HostKey /etc/ssh/ssh_host_ecdsa_key
Рестартуем сервис SSH:
# service sshd restart
На новом сервере Rocky Linux 9 указываем в настройках клиента SSH:
# nano /etc/ssh/ssh_config
    Host 10.10.50.252
        Hostkeyalgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521

Рестартуем сервис SSH:
# systemctl restart sshd

2) Разрешить на Rocky Linux 9 работать с алгоритмом SHA1.
Для этого нужно выполнить команду:
# update-crypto-policies --set DEFAULT:SHA1
Данная команда добавит к настройкам по умолчанию возможность работы с SHA1
После этого нужно перезагрузить систему:
# reboot
Просмотр текущих политик шифрования:
# update-crypto-policies --show
Подробнее о политиках шифрования в Rocky Linux 9 (red hat 9):
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/security_hardening/using-the-system-wide-cryptographic-policies_security-hardening
Возврат к первоначальным политикам шифрования:
# update-crypto-policies --set DEFAULT
# reboot


Примечание:
Если на удаленном сервере провели замену типа ключа шифрования,
то при подключении к удаленному серверу на локальном может возникать ошибка:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:hsXXFgEjfF3lSdQEiTmN+EvuEbhY7eR.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending RSA key in /root/.ssh/known_hosts:2
Host key for 10.10.50.252 has changed and you have requested strict checking.
Host key verification failed.

Для решения проблемы нужно на локальном сервере удалить старый ключ из файла /root/.ssh/known_hosts
# nano /root/.ssh/known_hosts
Здесь нужно найти строчку с IP адресом удаленного сервера, к которому подключаемся.
Например, строка может быть такая:
10.10.50.252 ssh-rsa AAAAB3NzaC1yc2EAAAaKNoaFSSnD/S5mvc
Удаляем строку.
После этого подключение к удаленному серверу 10.10.50.252 по новому протоколу ECDSA будет проходить успешно.

пятница, 21 октября 2022 г.

MariaDB10 особенности работы mysqldump со старыми серверами MySQL5

На новом сервере установил MariaDB 10.9.1

Обнаружил, что команды mysqldump с удаленным сервером 10.10.50.252 с MySQL 5.1 работают не так как ожидалось.
Например, команда которая должна выгружать данные (без структуры) с удаленного сервера реально не работает:
# mysqldump -h10.10.50.252 -uuserdb -ppasswd --no-create-info dbname > dbname_data.sql
Оказалось, что при выполнении mysqldump на новом сервере и обращении к старому серверу нужно специально указывать опцию использования другого формата.
Это опция: --compatible=ansi
Таким образом команда должна быть такая:
# mysqldump -h10.10.50.252 -uuserdb -ppasswd --no-create-info --compatible=ansi dbname > dbname_data.sql
После анализа выгружаемой информации обнаружилось, что русские буквы не читаются в выгрузке.
Вместо русских букв - знаки вопроса, например: '????? ? ??????????? text 10.10.2017, ????'
Для решения проблем с кодировкой необходимо в команде задать используемую кодировку. Это опция: --default-character-set=utf8
Команда получается такая:
# mysqldump -h10.10.50.252 -uuserdb -ppasswd --no-create-info --compatible=ansi --default-character-set=utf8 dbname > dbname_data.sql
После выполнения команды в текущем каталоге будет корректный файл dbname_data.sql

Загрузка данных в новую базу данных на новый сервер из файла dbname_data.sql:
# mysql -uuserdb -ppasswd dbname < dbname_data.sql

среда, 19 октября 2022 г.

Исправление ошибки в браузере: не установлено корректное значение атрибута «SameSite»

В новых браузерах при работах с cookies файлами необходимо использовать атрибут SameSite. Данный атрибут предназначен для защиты от подделки межсайтовых запросов (CSRF). С помощью этого атрибута можно запретить браузеру передавать cookies файлы на другие сервера при переходе по ссылкам.

Если на сервере данный атрибут не задается явно, то в браузере в консоли разработчика будем видеть ошибки:
Для куки «XXXXX» не установлено корректное значение атрибута «SameSite». Вскоре куки без атрибута «SameSite» или с некорректным значением этого атрибута будут рассматриваться как «Lax». Это означает, что куки больше не будут отправляться в сторонних контекстах. Если ваше приложение зависит от доступности этих кук в подобных контекстах, добавьте к ним атрибут «SameSite=None». Чтобы узнать больше об атрибуте «SameSite», прочитайте https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite
Пример:


Для решения данной проблемы необходимо заставить сервер устанавливать атрибут SameSite в файлы cookies.

1)    В настройках php это прописывается в директиве session.cookie_samesite фаайла php.ini.
# nano /etc/php.ini
; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF)
; Current valid values are "Strict", "Lax" or "None". When using "None",
; make sure to include the quotes, as `none` is interpreted like `false` in ini files.
; https://tools.ietf.org/html/draft-west-first-party-cookies-07
session.cookie_samesite = Lax


2)    В коде php это прописывается так:
 Пример для php 8.1
setcookie('cookie-name', 'cookie-value',
 array('expires' => time() + 86400,
 'path' => '/',
'samesite' => 'Lax'));
 

Пример для php 5.4:
setcookie('cookie-name', 'cookie-value', 0, '/; samesite=Lax ');




Rocky Linux 9. Вывод ошибок PHP8 в web интерфейс

Для вывода ошибок php в web интерфейс нужно отредактировать php.ini
# nano /etc/php.ini
Устанавливаем следующие директивы в On
    display_errors = On
    display_startup_errors = On

Перезапускаем модуль php:
# systemctl restart php-fpm
Все.

Логи ошибок в консоли можно посмотреть тут:
# tail -f /var/log/php-fpm/www-error.log

вторник, 18 октября 2022 г.

Rocky Linux 9. Kernel panic при установке ОС.

При установке ОС на один из серверов  была получена ошибка:
Kernel panic - not syncing: Attempted to kill init! exitcode 0x00007f00
Внешний вид ошибки:

Причина оказалась в отказе разработчиков дистрибутивов от совместимости со старыми процессорами. Подробная информация:   
На сервере, на который пытался устанавливать ОС был процессор Intel Core2Duo, который не поддерживается в оптимизированном ядре дистрибутива RockyLinux 9. Пришлось установить Debian 11 )) 


понедельник, 17 октября 2022 г.

Rocky Linux 9. Установка MariaDB 10.9.3, Apache, PHP8.1, PhpMyAdmin 5.2.0

Установка MariaDB

Устанавливаем репозитарий MariaDB.
# curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash
Устанавливаем свежую стабильную версию MariaDB. На момент написания - это 10.9.3.
# yum install mariadb-server
Добавляем в автозапуск и запускаем сервис:
# systemctl enable mariadb.service
# systemctl start mariadb.service

Запускаем скрипт, инициализирующий удаление лишних тестовых баз и гостевых пользователей. Следующие ответы позволят задать root пароль для базы данных и позволить подключаться в базе с паролем root
# mariadb-secure-installation
    Switch to unix_socket authentication [Y/n] Y
    Change the root password? [Y/n] Y
    New password: <вводим пароль>
    Re-enter new password: <вводим пароль еще раз>
    Remove anonymous users? [Y/n] Y
    Disallow root login remotely? [Y/n] n
    Remove test database and access to it? [Y/n] Y
    Reload privilege tables now? [Y/n] Y


Открываем возможность доступа к Mariadb по сети:
# firewall-cmd --permanent --add-service=mysql
# firewall-cmd --reload


Установка Apache
# yum install httpd
# nano /etc/httpd/conf/httpd.conf

Имя сервера прописывается в директиве ServerName
ServerName serv.domain.ru:80
Добавляем сервер Apache в скрипт автозапуска и запускам сервис
# systemctl enable httpd.service
# systemctl start  httpd.service

Открываем порт 80 в файрволл:
# firewall-cmd --permanent --add-service=http
# firewall-cmd --reload

Проверяем работу Apache обратившись к серверу так: http://<IP-сервера>

Установка PHP 8.1.11
# dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
# dnf module reset php
# dnf module install php:remi-8.1
# dnf install php-gd php-odbc php-mysqlnd php-mysqli php-bcmath php-ctype php-json

Перезапускаем web-сервер
# systemctl restart httpd.service
Создаем файл для проверки работы PHP
# nano /var/www/html/info.php
вписываем туда
<?php phpinfo(); ?>
Теперь при запросе страницы Info.php (http://<IP-сервера>/info.php ) можно увидеть информацию о модуле PHP

Установка PHPMYADMIN.
# dnf install phpmyadmin
# nano /etc/httpd/conf.d/phpMyAdmin.conf

Добавляем Require all granted под Require local
<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8
   Require local
   Require all granted
</Directory>

Перезапускаем сервер Apache
# systemctl restart httpd.service
Теперь к странице phpmyadmin можно обратиться так: http://<IP-сервера>/phpmyadmin

Для добавления настроек, включающих дополнительные возможности PHPMYADMIN выполняем следующее:
Создаем базу данных для служебной информации:
# mysql < /usr/share/phpMyAdmin/sql/create_tables.sql -u root -p
Раскомментируем дополнительные возможности phpmyadmin в конфигурационном файле config.inc.php:
# nano /etc/phpMyAdmin/config.inc.php
Раскомментируем стоки:
 // Это логин пользователя, который можно сменить
 $cfg['Servers'][$i]['controluser'] = 'pma';
 // Пароль по умолчанию pmapass, который нужно обязательно заменить
 $cfg['Servers'][$i]['controlpass'] = 'pmapass123';
 $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
 $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
 $cfg['Servers'][$i]['relation'] = 'pma__relation';
 $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
 $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
 $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
 $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
 $cfg['Servers'][$i]['history'] = 'pma__history';
 $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
 $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
 $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
 $cfg['Servers'][$i]['recent'] = 'pma__recent';
 $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
 $cfg['Servers'][$i]['users'] = 'pma__users';
 $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
 $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
 $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
 $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
 $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
 $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

Подключаемся к консоли mysql и создаем пользователя pma с правами на базу данных phpmyadmin:
# mysql -uroot -p
>GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass123';
>GRANT SELECT (
        Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
        Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
        File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
        Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
        Execute_priv, Repl_slave_priv, Repl_client_priv
        ) ON mysql.user TO 'pma'@'localhost';
>GRANT SELECT ON mysql.db TO 'pma'@'localhost';
>GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
        ON mysql.tables_priv TO 'pma'@'localhost';
>GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost';

После данных манипуляций нужно выйти и заново зайти на страницу http://<IP-сервера>/phpmyadmin. Теперь можно пользоваться дополнительными возможностями программы.

четверг, 6 октября 2022 г.

Rocky Linux 9 в качестве виртуальной машины в Oracle VM VirtualBox.

После создания машины Linux в VirtualBox и установки Rocky Linux 9, при загрузке  выдается ошибка:

# journalctl -b -p err
Oct 06 18:22:28 localhost systemd-vconsole-setup[213]: /usr/bin/loadkeys failed with exit status 1.
Oct 06 18:22:28 localhost systemd[1]: Failed to start Setup Virtual Console.
Oct 06 18:22:29 localhost kernel: Warning: Unmaintained hardware is detected:  e1000:100E:8086 @ 0000:00:03.0
Oct 06 18:22:37 localhost kernel: [drm:vmw_host_printf [vmwgfx]] *ERROR* Failed to send host log message.

# systemctl status systemd-vconsole-setup
× systemd-vconsole-setup.service - Setup Virtual Console
     Loaded: loaded (/usr/lib/systemd/system/systemd-vconsole-setup.service; static)
     Active: failed (Result: exit-code) since Thu 2022-10-06 18:22:28 +04; 11min ago
       Docs: man:systemd-vconsole-setup.service(8)
             man:vconsole.conf(5)
   Main PID: 213 (code=exited, status=1/FAILURE)
        CPU: 189ms
Oct 06 18:22:28 localhost systemd-vconsole-setup[218]: loadkeys: Unable to open file: ru: No such file or directory
Oct 06 18:22:28 localhost systemd-vconsole-setup[213]: /usr/bin/loadkeys failed with exit status 1.
Oct 06 18:22:28 localhost systemd[1]: systemd-vconsole-setup.service: Main process exited, code=exited, status=1/FAILURE
Oct 06 18:22:28 localhost systemd[1]: systemd-vconsole-setup.service: Failed with result 'exit-code'.
Oct 06 18:22:28 localhost systemd[1]: Failed to start Setup Virtual Console.
Notice: journal has been rotated since unit was started, output may be incomplete.


Решение проблемы:
# dnf install kbd-legacy
# dracut -f
(выполняется несколько минут)


Еще одна возможная ошибка при загрузке Rocky Linux 9 на платформе VirtualBox:
Oct 06 18:40:22 localhost kernel: [drm:vmw_host_printf [vmwgfx]] *ERROR* Failed to send host log message.
Данная ошибка исправляется выставлением типа Графического контроллера в параметрах Дисплея виртуальной машины.
Нужно поставить Графический контроллер "VBoxVGA"


Следующая ошибка говорит о неверном драйвере для сетевого адаптера:
Oct 06 18:40:15 localhost kernel: Warning: Unmaintained hardware is detected:  e1000:100E:8086 @ 0000:00:03.0
Ошибка связана с сетевой картой Intel типа (e1000:100E) в VirtualBox и драйвером 0000:00:03.0
# ethtool -i enp0s3
driver: e1000
version: 5.14.0-70.13.1.el9_0.x86_64
firmware-version:
expansion-rom-version:
bus-info: 0000:00:03.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

В исправлении этой ошибки испробованы следующие методы:
1) Отключение механизмов: GSO (Generic Segmentation Offload), TSO (TCP Segmentation Offload) и GRO (Generic Receive Offload) на сетевом интерфейсе:
# ethtool -K enp0s3 gso off gro off tso off
2) Отключение генерации контрольных сумм:
# ethtool -K enp0s3 tx off rx off
Actual changes:
tx-checksum-ip-generic: off

tx-tcp-segmentation: off [not requested]
3) Отключение в настройках Системы виртуальной машины VirtualBox
В Дополнительных возможностях параметра "Включить I/O APIC".
После отключения данного параметра ошибки при загрузке системы исчезли.


Настройка сети в RockyLinux 9

Для настройки сети используется графический инструмент NetworkManager, под названием NMTUI. Запуск интерфейса из командной строки:
# nmtui
Откроется меню:
 


Выбираем первый пункт «Edit a connection» и нажимаем Enter. Откроется меню выбора интерфейса. Выбираем интерфейс, переходим на кнопку <Edit…> и нажимаем Enter.



Откроется окно редактирования сетевых параметров интерфейса. Для статического задания IP адреса на интерфейсе устанавливаем IPv4 CONFIGURATION в значение <Manual>. После этого можно будет задать:

Addresses – IP адрес и маску сети
Gataway – Шлюз сети
DNS Servers – IP адреса DNS серверов.

Опционально можно задать Routing  - маршруты через данный интерфейс.
Четыре опции (галочки) оставляем пустыми.

Never use this network for defaul route (Не использовать эту сеть для текущего маршрута)
Ignore automaticaliy obtained routes (Игнорировать автоматически полученные маршруты)
Ignore automaticaliy obtained DNS parametrs (Игнорировать автоматически полученные параметры DNS)
Require IPv4 addressing for this connection (Соединение требует адресации IPv4)

IPv6 CONFIGURATION можно установить в <Disabled>
Следующие галочки устанавливаем:

Automatically connect (Подключаться автоматически)
Available to all users (Доступно всем)


Переводим курсор на <OK> и нажимаем Enter. При этом мы вернемся в предыдущее меню. Выбираем “Activate a connection”, открывается меню, где можно активировать или деактивировать соединение. Для выхода из этого окна используем кнопку <back>


Возвратившись в основное меню, выбираем Quit. После этого произойдет возврат к консоли.

Проверить корректность изменений можно командами:
# ip a
# nmcli device show

среда, 5 октября 2022 г.

Ошибка при подключении к серверу по SSH - Couldn’t agree a key exchange algorithm

Установив новый дистрибутив RockyLinux 9 обнаружил проблемы при подключении к нему по SSH:

Ошибка – Couldn’t agree a key exchange algorithm …..
Я использую mtputty. Оказывается в качестве приложения SSH была старая версия PuTTY - 0.62.
Новую версию можно скачать отсюда:
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Для использования в mtputty нужно выбрать бинарный файл:

Скаченным файлом заменить файл в директории mtputty: App/putty/PUTTY.EXE