sspp (Server Status PHP Parser)

    sspp маленький парсер написанный на php для сортировки и анализа server-status


    Наверное многим известно о существовании замечательного модуля апача mod_status.

    Включается он очень просто, в httpd.conf нужно добавить:
    ExtendedStatus On
    <Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1



    По запросу localhost/server-status можно будет увидеть текущие запросы вебсервера.


    И это конечно очень здорово. Но мне всегда недоставало сортировки в результирующей таблице, так например приходилось бегло глазами искать часто повторяющиеся запросы.
    А это утомляло и расстраивало.

    Я долго вынашивал в планах парсер который сможет делать то, что мне так нужно в работе. И вот друзья, я его написал и с радостью хочу поделиться им.
    Встречайте SSPP ( скачать)


    Возможности:
    • Сортировка таблицы по любому полю
    • Анализ самых частых запросов, ip-адресов, сайтов
    • Возможность парсинга кастом урл хэндлера (например /whm-server-status)
    • Возможность запуска на локальном компьютере (для разгрузки сервера)

    Буду рад, хорошим советам, а если вы сможете улучшить php код (я совсем плохо знаю php), буду безгранично счастлив %)
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 31
    • +4
      Полезный скрипт.
    • +2
      Было бы супер если скрины были бы кликабельны :)
      • 0
        будут, только немного по-позже…
        По правде сказать не ожидал такого внимания к скрипту :)
      • +2
        картинки сделайте увеличивающимися
        • 0
          думаю я сделаю полноценную демку когда вернусь домой
        • +1
          Эх автор! где же вы были месяц назад :) Спасибо за классную «фичу»!
          • 0
            Имхо, можно заюзать и .htaccess файлик. Дабы не лезть в конфиг Апача сразу.
            • 0
              На маленьких скринах не видно, если ли эта фича, но:

              Когда хитов больше 50 000 в день, было бы полезно иметь не просто сортировку но и средние значения по фильтрованным запросам (т.е. например средний CPU запросов по маске "/index/*"). Обычно ведь нужна как раз такая общая информация, а не по индивидуальным запросам.

              Будет здорово, если автор к уже хорошей программе добавит такой функционал.
              • 0
                server-status не хранит статистику. он показывает что происходит в на момент получения запроса
              • +1
                Скрипт действительно полезный

                но IMHO лучше всего юзать это все совместно с какой либо системной мониторинга и сбора статистики наприер в Cacti (Zabbix, Munin, Nagios) например так www.lissyara.su/?id=1582
                • 0
                  server_status имеет опцию выдачи машиночитаемого статуса (auto), но в этом режиме он выдаёт только состояние сервера. Но для всяких заббиксов это как раз то что нужно, наверно.

                  Total Accesses: 41378
                  Total kBytes: 214822
                  CPULoad: 39.8444
                  Uptime: 18609
                  ReqPerSec: 2.22355
                  BytesPerSec: 11821
                  BytesPerReq: 5316.3
                  BusyWorkers: 1
                  IdleWorkers: 9
                  Scoreboard: ___.____W__

                • +2
                  глянул код.
                  ничего особенного, улучшать думаю там особо нечего. тормозить ничего не будет
                  разве что по мелочам
                  echo $error_message3;
                  exit;
                  заменить на
                  exit( $error_message3);

                  и регекспы может можно заменить на строковые функции

                  в общем большое спасибо за полезный скриптец
                  • НЛО прилетело и опубликовало эту надпись здесь
                    • 0
                      При запросе статуса через file_get_contents, www.okdesign.com.ua/server-status/ отдают другу страничку, по всей видимости принимают за бота.
                      Курл не использовал потому что он не везде есть. Теперь думаю сделать проверку на его наличие и загружать через него.
                    • НЛО прилетело и опубликовало эту надпись здесь
                      • 0
                        спасибо за совет, воспользуюсь им в ближайшее время :)
                      • +1
                        Склеить бы этот скрипт с этим:
                        www.phpclasses.org/browse/package/3613.html
                        • 0
                          спасибо за ссылку, интересный проект, есть над чем подумать.
                        • 0
                          Под (Apache/2.2.8 (Unix) PHP/5.2.5) не заработал :) под какой версией тестировали?
                          • 0
                            На Apache 2.2.4 пашет без проблем
                            да и чему там не пахать? :) там вся «соль» в регулярке же
                            • 0
                              Не знать (с). Но «Sorry, I've got an error from web-server» висит как праздничный транспарант :)
                              • 0
                                А конфиг inc.config.php подправили? (если я правильно понял то вы речь о вот этом скрипте ведете www.phpclasses.org/browse/package/3613.html)
                                • 0
                                  Нет, я имел ввиду «sspp_0.4» этот скрипт :)
                                  • 0
                                    и sspp_0.4 на Apache 2.2.4 пашет
                                • 0
                                  Эту ошибку скрипт показывает если у него не получилось загрузить server-status.
                                  Хэндлер ошибок не дает подробной информации, но вероятно в ответ он получает от вебсервера 301,404 или,401. Другими словами проверьте чтобы в конфиге апача был включен сервер-статус и он был доступен с ip адреса с которого идет запрос.
                                  Написал вам в pm.

                                  • 0
                                    Скинул логи и конфиги вам в pm.
                                    Запросы на server-status доступны с моего ip, и открываются выдавая данные.
                            • +1
                              Отличный скрипт, давно хотел написать такой для учебного сервера, но не было времени. Спасибо!
                              • 0
                                Для избежания всяких неожиданностей и неприятностей, обычно забор страницы с внешнего сайта пишу через сокеты и протокол хттп. Просто часто натыкаюсь на то, что урлы открывать с помощью стандартных функций открытия файлов открывать запрещено.
                                • 0
                                  Вот примерный кусок кода(после получения надо отрезать заголовки):
                                  <?
                                  $fp=fsockopen('www.yandex.ru',80,$errcode,$errstr);
                                  stream_set_blocking($fp,0);
                                  if ($fp){
                                    $nextquery='
                                  GET / HTTP/1.1
                                  Host: www.yandex.ru
                                  Connection: Close
                                  
                                  ';
                                    $data='';
                                    fputs($fp,$nextquery);
                                    while (!feof($fp)){
                                      $tempstr=fgets($fp,128);
                                      if($tempstr){
                                        $data.=$tempstr;
                                      }
                                    }
                                    fclose($fp);
                                  };
                                  echo $data;
                                  ?>
                                  

                                  По идее такое работать должно везде.
                                • 0
                                  Super scriptul, mersi skid.

                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.