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