Все о Linux. LinuxRSP.Ru


Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

25 лет исполнилось ядру Linux

Релиз KDevelop 5.0

Oracle открывает код JDK9 для ARM

Выпущен Timewarrior 1.0.0

Релиз Android 7.0

Percona Memory Engine для MongoDB на базе WiredTiger

PowerShell открыт и доступен для Linux

Форк TrueCrypt: VeraCrypt 1.18

Релиз Snapcraft 2.14

Релиз Go 1.7

Стабильный выпуск рабочего стола Lumina

Вышла первая версия аналога OpenCV - DCV 0.1

Выпуск минималистичной программы для мониторинга jsonmon 3

В MIT разработали новый язык программирования

Первый релиз Qt5Gtk2

Godot 2.1 - новая версия открытого игрового движка

Свободная цифровая станция звукозаписи: Ardour 5.0

Обновление SkypeWeb Plugin for Pidgin

Вышла версия 3.0 Android File Transfer для Linux (и для OS X)

Программный аналог MIDI-контроллера для создания музыки: Launchpadd v1.3

Mozilla спонсирует поддержку Python 3.5 в PyPy

Ef 0.08 - программа для моделирования динамики заряженных частиц

Обновление текстового редактора TEA до версии 42.0.0

Релиз OpenOrienteering Mapper 0.6.4

Вышли Guix и GuixSD 0.11

Релиз Opera 39

Выпуск LibreOffice 5.2

В OpenSSH обнаружены и устранены некоторые уязвимости

Эмулятор FCEUX 2.2.3

Компания Билайн переходит на российскую СУБД с открытым исходным кодом Tarantool

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

Мониторинг Nginx с помощью MRTG

Nginx - веб-сервер и почтовый прокси-сервер, часто используемый в качестве фронтенда на веб-проектах с высокой посещамостью. Периодически возникает необходимость следить за количеством обрабатываемых им запросов чтобы своевременно реагировать на рост нагрузки. Далее будет показано как можно организовать мониторинг Nginx с помощью MRTG.

Для начала включи в nginx вывод статуса. Для этого в конфигурацию одного из виртуальных хостов надо добавить строки:

        # По этому пути будет доступен статус сервера
        location /nginx_status {
                # Включение отображения статуса
                stub_status on;
                # Кому разрешён доступ сюда. Как минимум нашему серверу мониторинга
                allow 10.12.14.16;
                # Заодно сети, в которой сидят наши администраторы (на всякий случай)
                allow 172.17.233.0/25;
                # Всем остальным доступ закрываем
                deny    all;
         }

После этого перезапускаем nginx. Теперь при обращении к локации "/nginx_status" нашего виртуального хоста с одного из разрешённых адресов мы получим примерно вотакую информацию:

Active connections: 272 
server accepts handled requests
 65274467 65274255 150927366 
Reading: 47 Writing: 68 Waiting: 157 

Нас интересуют первое число в третьей строке (число обработанных коннектов) и третье (число запросов). Парсить будем несложным PHP-скриптом:

#!/usr/bin/php
<?php

// Получаем имя хоста
$host = isset($argv[1]) ? $argv[1] : '127.0.0.1';

// Получаем данные
$data = file('http://' . $host . '/nginx_status');
// Парсим данные
$line = trim($data[2]);
$conns = preg_replace('/^(\d+?)\s+?\d+?\s+?\d+?$/', "$1", $line);
$reqs = preg_replace('/^\d+?\s+?\d+?\s+?(\d+?)$/', "$1", $line);

// Отображаем результат
print "$conns\n";
print "$reqs\n";
print time() . "\n";
print "$host\n";

Скрипт нужно сохранить в файл и сделать исполняемым. Заодно нужно проверить путь к интерпритатору PHP в первой строке (он может отличаться в зависимости от системы). ДЛя рисования графика в конфигурацию MRTG нужно добавить примерно такие строки:

Target[nginx]: `/var/www/mrtg/scripts/nginx.php frontend.domain.com`
MaxBytes[nginx]: 1
Title[nginx]: nginx statistics
PageTop[nginx]: <h1>nginx statistics</h1>
AbsMax[nginx]: 1250000
Options[nginx]: integer,nopercent,nobanner,growright,dorelpercent
YLegend[nginx]: per second
ShortLegend[nginx]: per second
Legend1[nginx]: Connections per second
Legend2[nginx]: Requests per second

В итоге будет нарисован вот такой график:

Здесь синяя линия - число обрабатываемых ежесекундно запросов. Зелёная - количество соединений. Жёлтая - отношения числа соединений к числу запросов. Она позволяет косвенно оценить эффективность использования tcp-соединений (чем ниже линия тем лучше).

На этом всё. Приятной работы!


Иcтoчник
      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2017 LinuxRSP