Мониторинг nginx

Тема в разделе "Администрирование серверов", создана пользователем Stabr, 1 апр 2014.

Модераторы: mefish, stooper
  1. Stabr

    Stabr Создатель

    Регистр.:
    13 мар 2014
    Сообщения:
    31
    Симпатии:
    3
    Может подскажите идейку как это можно делать. Есть задача мониторить состояние фермы seed серверов, которые раздают клиент довольно популярной игры. Раздают они как торрент-трекером, так и через http-сидирование, которое у нас поднято под nginx.

    Обычное состояние этих машин "я аццки занят, гигабит сетки забит, диски трещат, залогиниться удается не с первой попытки (пофиг, QoS не настраиваем, паппет срабатывает через 3-4 цикла)".
    Все что реально нужно - мониторится, кроме состояния nginx.

    nginx_status если дергать с локалхоста курлом выдает
    (52) Empty reply from server 19 раз из 20
    На 20ый изволит сообщить "мужик, не видишь - я работаю, 1000 коннектов у меня активных - отвали"

    Дергается это все юзер-агентом для Заббикса. Понятно что можно просто мониторить запущенность nginx, но это не показатель его работоспособности, задачи именно рисовать число коннектов и если оно падает до нуля - алертить в Заббикс. Дергать 20 раз, потом отрабатывать в Заббиксе максимальное за 10 минут наверное можно, но это ущербный путь.
    Второй веб-сервер не предлагать, там он и так уже стоит - для синхронизации сидбоксов используется как раз как вариант своеобразного QoS.
    Демон httpdstatus для nginx используем, но у него всего 5 состояний (LOW, NORMAL, HIGH, ULTRA, UNREACHABLE) и последнее может означать что угодно.

    Короче, ищу какой-то вариант QoS для nginx_status.
     
    Последнее редактирование: 1 апр 2014
  2. someone

    someone сисадмин всея 0ed

    Administrator
    Регистр.:
    3 апр 2006
    Сообщения:
    330
    Симпатии:
    373
    Вы бы настроили нжинкс сначала, Особо обратите внимание на
    worker_processes
    worker_connections
    worker_rlimit_nofile
    и тд.

    а лучше дайте ваш конфиг сюда.
    И укажите конфигурацию сервера по железу.
     
  3. Stabr

    Stabr Создатель

    Регистр.:
    13 мар 2014
    Сообщения:
    31
    Симпатии:
    3
    Ну какой конфиг, какой сервер?
    Cначала пиши - потом читай :)

    Настройки разные. Как и железо, в принципе. Я писал выше - это ферма серверов, в разных ДЦ, в разных странах. Примерно их штук 30, средний конфиг: 8-12-ядерный Xeon, 24-32Gb ram, софтовый Raid1 на sata дисках, но бывают отклонения в большую или меньшую сторону. Каналы тоже от 10 мегабит до гигабита.

    Задача не подобрать оптимальный конфиг, а мониторить в условиях выжранных коннектов. В общем случае оно выставляется так, чтобы соответствовать ширине канала для данного сервера, потому что если скорости у клиента недостаточно - он переключается на CDN, чего мы в общем случае хотим избежать. Ну то есть грубо число коннектов должно соответствовать числу клиентов, качающих с максимальной скоростью и не более того. Если клиентов слишком много на данную толщину канала (завысить число коннектов в n раз и набрать лишних в результате), то они будут качать с меньшей скоростью и в результате переключаться на CDN.

    На вопрос "почему сразу все не в CDN" - отвечу, он тоже в схеме есть, но своими раздавать серверами дешевле выходит, поэтому мы предпочитаем чтобы сначала отработали свои, с загрузкой канала пропускания на 100%. В общем случае у нас в заббиксе график по полосе пропускания - это полка.
     
  4. someone

    someone сисадмин всея 0ed

    Administrator
    Регистр.:
    3 апр 2006
    Сообщения:
    330
    Симпатии:
    373
    Сначала пиши потом читай ? нуну...

    Если хотите скушат слона - кушайте его кусочками.

    Потому сначала надо видеть конфиг и знать железо (и даже чиспсет сетевухи) того сервера откуда конфиг.
    А в идеале и сведения о твиках (если они были) sysctl/сетевого стека.

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

    PS: "выжраные конекты" для нжинкса - уже странно звучит.
     
  5. 100matolog

    100matolog Создатель

    Регистр.:
    17 дек 2008
    Сообщения:
    47
    Симпатии:
    2
    А действительно - увеличить количество коннекшенов для nginx? И какая ОС используется на серверах? если BSD то можно тюнить sysctl.conf в направлении количества kern.maxfiles, kern.ipc.maxsockets, kern.ipc.somaxconn
     
  6. Stabr

    Stabr Создатель

    Регистр.:
    13 мар 2014
    Сообщения:
    31
    Симпатии:
    3
    Центось везде, 6.5ая. Число коннектов увеличить нельзя - результатом станет падение скорости на одного клиента и уход на CDN. Для теста так делали, все классно мониторится, но трафик CDN возрос.
     
  7. 100matolog

    100matolog Создатель

    Регистр.:
    17 дек 2008
    Сообщения:
    47
    Симпатии:
    2
    центос - плохой выбор в качестве серверной оси. лучше бы дебиан или опенсьюзи. касательно
    - почему вы так уверены? скорость отдачи не должна падать если вы принудительно ее не шейпите.
     
  8. Stabr

    Stabr Создатель

    Регистр.:
    13 мар 2014
    Сообщения:
    31
    Симпатии:
    3
    Офигеть, RedHat попал.

    Мда, пожалуй на остальное и отвечать смысла нет. Это специфика нашего торрент-клиента.