🐹 CentOS 7: Работа с журналами логов Nginx. Установка Logtop.

Содержание:

1. Введение.
2. Установка Logtop.
3. Синтаксис.
4. Примеры.
5. Оригиналы источников информации.


На чем было опробовано:

  1. CentOS Linux release 7.9.2009 (Core).

1. Введение.

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

Например, утилита Logtop — это удобный анализатор журналов, который может показывать статистику в реальном времени из любого заданного текстового файла.

Ссылка на GitHub утилиты Logtop: https://github.com/JulienPalard/logtop.

2. Установка Logtop.

К сожалению установить эту утилиту из стандартных репозиториев не удастся, но её можно скомпилировать.

Установим репозиторий epel:

# yum -y install epel-release

# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Установим зависимости и исходные коды с Git:

# yum install git ncurses-devel uthash-devel

# cd ~

# git clone https://github.com/JulienPalard/logtop.git

Переместимся его каталог с исходными данными и скомпилируем утилиту из исходных кодов:

# cd logtop

# make

# make install

Если всё пойдет без ошибок то вы получите работающую копию утилиты logtop.

# logtop -v

Ответ:

3. Синтаксис.

Синтаксис здесь не сложный:

logtop [OPTIONS] [FILE]
command | logtop
command1 | filter | logtop
command1 | filter | logtop [options] [file]

Он читает файл логирования и печатает постоянно обновляемый результат отображая результаты анализа в столбцах.

Номер строки, количество, частота и фактическая строка.

# tail -f FILE | logtop

или так

# watch ' tail FILE | sort | uniq -c | sort -gr

Опции:

  • -s, --size=K — Держать в памяти только K единиц строк, но не более 10000.
  • -q, --quiet — Не показывать данные в live-режиме, показывать только самый top на выходе.
    -l, --line-by-line=K— Отображать результаты в строку, в машинном формате, где K — это количество отображаемых строк.
  • Форматы данных : [%d %f %s\t]*\n
    • %d : Количество случаев.
    • %f : Частота повторения.
    • %s : Строка, символы заменяются точками.
  • -i, --interval=K — Интервал обновления информации, в секундах. По умолчанию 1 секунда.
  • -h, --help — Показать возможные опции.
  • -v, --version — Показать версию программы.

4. Примеры.

Позволяет получить общую картину: распределение уникальных IP-адреса, с которых идут запросы, количество запросов с одного IP-адреса и так далее.

Посмотрим активность на текущем сайте, откуда его сейчас просматривают:

# tail -f access.log | awk {'print $1; fflush ();'} | logtop

Ответ:

Где в данном случае колонки означают:

  • 1 — порядковый номер.
  • 2 — количество запросов с данного IP-адреса.
  • 3 — количество запросов в секунду с данного IP-адреса.
  • 4 — собственно сам IP-адрес.

Вверху показывается суммарная статистика по всем запросам.

Таком образом можно посмотреть и другие логи по аналогии. Просто замените путь на ваш log-файл и утилита его исследует.

5. Оригиналы источников информации.

  1. github.com «JulienPalard/logtop».
  2. idroot.us «How To Install Logtop on CentOS 7».
  3. habr.com «Пара полезных команд, которые могут пригодиться при DDoS и не только».
  4. cyberciti.biz «Linux / Unix logtop: Realtime Log Line Rate Analyser».