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

    Сегодня существует довольно много профессиональных инструментов для мониторинга состояния серверов с обилием настроек, плагинов, поддержкой сразу множества машин и т.д., это известные 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
    Поделиться публикацией
    Похожие публикации
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 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
                                  Удобнее был бы питон )
                                  Его и ставить не нужно.
                                • 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 есть :/

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