Информация о сервере ServerInfo

3

Каждый системный администратор хотел был знать, что происходит у него на сервере. Например: какая средняя нагрузка на процессор, за сколько времени сайт отдаёт контент, сколько ресурсов потребляют пользователи и боты поисковых систем, какие коды ошибок выдаёт тот или иной сайт. Желательно было бы детализировать эту информацию по минутам и иметь возможность посмотреть данные за последний: час, день, месяц.

С этой целью была написана программа ServerInfo, которая анализирует логи nginx и сохраняет их данные в базу, с интервалом в минуту. В результате мы можем обратиться к этой базе и посмотреть, что происходит на сервере.

Рисунок 1. Интерфейс программы Server Info

Интерфейс системы ServerInfo представляет собой список сайтов, находящихся на сервере и выбор временного интервала. По умолчанию отображается информация для всего сервера, но можно выбрать каждый сайт.

Ниже представлены графики:

  • CPU time. Total: 87.57; Average: 1.46. Сколько серверного времени затрачено и средняя загрузка сервера.
  • Request time total — 3566.82 sec. Bots time — 1452.03 sec. (40.71%). User time — 2114.79 sec. (59.29%). Общее серверное время, в секундах, затраченное на пользователей и ботов.
  • Request total count — 16781. Bots count — 3807 (22.69%). Users count — 12974 (77.31%). Количество обращений к серверу от ботов и пользователей.
  • One request time. Total avg — 0.21 sec. Bots avg — 0.4 sec. User avg — 0.16 sec. Время обработки одного запроса для ботов и пользователей, в секундах.
  • Satus: 200 (14073 — 83.86%). 301 (1848 — 11.01%). 302 (532 — 3.17%). Статусы основных кодов.
  • Satus other: 201 (1 — 0.01%). 304 (41 — 0.24%). 400 (1 — 0.01%). 403 (23 — 0.14%). 404 (170 — 1.01%). 444 (51 — 0.3%). 499 (11 — 0.07%). 500 (30 -0.18%). Статусы остальных кодов и ошибок.

Под графиками находится таблица, в которой сведены все вышеперечисленные показатели.

Установка

  1. Задать формат логов nginx в соответствии с шаблоном:

    log_format main '$proxy_add_x_forwarded_for|$time_local|'
    '$status|$request_length|$bytes_sent|$request_time|'
    '$request|$http_referer|$http_user_agent|$host';


    Пример лога, который должен получиться, можно посмотреть в папке logtest/access.log.
  2. Скопировать config_sample.php как config.php
  3. Создать новую базу данных, с именем, указанным в config.php
  4. Запустить install.php
  5. Настроить задание cron для файла cron.php, с выполнением каждую минуту:

    0-59 * * * * wget -O - -q http://yoursite/cron.php > /dev/null

Где скачать

Скачать данный скрипт можно с репозитория BitBucket:

https://bitbucket.org/brahmnan/server-info/src/master/

Поделиться:
3 Комментария » Оставить комментарий

Оставить комментарий

Вы вошли как Гость. Вы можете авторизоваться

Будте вежливы. Не ругайтесь. Оффтоп тоже не приветствуем. Спам убивается моментально.
Оставляя комментарий Вы соглашаетесь с правилами сайта.

(Обязательно)

Информация о сайте

Компания «Емельянов и партнёры» занимается разработкой, поддержкой и оптимизацией веб сайтов.

На данном сайте публикуются материалы по разработке сайтов и другим интересным вопросам.

Прежде чем приступать к просмотру сайта, ознакомьтесь с разделами:

Сайт может содержать контент, не предназначенный для лиц младше 18-ти лет.
Использование материалов сайта приветствуется при размещении активной ссылки на источник.

Со всеми вопросами и предложениями обращайтесь по почте info@emelianovip.ru