- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Хотелось бы иметь график кол-ва запросов в единицу времени в указанных мной логах Nginx.
Сам такое не напишу, пожет есть у кого подобное творение?
НЕоднократно бывало видишь через тот же мунин что на сервер пошел аномальный траф, а куда именно (на какой сайт) нужно время чтобы понять, а так бы глянул на график и все понятно.
Поделитесь плиз, если есть у кого подобные наработки.
---------- Добавлено 24.12.2019 в 21:15 ----------
еще погуглил, оказывается плагины к мунину можно писать и на пхп, так что попробую написать, если получится, выложу.
Что значить в единицу времени?
За секунду что ле?
Не ну мунин же по дефолту обновляет графики раз в 5 минут? ВОт и было бы прикольно смотреть сколько запросов поступило на разные сайты за эти 5 минут.
Не ну мунин же по дефолту обновляет графики раз в 5 минут? ВОт и было бы прикольно смотреть сколько запросов поступило на разные сайты за эти 5 минут.
Он показывает средний показатель за 5 минут.
Для таких целей попробуйте какти или заббикс.
Зачем ставить что-то лишнее, если можно и мунин научить показывать то что нужно.
Зачем ставить что-то лишнее, если можно и мунин научить показывать то что нужно.
Хмм, будет интересно увидеть решение на мунин, так как тоже им пользуюсь.
Он показывает средний показатель за 5 минут.
А там несколько типов графиков.
Нужно определить значение, например, в bash так:
echo 'normal.info normal'
echo 'normal.type ABSOLUTE'
echo 'normal.label normal req/sec'
чтобы потом подсчитывать , например, вызывая программу logtail2 :
echo -n "normal.value "
logtail2 -f /var/log/nginx/error.log -o /tmp/munin-debug | grep nowait | wc -l
Используя ключ -t в программе logtail2, можно в одном плагине несколько раз пройтись по куску лога и посчитать разные события.
В данном случае, у меня графически представлены эксперименты по замедлению и ограничению ботов в одном из проектов.
Этой информации должно хватить.
написал 3 скрипта, выводящий кол-во ответов разного типа 200, 503 и 404
export LC_ALL=en_US.UTF-8
export LC_NUMERIC=C
if [ -z "$1" ]
then
MNT="5"
else
MNT="$1"
fi
CNT="10"
TMS="$(date +%s)"
STR=""
STX=""
let "SEK = MNT * 60"
let "EXP = TMS - SEK"
while :
do
STR="$STR$STX$(date -d @$EXP +'%d/%h/%Y:%H:%M')"
let "EXP = EXP + 60"
STX="|"
if [ "$EXP" == "$TMS" ]
then
break
fi
done
echo "$(cat /var/log/nginx/access.1.1.log | grep -E $STR | awk '{if ($9=="404") {print sort}}' | sort -n | uniq -c | sort -nr | head -n$CNT)"
Далее написал плагин Мунина
if [ "$1" = "config" ]; then
echo 'graph_title M-log 1.1'
echo 'graph_vlabel Nxinx_log'
echo 'graph_category nginx'
echo 'graph_period minute'
echo 'graph_info This graph shows server response codes.'
echo 'graph_scale no'
exit 0
fi
echo "200" $(/usr/share/munin/plugins/muninlog/m1.1.200.sh)
echo "503" $(/usr/share/munin/plugins/muninlog/m1.1.404.sh)
echo "404" $(/usr/share/munin/plugins/muninlog/m1.1.503.sh)
В конфиг мунин-нод прописал
user root
Сделал символьную ссылку, переопределил права на скрипты и плагин, перезагрузил ноду. График появился, но данных на нем нет.
Проверю работу плагина
получаю
200 140
503 3
404 14
плагин вроде работает, так почему данные на график не рисуются? ГДе ошибся?
в логе
Убрал скрипты, все собрал в одном файле плагина
if [ "$1" = "config" ]; then
echo 'graph_title M-log 1.1'
echo 'graph_vlabel Nxinx_log'
echo 'graph_category nginx'
echo 'graph_period minute'
echo 'graph_info This graph shows server response codes.'
echo 'graph_scale no'
exit 0
fi
export LC_ALL=en_US.UTF-8
export LC_NUMERIC=C
if [ -z "$1" ]
then
MNT="5"
else
MNT="$1"
fi
CNT="10"
TMS="$(date +%s)"
STR=""
STX=""
let "SEK = MNT * 60"
let "EXP = TMS - SEK"
while :
do
STR="$STR$STX$(date -d @$EXP +'%d/%h/%Y:%H:%M')"
let "EXP = EXP + 60"
STX="|"
if [ "$EXP" == "$TMS" ]
then
break
fi
done
cat /var/log/nginx/access.1.1.log | grep -E $STR | awk '{if ($9=="503") {print ""}}'| uniq -c$CNT
Но в логе по прежнему ошибка
Не нравится ему последняя строка плагина, хотя через консоль он работает.
Dram, ну что такое? там разве примеров плагинов мало или лога нет?
Прежде чем обрабатывать строчки значений, он еще обработает вывод от первого запуска config. Наверное, там тоже ошибки.
попробуй имя значения другое выбрать. "200" - выглядит не так как обычно называют идентификаторы. в моем примере значение называлось normal.
Я бы попробовал "code_200".
cat /var/log/nginx/access.1.1.log | grep -E $STR | awk '{if ($9=="503") {print ""}}'| uniq -c$CNT
очень неэффективно. Каждый раз сначала файл читать?
Программа logtail2 отлично решает задачу постепенной обработки логов и я привел пример скрипта, который использует logtail2.
Вот я нагуглил готовый плагин:
https://github.com/GerritDamen/munin-apache-status-codes/blob/master/apache_status_codes
netwind, спасибо, этот плагин заработал, буду адаптировать его под себя!