Серверные логи являются ключевым элементом для системного администратора, позволяя контролировать деятельность на сервере. Ubuntu 20.04 использует встроенный инструмент systemd journal для отслеживания событий, происходящих в системе. В этой статье мы рассмотрим, как просматривать серверные логи Ubuntu 20.04 и как фильтровать их по времени, IP-адресу и прочим критериям.
Шаг 1: Доступ к логам
Первоначальным этапом будет доступ к логам, которые содержат данные о серверной активности. В Ubuntu 20.04 используется инструмент journalctl для работы с логами. Для доступа к логам необходимо выполнить следующую команду:
journalctl
Эта команда откроет логи и отобразит последние записи. Чтобы просмотреть больше записей, можно использовать параметр -n, указывающий количество записей для отображения. Например, чтобы показать последние 100 записей, следует выполнить команду:
journalctl -n 10
Шаг 2: Фильтрация логов
Для фильтрации логов по определенному IP-адресу или временному интервалу, можно использовать различные параметры.
Фильтрация по IP-адресу:
Чтобы отфильтровать логи по IP-адресу, необходимо использовать параметр -a, указывающий IP-адрес для фильтрации. Например, чтобы отфильтровать логи по IP-адресу 192.168.1.1, следует выполнить команду:
journalctl -a _SYSTEMD_UNIT=httpd.service _COMM=httpd | grep '192.168.1.1'
Эта команда отфильтрует логи по IP-адресу 192.168.1.1, показывая только записи, содержащие этот IP-адрес.
Фильтрация по времени:
Для фильтрации логов по временному периоду можно использовать параметры -S (указывающий начальное время) и -U (указывающий конечное время). Например, чтобы отфильтровать логи за последние 24 часа, следует выполнить команду:
journalctl --since "yesterday" --until "now"
Шаг 3: Мониторинг логов в реальном времени
Для мониторинга логов в реальном времени можно использовать параметр -f, который отображает новые записи в логах по мере их появления. Например, чтобы мониторить серверные логи в реальном времени, следует выполнить команду:
journalctl -f
Эта команда отображает новые записи в логах по мере их появления, позволяя быстро реагировать на возникающие проблемы в системе.
Шаг 4: Экспорт логов
Для экспорта логов в файл можно использовать параметр -o, указывающий формат экспорта и путь к файлу. Например, чтобы экспортировать логи в формате CSV в файл /var/log/access_log.csv, следует выполнить команду:
journalctl -o json | jq -r '[.PRIORITY, .MESSAGE, ._PID] | @csv' > /var/log/access_log.csv
Эта команда экспортирует логи в формате CSV и сохраняет их в файл /var/log/access_log.csv.
Шаг 5: Очистка старых записей
Серверные логи могут со временем занимать значительный объем дискового пространства. Чтобы очистить логи и удалить старые записи, можно использовать параметр --vacuum-size, который удаляет записи так, чтобы общий размер логов не превышал указанный размер. Например, чтобы удалить записи в логах, чтобы их размер не превышал 1 ГБ, следует выполнить команду:
journalctl --vacuum-size=1G
Эта команда удалит старые записи в логах, чтобы их размер не превышал 1 ГБ.
В заключение, встроенный в Ubuntu 20.04 инструмент systemd journal является мощным инструментом для мониторинга серверных логов. Он предлагает удобные функции для просмотра, фильтрации, мониторинга в реальном времени, экспорта и очистки логов. Правильное использование этого инструмента может значительно облегчить работу системного администратора, позволяя ему быстро реагировать на проблемы и обеспечивать надежную и стабильную работу сервера. Учитывайте, что регулярная проверка и анализ логов являются ключевыми аспектами эффективного управления сервером.