Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Web Development

Использование New Relic для мониторинга ваших серверов

by
Difficulty:BeginnerLength:LongLanguages:
This post is part of a series called Performance Monitoring With New Relic.
Using New Relic to Monitor WordPress Performance
Introduction to New Relic Insights
Sponsored Content

This sponsored post features a product relevant to our readers while meeting our editorial guidelines for being objective and educational.

Russian (Pусский) translation by Ilya Nikov (you can also view the original English article)

Запущенное приложение - это не просто куча кода, код также должен где-то работать. Я сейчас говорю о ваших производственных серверах. Также важно обеспечить, чтобы ваши производственные сервера вели себя так, чтобы вы были уверены, что ваш код приложения является работоспособным. Вы можете настроить такие системы, как Nagios, чтобы помочь вам в этом, но они могут быть чрезвычайно сложными для работы, требуют значительной инфраструктуры и могут быть полностью избыточными (если только ваши потребности в инфраструктуре не являются чрезвычайно сложными). New Relic обеспечивает менее полнофункциональную, но очень простую альтернативу, когда дело касается мониторинга инфраструктуры.

Если вы прочитали некоторые из наших предыдущих статей о New Relic, вы должны хорошо понимать то, как работают информационные панели New Relic. В панелях мониторинга сервера используются одни и те же концепции. Если вы уже используете New Relic, вы можете очень быстро начать собирать данные о производительности вашего сервера. Даже если вы до этого еще ни разу не устанавливали New Relic, его можно использовать только для мониторинга серверов. Шесть или около того информационных панелей, которые предоставляет New Relic, могут значительно задержать (или даже полностью удалить) необходимость в более полнофункциональном решении для мониторинга вашей инфраструктуры.

Зачем мне нужен сервис для мониторинга серверов?

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

Конечно, ручная проверка работоспособности всех ваших серверов - это не самая эффективная вещь. Когда все идет не так, вы захотите узнать, как только это произойдет, а не в следующий раз, когда вы решите это проверить. Большинство систем мониторинга инфраструктуры имеют возможность отправлять предупреждения, когда определенные части контролируемых серверов терпят неудачу (например, диск переполнен, использование слишком большого количества ОЗУ и т.д.). New Relic в этом ничем не отличается. Вы можете использовать очень гибкую инфраструктуру политики уведомлений для отправки уведомлений о сбоях любым способом, например, по электронной почте или использовать веб-перехватчиков и т.д.

Наконец, проблемы инфраструктуры часто не появляются внезапно, исторический контекст важен. ОЗУ будет медленно съедаться в течение нескольких часов до того, как сервер начнет отказывать, диск будет заполняться в течение нескольких дней, прежде чем что-нибудь придет в голову. Простая проверка ваших серверов не дает вам исторический контекст, необходимый для предотвращения возникновения проблем. Если вам просто нужно проверить использование диска, когда он немного полон, вы можете что-то сделать. Если нет, вы узнаете только о проблеме, когда ваши сервера поумирают. New Relic собирает данные и отправляет их обратно на свои серверы все время, поэтому информационные панели посвящены историческому контексту. Это позволяет легко избавиться от определенных классов проблем.

Это работает в реальной жизни

Позвольте мне рассказать вам пару историй. Мы используем New Relic в Tuts + для мониторинга производительности приложений и мониторинга серверов. Несколько месяцев назад я был на связи, когда наши серверы начали плохо себя вести каждые несколько минут. Они не совсем падали, но приложение выполнялось очень плохо в течение коротких промежутков времени. Я вошел в серверы и обнаружил, что использование памяти было очень высоким. Поэтому я перезагрузил серверы один за другим, и казалось, что все в порядке. Но через несколько часов все это снова началось. Это пахло, как утечка памяти.

Поэтому я вошел в New Relic, чтобы посмотреть на графики. Разумеется, один из деплоев, которые мы делали ранее, ввел утечку памяти в приложение. Потребуется несколько часов для того, чтобы вся память оказалась использованной приложением, и в этот момент она пошла бы в отчаянное безумие со сборщиком мусора, вызывая всевозможные смешные проблемы. Глядя на диаграммы памяти на всех серверах, сразу стало очевидно, что происходит. В то время у нас не было настроенных предупреждений (мы делаем это сейчас), поэтому мы не узнали о проблеме до тех пор, пока это не вызвало другие проблемы. Но, имея возможность сравнивать все серверы друг с другом, а также имея исторический контекст, позволило мне легко диагностировать проблему, развернуть фикс и во время уснуть той ночью.

Вот еще один. Недавно произошел сбой в центре обработки данных AWS, где размещается Tuts +. Когда все закончилось, мы перезагрузили все серверы, чтобы убедиться, что не было никаких проблем. Но когда серверы вернулись, приложение вдруг стало периодически возвращать 500 ответы. Вероятно, это проблема с одним или несколькими серверами, что очень неприятно для диагностики, когда у вас много серверов. Еще раз, глядя в New Relic, мы смогли быстро решить проблему. Один из наших серверов вернулся с процессом изгоем, который потреблял много CPU, в результате чего приложение на этом сервере плохо работало. Другой сервер была затронут каким-то сбоем AWS, который вызвал использование дискового ввода-вывода этого блока на 100%. Мы убрали этот сервер из нашего балансировщика нагрузки, избавились от процесса изгоя на другом, и приложение снова начало отлично работать.

New Relic действительно обеспечивает очень полезные графики, и я бы не хотел оказаться без них, поэтому позвольте мне показать, как получить контроль над сервером и запустить его.

Установка агента мониторинга сервера New Relic

В основном все сводится к регистрации на вашем сервере и установке демона мониторинга (nrsysmond). Если вы прочитали статью New Relic для PHP, то процедура почти идентична. Как обычно, давайте предположим, что мы на Ubuntu.

Первое, что нужно сделать, это импортировать ключ репозитория New Relic:

Теперь мы добавляем в систему репозиторий New Relic:

Теперь мы просто используем apt:

После завершения установки вы получите сообщение, подобное этому:

Давайте сделаем то, что оно нам говорит. Во-первых, давайте перейдем к нашим настройкам учетной записи New Relic, чтобы найти наш лицензионный ключ (он будет справа):

Теперь давайте запустим команду:

Если вы сейчас проверите файл конфигурации: /etc/newrelic/nrsysmond.cfg. Там вы увидите свой лицензионный ключ. Мы готовы запустить агента:

Теперь вы можете проверить список процессов, чтобы убедиться, что он запущен:

Согласно PHP-агенту, существует два процесса. Один - это процесс мониторинга, а второй - воркер. Воркер фактически выполняет работу по обмену данными с серверами New Relic, процесс мониторинга просто наблюдает за воркером, и если тот умирает, по какой-то причине он будет порождать новый.

Мы также можем проверить журналы, чтобы убедиться, что при запуске не было ошибок:

Все выглядит отлично, и теперь вы должны увидеть данные в New Relic UI.

Настройка агента мониторинга сервера

В большинстве случаев вам не нужно настраивать что-либо еще помимо лицензионного ключа, но если вам нужно поднять уровень логирования или настроить прокси-сервер, это определенно возможно. Все это расположено в /etc/newrelic/nrsysmond.cfg. Файл очень хорошо прокомментирован и довольно понятен. Если вы что-то измените, не забудьте перезапустить демона:

Есть только одна тонкая вещь, когда речь идет о настройке мониторинга сервера, и это имя сервера, как это будет видно в панелях New Relic. По умолчанию New Relic берет имя хоста и делает его именем сервера в информационных панелях (т. е. выводит команду hostname). Я рекомендую вам сохранить его таким образом. Если вы также используете New Relic для мониторинга приложений, сохраняйте имя хоста в качестве вывода командой hostname, так как имя сервера гарантирует, что New Relic может правильно обработать то, какие приложения запускаются на каких серверах и как правильно их связывать в пользовательском интерфейсе.

Если вам действительно нужно, вы можете изменить имя сервера, как оно появится в пользовательском интерфейсе, установив параметр hostname= в файле конфигурации: /etc/newrelic/nrsysmond.cfg. Для этого вам необходимо перезапустить демона. Вы также можете изменить имя сервера непосредственно в пользовательском интерфейсе, который не повлияет на демона.

Использование панелей мониторинга сервера

Первое, что вы видите, когда вы нажимаете ссылку «Серверы» слева, - это снимок всех ваших серверов и ключевые показатели для них (CPU, Disk, Memory, IO).

Эта страница может позволить вам увидеть, что один или несколько ваших серверов явно некорректно себя ведут. Здесь вы также можете переименовать сервер или добавить к нему теги, если это необходимо.

Если мы щелкнем по одному из серверов, мы перейдем на главную панель управления сервера:

Здесь есть шесть основных показателей:

  • Использование процессора
  • Использование памяти
  • Использование дискового ввода-вывода
  • Сетевой IO
  • Средняя загрузка
  • Список процессов

Это даст вам краткий обзор конкретного сервера. Вы можете просмотреть все графики, чтобы получить дополнительную информацию. Например, вы можете перейти к графику процессора, чтобы узнать, какие процессы используют CPU:

Или вы можете развернуть график по диску, чтобы увидеть данные по вводу-выводы, разбивку чтений и записей, а также получить оценку того, сколько времени осталось до того, как ваш диск будет заполнен.

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

Графики просты в понимании, они не сбивают вас с толку своими метриками, и вы можете сравнивать подобные серверы друг с другом. Это может помочь вам диагностировать 99% общих проблем, с которыми вы, вероятно, столкнетесь с вашей инфраструктурой.

Настройка предупреждений при мониторинге сервера

New Relic недавно провела большую работу по улучшению своих возможностей оповещения. Политики оповещения - это то, что они придумали во всей своей системе (например, существуют политики уведомлений приложений для политик уведомлений приложений и серверов для серверов). Сначала это может показаться немного запутанным, но все это довольно просто, как только вы начнете пользоваться. Существуют две основные концепции, политики и каналы. Что касается серверных предупреждений, они работают следующим образом:

Мы настроили политику и назначили ей несколько серверов:

Вы также создаете канал (например, электронная почта или  webhook), на который можно отправлять предупреждения:

Затем вы назначаете канал политике. С этого момента, в зависимости от настроек канала (например, первого критического события, всех критических событий, простоев). Вы получите уведомления на этом канале.

Единственный путающий бит о правилах оповещения - это где их найти. Они расположены в разделе Инструменты -> Политики предупреждений:

Затем вам нужно нажать «Серверы» в меню вверху, чтобы найти политики предупреждений сервера.

Вывод

Если вы уже используете решение для мониторинга инфраструктуры, такое как Nagios, и оно хорошо работает для вас, то вы не сможете получить слишком много дополнительных приемуществ от мониторинга сервера с помощью New Relic (хотя графики и исторические тенденции довольно хороши). Однако, если вы вообще не контролируете свою инфраструктуру или ваше текущее решение плохо работает для вас, обязательно попробуйте New Relic. Для меня он стал первым инструментом, к которому я обращаюсь, когда подозреваю, что с моими серверами что-то не так. И достаточно часто, он дает мне знать, когда возникает проблема, прежде чем ситуация станет критической. Как разработчикам, это именно тот инструмент, который нам всем необходимо иметь в своем арсенале.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.