INT 21h

Hi, I am Vladimir Smagin, SysAdmin. Telegram Email GIT / GPG / Микроблог

MySQL have IP addresses sorting function out of the box

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

If you sort your IP field as usual it will be sorted like string, but you can use INET_ATON() function to represent IP address string as integers:

SELECT * FROM bot order by INET_ATON(ip) asc

Sample result

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

Разбор логов 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.

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

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

# 2019-01-05 21:21:04

Надоели мне жадины-говядины из местного НИИ по мониторингу неба, не делятся снимками. Сделал собственный архив снимков с разбивкой по дням tomsk-sky.blindage.org/

# 2019-01-03 15:52:30

Итак, прошло некоторое время после переноса zabbix с mysql на postgres. Нагрузка на сервер значительно упала, заббикс больше не шлет евенты о перегрузе IO. Я доволен результатом, можете смело делать также.


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

Fortune cookie: A preacher's wife proofread his Sunday sermon and wrote next to one paragraph: "Weak point--shout loud".