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.

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

Микроблог перейти

# 2018-11-14 12:01:24

Hetzner тихо и незаметно обновили свой terraform провайдер для поддержки volumes, который до сих пор в бете, не дает создавать более 100 гигов и работает только в определенных регионах, но по факту он не дает создать более 10 гигов потому, что лимиты аккаунты надо поднять, которые нельзя поднять потому, что volumes сука в бете!

# 2018-11-07 23:17:33

Столько работал над плейбуками, что чувствую себя инженером по прочистке ансибла


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

Fortune cookie: Hear about... the freshman coed who decided not to sign up for a course in sex education when she heard the final exam would be oral?