Анонс публичной бета-версии NGINX Amplify

https://www.nginx.com/blog/nginx-amplify-public-beta/
  • Перевод


Мы рады представить бету NGINX Amplify, нашего нового инструмента для мониторинга NGINX и NGINX Plus. Используя NGINX Amplify, вы сможете отслеживать и контролировать NGINX и приложения, которые он обслуживает. Новый инструмент позволит быстро решать проблемы с производительностью и доступностью отдельных сервисов и инфраструктуры в целом. На текущий момент он включает в себя гибко настраиваемую панель мониторинга с механизмом оповещений, а также систему автоматических рекомендаций по оптимизации производительности и улучшению безопасности.

Узнать больше и увидеть NGINX Amplify в действии можно записавшись на онлайн вебинар, который пройдет 13 июля в 20:00 по московскому времени.

Также, вы можете начать бесплатно использовать NGINX Amplify прямо сейчас, пройдя регистрацию.


Легкий доступ к ключевым показателям производительности в настраиваемой панели мониторинга NGINX Amplify

Установка проста и не отнимет больше 5 минут. C NGINX Amplify вы получите:

  • Рекомендации по безопасности и оптимизации – NGINX Amplify тщательно анализирует вашу конфигурацию NGINX и советует изменения для повышения производительности и безопасности. Каждая рекомендация содержит номер строки с цитируемой директивой, описание проблемы и способ её устранения.
  • Мониторинг в реальном времени – NGINX Amplify это единая панель мониторинга всех ваших серверов с NGINX. Она собирает сотни различных метрик из NGINX, лог-файлов и операционной системы, предоставляя гибко настраиваемый интерфейс для их отображения (на картинке выше). Метрики могут быть агрегированы с целого кластера NGINX серверов для общей оценки или отфильтрованы вплоть до уникального интерфейса. Мониторинг работает как с бесплатной версией NGINX, так и с коммерческой, NGINX Plus, где пользователям доступны дополнительные метрики.
  • Настраиваемые оповещения – NGINX Amplify отправляет сообщение, когда система требует внимания. Любая метрика, собираемая в NGINX Amplify, может являться критерием для отправки оповещений. К примеру, сообщение может быть сгенерировано когда количество ошибок с кодами 5хх превысило установленную вами границу.

Учитывая нашу уникальную позицию в роли веб-сервера, прокси и балансировщика для веб-сервисов, мы считаем, что NGINX Amplify является прекрасным дополнением к существующим средствам мониторинга доступности и производительности. NGINX Amplify работает с использованием небольшого агента с открытым исходным кодом, который установливается на каждый сервер с NGINX. Агент самостоятельно собирает различные метрики для анализа и визуализации. Эти данные объединяются с той информацией, которая собирается самим NGINX (или NGINX Plus), чтобы представить целостную картину того, как функционирует ваш веб-сервис.

Мы приглашаем всех пользователей NGINX и NGINX Plus зарегистрироваться и извлечь выгоду из возможности анализировать и лучше контролировать свои веб-сервисы. Присоединившись к открытому бета-тестированию NGINX Amplify, уже через несколько минут вы получите визуализацию ключевых показателей и действенные советы по улучшению производительности и безопасности ваших сервисов.

Результаты закрытого бета-тестирования


NGINX Amplify был доступен для приватного тестирования с ноября прошлого года. Энтузиасты NGINX и те, кто испытывал наибольшую потребность в подобного рода мониторинге, стали первыми, кто присоединился к бета-тестерованию. И с переходом к фазе публичной беты мы рассчитываем на быстрый рост пользовательской базы.

Вот что первые пользователи могут сказать об NGINX Amplify:
“… [в одном случае] наше соединение с сетью пострадало и сервера были на короткий промежуток времени отрезаны от интернета. Наш собственный мониторинг не заметил проблемы, и если бы NGINX Amplify не обнаружил и не оповестил нас, мы бы даже не знали об этом факте.”
“Страница Reports (отчеты) полезна своим кратким обзором настроек сервера, а статический анализ помог нам выявить недостающие параметры конфигурации.”
“NGINX Amplify помог мне быстро решить проблемы благодаря секции Static analysis (статический анализ) на странице Reports.”

Подробнее о возможностях NGINX Amplify


Рекомендации по производительности и безопасности


NGINX Amplify производит статический анализ вашей NGINX конфигурации. Страница Reports содержит рекомендации о том, что можно изменить для улучшения производительности и безопасности. Каждый совет содержит имя файла конфигурации и номер строки, где находится директива, объясняет потенциальную проблему и предлагает способ решения.


NGINX Amplify анализирует вашу конфигурацию NGINX и дает советы по улучшению

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

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

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

Мониторинг в реальном времени


C NGINX Amplify вы можете вывести все необходимые метрики на единую панель на вкладке Dashboards (приборная панель). Среди показателей вам доступны:

  • Индивидуальные метрики – например, количество используемого процессорного времени каждым сервером;
  • Агрегированные метрики – такие, как общая пропускная способность по всем серверам с NGINX;
  • Метрики, относящиеся к производительности приложений, включая время ответа.

NGINX Amplify сохраняет данные мониторинга NGINX за неделю, так что вы можете проводить ретроспективный анализ.


В NGINX Amplify вы можете создавать свои собственные панели мониторинга с необходимыми показателями

NGINX Plus собирает дополнительные метрики, связанные с производительностью бекенда. Пользователи NGINX Plus получают преимущества от визуализации этих метрик в NGINX Amplify и возможности просмотра их за предыдущие промежутки времени:

  • Нагрузка на каждый бекенд, включая запросы, ответы и пропускную способность;
  • Работоспособность каждого бекенда, включая количество ошибок и как часто сервер испытывал проблемы;
  • Время работы, объем трафика и прочая критическая информация.

Оповещения


Вы можете настроить оповещения на странице Alerts (оповещения), так что NGINX Amplify оповестит вас когда система будет не в порядке. NGINX Amplify собирает широкий набор метрик с системы, которые могут быть использованы как критерии для генерации оповещения.


Получайте сообщения когда система испытывает проблемы

Одно из оповещений на снимке настроено так, что NGINX Amplify отправит письмо на me@example.com когда процессор будет занят более чем на 95% в течение 10 и более минут, что может служить сигналом того, что сервер перегружен. Вы можете указать любой почтовый адрес, например, перенаправить сообщение в сервис PagerDuty. После первичного оповещения NGINX Amplify будет отправлять дайджест каждые 30 минут по всем обнаруженным ошибкам до тех пор, пока все проблемы не будут устранены.

Резюме


NGINX является одним из самых критичных компонентов в инфраструктуре обслуживания ваших сервисов. NGINX Amplify поможет отследить, что NGINX и ваши приложения функционируют исправно, в том числе на пике нагрузки. Мы приглашаем всех зарегистрироваться сегодня на бесплатное открытое бета-тестирование и оставить свои отзывы, используя кнопку Intercom в правом нижнем углу после входа в NGINX Amplify.
Метки:
Поделиться публикацией
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама
Комментарии 64
  • +2
    freebsd is currently unsupported, apologies!

    Очень печально.
    • 0
      Я так думаю это с версией python связанно. Возможно если поставить нужную версию python заведется.
      • 0
        Вот полный вывод скрипта инсталляции
        1. Checking admin user… root, ok.
        2. Checking API key… using 6b81b56da545ab9c7950ffdbec93ea67
        3. Checking python version… found python 2.7
        4. Checking OS compatibility… freebsd is currently unsupported, apologies!
      • 0
        2 VBart
        Валерий, прокомментируйте, пожалуйста, когда ждать версию под FreeBSD и с чем связан unsupported?
        • 0

          Стоит в очереди задач пока без каких-либо точных сроков. Агент собирает метрики не только с NGINX, но используя различные средства операционной системы.

    • +2
      Я так понимаю это в будущем платный продукт, который доступен бесплатно в качестве бета тестирования?
      • 0

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

      • 0
        Он только онлайн или возможно установка на свой сервер. Если возможно, будите ли вы делать подготовленный Docker контейнер?
        • 0

          На данный момент это только онлайн сервис.

          • +1
            очень жаль, очень хочется видеть подобный инструмент с возможностью установить на свои сервера.
            • 0
              Поддержу, особенно для государственных учреждений актуально иметь всё в своём ЦОДе.
              • 0
                А чем вас собственно zabbix не устраивает? Все эти метрики не секретные и доступны.
                • +1
                  Zabbix устраивает. Но вот рекомендации по производительности и безопасности он не даёт.
        • 0
          Воу, ребята, хорошая работа. Уже нашёл у себя Warning в конфиге.
          P.S. Ставил на рабочий проект, всё идеально установилось. Nginx 1.8.1, Ubuntu 12.04.
          • +1
            Спасибо! Именно этого и ждали небольшие проекты у которых не было финансирования на nginx plus.
            Теперь практически отпадает необходимость в Munin и прочих системах мониторинга.

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

                В будущем всё может быть. Проект ещё очень молодой.

                • 0
                  А есть какой-то дедлайн, по первой стабильной версии?
              • 0
                А несколько копий nginx на одном хосте можно?
                • +1
                  О, вижу, сам всё подцепил, класс!
                • 0
                  Сравнивая с Zabbix, не понял как масштабировать участок графика. Например вижу аномалию, хочу точно узнать ее время. Если она произошла несколько дней назад, то никак не посмотреть… Или я чего-то не заметил?
                  • 0
                    При установке ошибка:
                    7. Updating repository… failed.

                    Please check the list of supported systems here git.io/vKkev

                    Действительно не отвечает:
                    # curl -v packages.amplify.nginx.com/centos/6/x86_64/repodata/repomd.xml
                    * About to connect() to packages.amplify.nginx.com port 443 (#0)
                    * Trying 52.9.219.142… Время ожидания соединения истекло
                    * couldn't connect to host
                    * Closing connection #0
                    curl: (7) couldn't connect to host
                    • 0
                      Все нормально отвечает, возможно у вас что-то с сетью.

                      curl -v packages.amplify.nginx.com/centos/6/x86_64/repodata/repomd.xml *   Trying 52.9.219.142...
                      * Connected to packages.amplify.nginx.com (52.9.219.142) port 80 (#0)
                      > GET /centos/6/x86_64/repodata/repomd.xml HTTP/1.1
                      > Host: packages.amplify.nginx.com
                      > User-Agent: curl/7.45.0
                      > Accept: */*
                      > 
                      < HTTP/1.1 200 OK
                      < Server: nginx
                      < Date: Mon, 11 Jul 2016 12:40:52 GMT
                      < Content-Type: text/xml
                      < Content-Length: 2985
                      < Last-Modified: Fri, 01 Jul 2016 19:36:11 GMT
                      < Connection: keep-alive
                      < ETag: "5776c62b-ba9"
                      < Accept-Ranges: bytes
                      ......
                      
                      • 0

                        traceroute? Проверил из разных концов света — всё работает.

                        • 0
                          Дальше хупа 72.21.222.220 (amazon) идут потери, так что видимо заблочили мой ipv4.
                        • 0
                          Проверьте /etc/apt/sources.list, у меня с этим тоже была проблема, удалил ненужные репозитории и все в порядке ;)
                          • 0
                            При чем тут репы, если сервер не отвечает по http?

                            PS: Вас не смутило centos в URL? )
                            • +1
                              Напишите в тех поддержку напрямую, пожалуйста, и укажите свой внешний IP адрес там же.
                          • 0
                            Та же проблема
                            • 0

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

                              • 0
                                Проблема решилась отключением неработоспособного репозитария
                          • 0
                            Ребят, нашёл несколько неудобных моментов, ИМХО.

                            1. Graphs для всех проектов один
                            2. Prewiew стрелочкой скрываю, затем после перехода с одного сервера на другой Preview снова появляется

                            Поправьте меня, пожалуйста, если я просто не нашёл как сделать правильно.

                            P.S. Русскую версию бы ещё.
                            • 0
                              А как ему рассказать, где у меня nginx? В логе ошибка supervisor failed to find bin_path, prefix and conf_path for nginx: master process ./nginx
                            • 0
                              Debian 8. amplify-agent создал пользователя nginx.

                              Для каких целей amplify-agent считывает *.pem файлы?

                              Использую SSL от https://letsencrypt.org/, стандартно все ключи принадлежат root.

                              /var/log/amplify-agent/agent.log

                              nginx_config could not read /etc/letsencrypt/live/host.ru/fullchain.pem (maybe permissions?)


                              777 права на файл не помогают

                              помогает только в /etc/amplify-agent/agent.conf прописать:

                              [nginx]
                              user = root


                              ошибка пропала из системы мониторинга.
                              nginx у меня запущен от root, воркеры от пользователя nginx.

                              правильно ли запускать amplify-agent от root?

                              Предполагаю, что amplify-agent просто проверяет права на чтение всех файлов которые как-то указаны в конфиге nginx, но тогда точно надо от root или от пользователя от которого запущен nginx-master.
                              • 0

                                Речь видимо о сертификатах? Ключи он трогать не пытается. Подробности тут.

                              • 0
                                E: The method driver /usr/lib/apt/methods/https could not be found.
                                N: Is the package apt-transport-https installed?
                                
                                  7. Updating repository ... failed.

                                Поставить вручную помогло

                                • 0

                                  Пакетный менеджер подсказывает, что для доступа к репозиториям по https нужно доустановить apt-transport-https.

                                  • 0

                                    Это понятно. Непонятно, почему оно само его не ставит, раз надо.


                                    Просто так, кстати, не ставится, приходится использовать --force-yes


                                    apt-get install -y --force-yes apt-transport-https

                                • 0
                                  11. Checking if euid 116(nginx) can find root processes ... agent won't be able to detect nginx - ps(1) is restricted!

                                  Не очень понятно почему — делалось то всё под рутом.


                                  У нас используется hidepid=2 (и это нельзя изменить). Если это оно мешает — может как-то можно вручную помочь?

                                  • 0

                                    После установки на паре вдс на опенвз — решил поставить на саму ноду. На что установщик мне радостно сделал


                                     Stopping old amplify-agent, pid 261617
                                    275334
                                    288169
                                     Launching amplify-agent ...

                                    В реальности он правда ничего не постопил и вроде всё как было запущено — так и осталось.


                                    Вопрос — зачем оно использует вообще ps вместо пид файлов?

                                    • 0

                                      А еще оно не умеет определять venet интерфейсы внутри опенвз.

                                      • +1
                                        Научились определять в последней версии агента (0.35).

                                        Если версия агента 0.35 и оно не работает — отпишитесь, пожалуйста, в Intercom или в личку здесь, на хабре.
                                        • 0

                                          [deleted]

                                        • 0
                                          На двух серверах c Centos 7.2 падает с такой диагностикой:
                                          Starting amplify-agent (via systemctl): Job for amplify-agent.service failed because a configured resource limit was exceeded. See «systemctl status amplify-agent.service» and «journalctl -xe» for details.
                                          Jul 11 19:43:24 server amplify-agent[15247]: Starting nginx-amplify-agent: runuser: cannot open session: Permission denied

                                          Дальнейшие раскопки в /var/log/secure дают такое:
                                          Jul 11 19:43:24 server runuser: pam_limits(runuser:session): Could not set limit for 'nofile': Operation not permitted

                                          А на другом таком же сервере все запустилось.
                                          • +1
                                            Таск сделали, но отпишитесь, плиз, тоже в тех поддержку (интерком), нужно подебажить.
                                          • 0
                                            Запись вебинара будет? а то у меня это 4 утра
                                          • +1
                                            Подключился, спасибо за такой инструмент, буду пользоваться!
                                            • 0
                                              Я чет понимаю, что бы для работы статистики — NGINX REQUEST TIME, NGINX DISK BUFFERED, NGINX RESPONSE TIME — что необходимо установить?
                                            • 0
                                              Лог завален чем-то таким:

                                              2016-07-12 20:40:54,328 [480] nginx_metrics failed to collect metrics workers_fds_count due to AccessDenied
                                              2016-07-12 20:40:54,335 [480] nginx_metrics failed to collect metrics workers_rlimit_nofile due to AccessDenied
                                              2016-07-12 20:40:54,335 [480] nginx_metrics failed to collect metrics workers_io due to AccessDenied


                                              Только эти три метрики. Что с этим делать?
                                              • 0
                                                А если подробнее, то вот:

                                                2016-07-12 21:00:08,394 [10166] nginx_metrics failed to collect metrics workers_fds_count due to AccessDenied
                                                2016-07-12 21:00:08,395 [10166] nginx_metrics additional info:
                                                Traceback (most recent call last):
                                                File "/usr/lib/python2.7/dist-packages/amplify/agent/collectors/nginx/metrics.py", line 52, in collect
                                                method()
                                                File "/usr/lib/python2.7/dist-packages/amplify/agent/collectors/nginx/metrics.py", line 120, in workers_fds_count
                                                fds += p.num_fds()
                                                File "/usr/lib/python2.7/dist-packages/amplify/psutil/__init__.py", line 690, in num_fds
                                                return self._proc.num_fds()
                                                File "/usr/lib/python2.7/dist-packages/amplify/psutil/_pslinux.py", line 877, in wrapper
                                                raise AccessDenied(self.pid, self._name)
                                                AccessDenied: psutil.AccessDenied (pid=21287)
                                                2016-07-12 21:00:08,401 [10166] nginx_metrics failed to collect metrics workers_rlimit_nofile due to AccessDenied
                                                2016-07-12 21:00:08,401 [10166] nginx_metrics additional info:
                                                Traceback (most recent call last):
                                                File "/usr/lib/python2.7/dist-packages/amplify/agent/collectors/nginx/metrics.py", line 313, in collect
                                                method()
                                                File "/usr/lib/python2.7/dist-packages/amplify/agent/collectors/nginx/metrics.py", line 349, in workers_rlimit_nofile
                                                rlimit += p.rlimit_nofile()
                                                File "/usr/lib/python2.7/dist-packages/amplify/agent/common/util/ps.py", line 84, in rlimit_nofile
                                                return self.rlimit(psutil.RLIMIT_NOFILE)[1]
                                                File "/usr/lib/python2.7/dist-packages/amplify/psutil/__init__.py", line 740, in rlimit
                                                return self._proc.rlimit(resource)
                                                File "/usr/lib/python2.7/dist-packages/amplify/psutil/_pslinux.py", line 877, in wrapper
                                                raise AccessDenied(self.pid, self._name)
                                                AccessDenied: psutil.AccessDenied (pid=21287)
                                                2016-07-12 21:00:08,402 [10166] nginx_metrics failed to collect metrics workers_io due to AccessDenied
                                                2016-07-12 21:00:08,402 [10166] nginx_metrics additional info:
                                                Traceback (most recent call last):
                                                File "/usr/lib/python2.7/dist-packages/amplify/agent/collectors/nginx/metrics.py", line 313, in collect
                                                method()
                                                File "/usr/lib/python2.7/dist-packages/amplify/agent/collectors/nginx/metrics.py", line 367, in workers_io
                                                io = p.io_counters()
                                                File "/usr/lib/python2.7/dist-packages/amplify/psutil/__init__.py", line 702, in io_counters
                                                return self._proc.io_counters()
                                                File "/usr/lib/python2.7/dist-packages/amplify/psutil/_pslinux.py", line 877, in wrapper
                                                raise AccessDenied(self.pid, self._name)
                                                AccessDenied: psutil.AccessDenied (pid=21287)
                                                • 0
                                                  Кажись понял… рута хочет. Но нафига засирать лог этим, если знать, что не из-под рута запущен?
                                                  • +1
                                                    Добрый день, логи нужны для дебага…

                                                    По вашей проблеме смотрите документацию:
                                                    https://github.com/nginxinc/nginx-amplify-doc/blob/master/amplify-guide.md#what-to-check-if-amplify-agent-isnt-reporting-metrics

                                                    А точнее последний пункт:
                                                    Some VPS providers use hardened Linux kernels that may restrict non-root users from accessing /proc and /sys. Metrics describing system and NGINX disk I/O are usually affected. There is no an easy workaround for this except for allowing the agent to run as root. Sometimes fixing permissions for /proc and /sys/block may work.
                                                    • 0
                                                      Это не VDS/VPS, обычный железный сервер, права куда надо есть (755), запускать агента из-под рута как-то неохота…
                                                      Дебаг – это я пытался понять, чего оно хочет и вам показал. Засирает раз в минуту лог сообщением выше…
                                              • 0
                                                Хорошо бы иметь статистику по виртуалхостам (rps, response time etc), а не по всему инстансу.
                                                • 0
                                                  А что не так с этим паролем? Почему не проходит валидацию при регистрации?
                                                  NcYMVgDUF@5LZ>O]iuL6H6
                                                  

                                                  А. Понял. Он слишком длинный. Не больше 20-ти символов.
                                                  • 0

                                                    Хотел понаблюдать метрику NGINX REQ/S.
                                                    Говорит:


                                                    Metrics unavailable:
                                                    nginx.http.request.count

                                                    внял советам из вашего коммента https://habrahabr.ru/post/305384/#comment_9697278, логи расширил, stub_status вкл и пр.
                                                    А Метрики нет.
                                                    Что нужно для этого?

                                                    • 0

                                                      Напишите в поддержку, им видно и ваш аккаунт, и что происходит.

                                                      • 0
                                                        у меня эти метрики пошли только когда (после всех модификаций и нескольких перезапусков сервиса) повторно запустил скрипт инсталляции: может, он что-то в конфиг пишет особенное когда проверки выполняет?

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