57. Лайт оптимизация Proxmox.

Для того, чтобы любая система работала максимально долго и стабильно, крайне необходимо иногда заглядывать в системный журнал (лог)и изучать его на на наличие ошибок. Так же, это первое место куда следует смотреть если система работает  нестабильно. Благодаря тексту ошибки и поисковым системам можно быстро найти источник проблемы и решить её.

В Проксмоксе  журнал "прячется" под заголовком системных логов, внутри текущего юнита (ноды).



В нём можно найти много чего интересного если немного полистать, особенно, ориентируясь на время ошибок, отключений или зависаний если таковые были.

Начнём устранение ошибок по порядку их возникновения у автора. (не забываем сделать бэкапы виртуалок, перед внесением изменений в хост и сохранить их копию на внешнем носителе)

Пропадает связь с виртуальной машиной Home Assistant.

На самом деле связь могла пропасть с любой виртуалкой. Такое поведение было свойственно старой версии ядра системы (5.х - это версия ядра, не путать с версией самого менеджера).
Агент виртуальных машин QEMU по какой-то причине отваливался при работе на железе с процессорами старше 2020 года выпуска. Из-за этого, "отваливалась" сетевая карта у клиентской машины, что собственно и являлось причиной потери связи.
Решение очень простое - обновиться до актуальной версии ядра. На момент написания этого материала, таковой является версия 6.2.
Порядок действий:
  1. Выключить нормальным способом все машины и контейнеры.
  2. Проверить обновления пакетов командой apt update
  3. Если есть пакеты, то обновиться командой apt uprade
  4. Запустить команду обновления версии ядра apt install pve-kernel-6.2
  5. Перезагрузить хост с проксмоксом.

Глючный драйвер сетевой карты Realtek.

Может вызвать примерно такую картину в логах.


В отдельных случаях подвешивает наглухо весь хост.
Подобное стало проявляться после обновления перехода с 7 версии на 8.
Во первых, стоит поглядывать на эту ветку официального форума проксмокс.

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

Включение репозиториев.

Редактируем файл nano /etc/apt/sources.list
Для эксперимента можно закомментировать уже имеющиеся строки (добавить символ # в начале каждой строки). И добавить туда следующее:

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware

deb http://deb.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware

Установка драйвера.

После чего конечно же сделать проверку и установку обновлений.
apt-get update
apt-get dist-upgrade
И уже только потом выполнить команду: apt install r8168-dkms
Теперь можно перезагрузиться. После перезагрузки ошибки должны исчезнуть.

Отправка уведомлений по электронной почте с помощью GMail.

Конечно же все проходили этап во время установки, на котором надо было указать свой адрес (электронной почты конечно же). Но по факту, мало кто получает каки-либо письма от проксмокса. Это всё потому, что почтовые настройки не заданы в системе. И если поковыряться в логах, наверняка найдутся попытки сервера отправить сообщение. 
Итак, начнём настройку.

1. Сразу закроем вопрос со всем что имеет отношение к настройке внешнего сервися, т.е. GMail.
Заходим на главную страницу своего аккаунта, в раздел "Безопасность" -> тыц. И нажимаем на саму строку(не на стрелку справа) "Двухэтапная аутентификация".

В самом низу страницы будет интересующий нас пункт: Пароли приложений.
Нажимаем на стрелку справа и оказываемся там, где надо.


Здесь мы создаём новый уникальный пароль для этого аккаунта, только для входа в почтовый ящик. Можно указать желаемое название и система сама сгенерирует пароль. Сохраним его в сторонке на будущее.

Возвращаемся в проксмокс.

2. Для начала проверим что система обновлена: apt update

3. Установим/обновим сертификаты безопасности:  update-ca-certificates --fresh

4. И установим дополнительные модули: apt install -y libsasl2-modules mailutils

5. Теперь создадим файл с адресом почтового ящика, через который будет происходить отправка, и его паролем полученным в п.1. : echo "smtp.gmail.com вашадрес@gmail.com:вашпароль" > /etc/postfix/sasl_passwd

6. Зададим необходимые атрибуты для этого файла: chmod 600 /etc/postfix/sasl_passwd

7. Сохраним хэш пароля в файл базы данных самого мэйлера ("программы", которая будет отправлять почту): postmap hash:/etc/postfix/sasl_passwd
8. Отредактируем файл конфигурации Postfix (это и есть тот самый мэйлер): nano /etc/postfix/main.cf

Во первых, нас интересует строка relayhost =. Её закомментируем.
Во вторых, в конец файла добавляем следующий конфиг:
relayhost = smtp.gmail.com:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/Entrust_Root_Certification_Authority.pem
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtp_tls_session_cache_timeout = 3600s


9. Перезагружаем сам постфикс: postfix reload

Можно было бы сказать что на этом настройка завершена, если бы не вероятность появления в логах неприятного упоминания о несоответствии версий баз данных Postfix и файла с данными к почтовому ящику.
postfix/smtp[32208]: warning: database /etc/postfix/sasl_passwd.db is older than source file /etc/postfix/sasl_passwd

Это легко устраняется принудительным обновлением базы данных, с помощью команды: postmap /etc/postfix/sasl_passwd
После чего крайне желательно снова перезагрузить постфикс.

10. Проверка.
С помощью команды echo "sample message" | mail -s "sample subject" yourotheremail@gmail.com
проверяем отправку сообщений. в качестве адреса указываем другой ящик, а не тот, через который настроили отправку.
Если в логах нет сообщений об ошибках и видно что письмо ушло из очереди на отправку, значит скорее всего оно было успешно отправлено. Убедиться в этом можно зайдя в ящик,  на адрес которого отправляли тестовое письмо.

Очистка свободного места.

По умолчанию система настроена таким образом, что размер логов практически не ограничен. Плюс постоянно захламляется остатками разных файлов после обновлений и просто во время работы.
Приступим к уборке.

Очистка логов журнала в  /run/log/journal

Команда journalctl --disk-usage покажет сколько места на данный момент занимает журнал.
Archived and active journals take up 14.2M in the file system.

Редактируем файл настроек журнала: nano /etc/systemd/journald.conf
Находим в нём строку SystemMaxUse= (возможно она будет закомментирована, тогда убираем коммент).
После знака равенства, без пробела указываем максимально допустимый размер файла журнала в мегабайтах. Например 50M. Т.е. строка приобретает вид: SystemMaxUse=50M 
Перезапускаем службу журналирования: systemctl restart systemd-journald.service
Спустя некоторое количество времени можно начать периодически проверять как увеличивается файл журналов и переходит ли он указанные рамки.

Очистка /var/cache/apt

Происходит с помощью команд:
apt clean
apt purge
apt autoclean

  1. apt clean:

    • удаляет все загруженные пакеты из кэша /var/cache/apt/archives/. Она не оставляет никаких загрузок в кэше.
  2. apt purge:

    • Используется для удаления пакета вместе с его конфигурационными файлами. Обычно используется, чтобы полностью удалить пакет из системы, включая его настройки.
  3. apt autoclean:

    • Удаляет только устаревшие загрузки пакетов из кэша. Сохраняет последние версии  загруженных пакетов, но удаляет устаревшие.

Автоматическое удаление программных пакетов, которые были установлены автоматически и больше не нужны (устаревшие):
apt autoremove


На этом пока всё. Следите за своей системой, и она будет радовать вас долгой и стабильной работой.

Комментарии