INT 21h

Hi, I am Vladimir Smagin, sysadmin. Telegram Email GPG

MySQL сортировка по IP адресам

№ 9046 В разделах: Администрирование Программирование от June 17th, 2018,

Если сделать простую сортировку по IP адресам, то получится самая простая сортировка, будто это обычная строка. Чтобы расово верно отсортировать все адреса надо воспользоваться встроенной функцией:

SELECT * FROM bot order by INET_ATON(ip) asc

Результат такой сортировки

Нет комментариев »

Разбор логов nginx моментально при их поступлении, без парсинга файлов

№ 9038 В разделах: Администрирование Программирование от June 16th, 2018,

Захотел я выцеплять ботов, которые небрежно и наплевав на все разумные robots.txt сканят мой драгоценный няшный говноблог. Штатный живой мониторинг nginx доступен только в платной plus версии, а socket file работает только для syslog. Выход все же есть как завернуть лог через вашу программу разбора и называется он named pipes. Это штатная линуксовая фишка как раз для таких извращенцев как я.

Итак, первым делом пишем нашу программу. Поскольку я сейчас использую в основном Python, то программа будет именно на нем.

import os
import errno

FIFO = '/run/nginx-detect-bots.pipe'

try:
    os.mkfifo(FIFO)
except OSError as oe: 
    if oe.errno != errno.EEXIST:
        raise

while True:
    with open(FIFO) as fifo:
        print("Listening log file")
        while True:
            data = fifo.readline()
            if len(data) == 0:
                # stop cycle if no data
                #break
                pass
            else:
                # here your code
                print(data)

Теперь добавляем дополнительную строку в nginx

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        access_log /run/nginx-detect-bots.pipe;
        error_log /var/log/nginx/error.log;

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

Мой готовый код для выцепляния IP адресов и их юзер агентов https://git.blindage.org/21h/nginx-detect-bots

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

Нет комментариев »


© Vladimir Smagin, 2005-2018. Копирование материалов без разрешения запрещено. GPG 0x29AE91B1A37721C3
Яндекс.Метрика