Подробный гайд по установке и настройке утилиты atop в ALT Linux - Часть 4
19. Безопасность логов
Логи atop могут содержать:
- имена пользователей;
- имена процессов;
- командные строки процессов;
- сетевую активность;
- дисковую активность.
Командные строки иногда содержат чувствительные данные: токены, пароли, адреса, имена файлов, параметры подключения.
Поэтому ограничьте доступ:
chown root:root /var/log/atop
chmod 750 /var/log/atop
Если логи нужны только root:
chmod 700 /var/log/atop
Проверьте права:
ls -ld /var/log/atop
ls -l /var/log/atop
20. Место на диске
Логи могут занимать заметное место, особенно если:
- интервал маленький;
- процессов много;
- включены подробности;
- включено логирование всех процессов;
- система активно использует диск и сеть.
Проверьте размер:
du -sh /var/log/atop
Проверьте файловую систему:
df -h /var/log
Если /var/log находится на маленьком разделе, лучше:
- увеличить интервал;
- уменьшить срок хранения;
- перенести логи на другой раздел.
21. Перенос логов на другой каталог или раздел
Если нужно перенести логи, например, на /srv/atop-log, сделайте это осторожно.
Пример:
systemctl stop atop
mkdir -p /srv/atop-log/atop
chmod 750 /srv/atop-log/atop
chown root:root /srv/atop-log/atop
mv /var/log/atop/* /srv/atop-log/atop/ 2>/dev/null
rmdir /var/log/atop
ln -s /srv/atop-log/atop /var/log/atop
systemctl start atop
Проверьте:
ls -lh /var/log/atop/
pgrep -a atop
Если служба жестко ожидает именно /var/log/atop, symlink обычно решает проблему, но лучше проверить логи и статус службы.
22. Настройка через systemd, если стандартный конфиг не применяется
Бывает, что пакет установлен, но systemd-юнит не читает /etc/sysconfig/atop или /etc/default/atop.
Сначала посмотрите юнит:
systemctl cat atop
- Если там есть
EnvironmentFile, правьте соответствующий файл. - Если
EnvironmentFileесть, но переменные другие, используйте уже существующие имена.
Если нужно переопределить параметры безопасно, используйте:
systemctl edit atop
Например, если юнит понимает переменные окружения, можно добавить:
[Service]
Environment=LOGINTERVAL=60
Environment=LOGGENERATIONS=30
Но если ExecStart жестко задан без переменных, такой способ может не сработать. Тогда нужно переопределять ExecStart, но это лучше делать только если вы понимаете, как именно пакет запускает atop.
23. Пример пользовательского systemd-логгера, если пакет не настроен
Это запасной вариант. Используйте его, только если стандартная служба не работает или вы хотите полностью контролировать запуск.
Создайте службу:
mcedit /etc/systemd/system/atop-logger.service
Содержимое:
[Unit]
Description=Custom atop logger
After=local-fs.target
[Service]
Type=simple
Nice=10
Restart=always
RestartSec=10
ExecStart=/bin/sh -c 'exec /usr/bin/atop -w /var/log/atop/atop_$(date +%%Y%%m%%d) 60'
[Install]
WantedBy=multi-user.target
Создайте таймер ежедневной ротации:
mcedit /etc/systemd/system/atop-logger-rotate.timer
Содержимое:
[Unit]
Description=Daily restart atop logger and cleanup old logs
[Timer]
OnCalendar=*-*-* 00:00:05
Persistent=true
[Install]
WantedBy=timers.target
Создайте сервис ротации:
mcedit /etc/systemd/system/atop-logger-rotate.service
Содержимое:
[Unit]
Description=Restart atop logger and delete old atop logs
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'systemctl restart atop-logger.service; find /var/log/atop -maxdepth 1 -type f -name "atop_*" -mtime +30 -delete'
Примените:
systemctl daemon-reload
Выключите стандартный atop, если он есть, чтобы не было двух процессов:
systemctl disable --now atop
Включите свой вариант:
systemctl enable --now atop-logger.service
systemctl enable --now atop-logger-rotate.timer
Проверьте:
systemctl status atop-logger.service
pgrep -a atop
ls -lh /var/log/atop/
24. Рекомендуемые профили настройки
24.1. Прод-сервер, минимальная нагрузка
LOGINTERVAL=300
LOGGENERATIONS=60
LOGOPTS=
Интерактивный /etc/atoprc:
interval 10
linelen 132
username 1
color 1
Подходит для долгосрочного наблюдения.
24.2. Обычный сервер, баланс
LOGINTERVAL=60
LOGGENERATIONS=30
LOGOPTS=
Подходит для большинства серверов.
24.3. Диагностика проблемы
Временно:
LOGINTERVAL=10
LOGGENERATIONS=3
Или временный ручной сбор:
atop -w /root/atop_debug_$(date +%Y%m%d_%H%M) 10 360 &
Это 1 час с интервалом 10 секунд.
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.