opened image

Как просматривать серверные логи Ubuntu и их фильтрация

Серверные логи являются ключевым элементом для системного администратора, позволяя контролировать деятельность на сервере. 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 является мощным инструментом для мониторинга серверных логов. Он предлагает удобные функции для просмотра, фильтрации, мониторинга в реальном времени, экспорта и очистки логов. Правильное использование этого инструмента может значительно облегчить работу системного администратора, позволяя ему быстро реагировать на проблемы и обеспечивать надежную и стабильную работу сервера. Учитывайте, что регулярная проверка и анализ логов являются ключевыми аспектами эффективного управления сервером.