Простой мониторинг нагрузки на сервер в реальном времени с веб-интерфейсом

    Сегодня существует довольно много профессиональных инструментов для мониторинга состояния серверов с обилием настроек, плагинов, поддержкой сразу множества машин и т.д., это известные Nagios, Zabbix, Munin, Cacti и многие другие.


    Но в этом посте речь пойдет об очень маленьком и простом, но от этого не менее полезном инструменте: инструменте для мониторинга Scout Realtime. Этот написанный на Ruby open source проект позиционируется разработчиками как современная замена консольной утилите top с выводом статистики использования диска, памяти, сети, CPU и запущенных процессов. Все это отображается в реальном времени с плавными графиками. Во время диагностики работы сервера, иногда полезно пару минут понаблюдать за показателями, и проследить их изменение во времени (в отличие от гирлянды мерцающих чисел в терминале, отображающих данные исключительно на текущий момент).

    Поскольку почти все показатели scout_realtime берет из procfs, он работает в большинстве дистрибутивах Linux (не поддерживаются OSX и FreeBSD). Для работы нужна версия Ruby 1.9.3+

    По заверениям разработчиков, демон scout_realtime потребляет ресурсов не больше, чем широко известная утилита htop.

    Установка и запуск выполняются всего в две команды:
    $ gem install scout_realtime
    $ scout_realtime start
    По умолчанию демон запускается на 5555 порту, что можно изменить (см. $ scout_realtime help).

    Чтобы подключиться, на вашей машине нужно создать SSH туннель к серверу, выполнив:
    $ ssh -NL 5555:localhost:5555 user@ip_or_hostname
    где user@ip_or_hostname те же самые, что вы обычно используете для подключения к серверу. После этого, можно открывать в браузере http://localhost:5555

    Опционально: если firewall блокирует подключения, а через туннель SSH заходить желания нет, на сервере можно добавить разрешающее правило:
    $ sudo iptables -A INPUT -p tcp --dport 5555 -j ACCEPT
    и подключаться напрямую: http://example.ru:5555 (имейте в виду, что при этом статистика будет доступна любому желающему).

    Разработчики оставили открытым демо-доступ к статистике своего основного сайта: http://scoutapp.com:5555

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 34

      +2
      Есть над чем работать awesomescreenshot.com/0cf2h7kkfd
        +1
        Угу, еще кнопки Pause/Play местами перепутаны, по Play все замирает, по Pause начинает работать.
          +1
          Кнопки не перепутаны. Это проблема дизайна. Каждая из кнопок работает одинаково, как [play/pause]. Текущее состояние выделено жирным, потому и кажется, что кнопки перепутаны. Можно было бы обойтись одной кнопкой.
        –2
        это «CPU %»
          +2
          красивая вещь, но тут ноутбук грузит проц на 40% (core i7). Полегче бывает?
            +1
            По заверениям разработчиков, демон scout_realtime потребляет ресурсов не больше, чем широко известная утилита htop.
            Коллеги, кто ставил данное творение, поделитесь, пожалуйста, показателями нагрузки которую порождает данная утилита?

            Плюс небольшое предложение — в текущей реализации, для real-time'a эта утилита висит демоном, но не лучше было бы сделать on-demand? Это из личного опыта, дело в том что я не сижу и не смотрю как плывет график, я зачастую хочу видеть тренд, за час/день/месяц. Мне кажется что cron джоба, которая с некоторой периодичностью (пусть 1/2/5 мин, заодно и хаотичные всплески уберутся) собирает статистику и потом, по требованию, показывает ее — будет экономичнее нагружать сервер.
              0
              Да ладно сервер — он железный, справится. У меня клиентская часть так грузит — бук воет как самолёт.
                +2
                Ах вот оно что, коментарий был о клиенте. Тогда взглянуть на нагрузку самой утилиты еще интереснее.
                +1
                Ниже POS_troi сделал скриншот окна терминала с запущенным htop и scout_realtime, нагрузка действительно примерно одинакова (1-2%): #comment_7394953
                +1
                это зачёт!) утилита мониторит и заодно создает тестовую нагрузку :D
                0
                Неплохо, но по моему кнопки пуск и пауза перепутаны)
                  0
                  То что нужно маленьким сайтам. Отличный дизайн + маленькая нагрузка и простая установка делают свое.
                    0
                    отличный
                    дизайн
                    и маленькая наргрузка? Вы шутите.
                    +1
                    меня всегда удивляло какое количество костылей пишут люди.
                    Есть же sysstat — достаточно только включить в /etc/default

                    В конце концов, если очень хочется достаточно:

                    while true; sleep 1; do top -b | head -n2 >> ~/top.log; done

                    watch -n1 tail 1000 ~/top.log

                    Но ставить дополнительное приложение на сервер для того чтобы красиво посмотреть вывод команды top?
                    Это простите, за гранью.
                      0
                      Нехватает диск ио и сети. Хотя можно atop…
                      0
                      а может, все-таки new relic?
                        0
                        New relic не совсем в реальном времени обновляется, а итерациями, но да, я бы скорее им воспользовался бы :)
                        –1
                        такой бы на го — было бы классно. Руби ставить — уже тяжелый процесс
                          0
                          Лол что? Поставить руби — одна строка, даже я при своей неприязни к руби не могу сочти это за аргумент. У меня вот го нету.
                            –1
                            Вы видимо не знаете, что для работы го приложения не надо ставить го.
                            А вот как установить руби 1.9.3 и выше одной командой — я не знаю. apt ставит старый 1.9.2
                            Разберитесь, прежде чем писать
                              0
                              не, ну строго говоря можно ввести
                              \curl -sSL https://get.rvm.io | bash -s stable --ruby
                              

                              Это считается одной строкой ведь, верно?

                              А вообще
                              apt-get install ruby1.9.3 
                              

                              спокойно работает в ubuntu server 12.04.3LTS, в седьмом дебиане, кажется, тоже.
                                +1
                                строго говоря потом надо писать rvm install 2.1.0 и rvm use 2.1.0 а только потом ставить гем.
                                Кроме того, засовывать рвм в шелл — не очень хорошо на продакшен серверах. Лучше уж rbenv
                                Не надо мне рассказывать про руби — я прекрасно знаю что и как.

                                Разве вы не согласны, что если бы такая тулза была на го было бы удобнее?
                                  +2
                                  Удобнее был бы питон )
                                  Его и ставить не нужно.
                                    –1
                                    Вот это точно!
                                    0
                                    да я согласен даже с тем, что rvm зло, но все равно это все-таки одна строка
                                      0
                                      вы победили, да-да, одной строкой.

                                      Я только никак понять не могу, как 'ставить что-то' может быть удобнее, чем 'не ставить ничего'
                            +2
                            Есть у меня старый ноутбук, используется как маленький сервер для GIT+GitLab.
                            Установил данный сабж, собственно описанных выше проблем не обнаружено, память не пожирает (держится на уровне 17Мб), проц не грузит.
                            Собственно по прожорливости проца держится на уровне с htop — около 1,5-2%.

                            Скриншот htop


                            Из проблем только перепутанные кнопки.

                            Вообще понравилось, не думаю что когда-то буду использовать, но звёздочку на гитхабе жмакнул.

                            globik спасибо за наводку.
                              0
                              Штука интересная, только одна у неё проблема: показывает только статистику, пока браузер открыт. Если бы она хотя бы умела запоминать со стороны сервера на указанный интервал времени и позволяла бы прокручивать — было бы уже юзабельно в некоторых случаях. А так просто баловство.
                                +1
                                Автор не позиционирует эту утилиту как средство постоянного мониторинга, а то что вы написали, под это есть другое ПО предназначенное для этой цели.

                                Это стоит воспринимать просто как игрушку.

                                Накатал на виртуалку FreeBSD + Linux compat, «замоунтил» linprocfs в /proc. По идее должно было взлететь но не взлетело, нужно копать либу proctable_lite.rb, форкнул, займусь на досуге :)
                                  +1
                                  Как можно следить за прогрессом? Очень хочется сие чудо на BSD.
                                    +1
                                    Там загвоздка в том что придётся пилить два проекта автора. Или лучше отвязаться от авторского «server_metrics» и использовать gem библиотеки «sys-proctable» (за основу автор её взял вроде и там уже есть либа под FreeBSD без procfs) — с соответствующим перепилом scout_realtime.
                                    Ваш комментарий добавил в избранное, если что сообщу в личку и попрошу потом globik добавить ссылку в статью.
                                      0
                                      Спасибо! Буду ждать с нетерпением!
                                0
                                Наверное, я отстал от жизни, но мне будет проще использовать htop, нежели это.
                                  0
                                  Не могу на гитхабе найти концы библиотеки proctable_lite.rb, как я понял либа взята отсюда sys-proctable и кастрирована, только не понятно почему автор не указал откуда собственно либа и почему он использует её кусок а не просто воспользовался гемом, там кстати и под FreeBSD есть :/

                                  Only users with full accounts can post comments. Log in, please.