Назад | Перейти на главную страницу

Какие показатели мне следует отслеживать, когда я слежу за сервером?

Я видел много инструментов мониторинга и в основном показывал одно и то же. Но мне интересно, действительно ли нужно смотреть все это.

Я хотел бы знать, какие показатели действительно имеют значение, например, веб-сервер, на котором в основном работает веб-сайт, с PHP-FPM, Nginx и MySQL.

Кроме того, я изучаю графики, но как их понять и проанализировать, чтобы предотвратить будущие неудачи?

Имеют значение те показатели, которые:

  • Укажите на проблему с правильной и правильной работой предоставляемых вами услуг; или
  • Укажите основную причину проблемы

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

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

Я только что написал и опубликовал руководство именно по этой теме:

Позвольте мне подвести итог: есть 3 основные цели, о которых следует думать при мониторинге любой производственной системы:

  1. Определите как можно больше проблем;
  2. Выявите эти проблемы как можно раньше; и
  3. Создавать как можно меньше ложных срабатываний (это означает установку правильных предупреждений)

И вы хотите сделать это, выбрав свои показатели в соответствии со следующей структурой:

  1. Отслеживайте потенциально плохие вещи (то, что мог пойти не так, как надо - это часто происходит в виде вещей, которые заполняются / заканчиваются - например, память, диск, пропускная способность)
  2. Отслеживайте фактические плохие вещи (то, что делать пойти не так, как надо, несмотря на все ваши усилия)
  3. Следите за хорошими вещами (или их отсутствием - обращайте внимание на то, что вы хотите, и устанавливайте предупреждение, когда они происходят реже
  4. Настраивайте и улучшайте (в противном случае вы рискуете «усталостью от предупреждений», известной как DevOps-эквивалент «плачущего волка»)

Каждое развертывание будет немного отличаться, так что YMMV, но это структура, которую используют многие опытные профессионалы, чтобы думать о вещах (будь то явные или нет).

[Редактировать для раскрытия информации: я связан со Scalyr, компанией, которая участвует в этой сфере, и ссылка выше опубликована на их сайте]

Самый простой - следить за объемом загрузки ЦП, свободной памяти и подкачки, дискового пространства, дискового ввода-вывода и ввода-вывода сети / полосы пропускания. Это можно сделать с помощью таких инструментов, как munin или collectd. Некоторым людям нравится контролировать много вещей, но если вы будете простыми, по крайней мере, вы сможете получить общую картину. Я также рекомендую вам настроить инструменты мониторинга на отправку вам предупреждений по электронной почте, когда что-то пойдет не так (например, с использованием «пороговых значений» или чего-то подобного).

Еще одна очень полезная вещь - следить за наиболее важными журналами сервера на предмет чего-либо необычного, например, сообщений об ошибках или, возможно, даже предупреждений. Но такие сообщения могут быть очень распространенными в зависимости от того, как настроено программное обеспечение для ведения журнала. Обычно у демонов есть файл конфигурации, в котором вы можете изменить "LogLevel" с ошибки (= регистрировать только когда что-то сломано) на отладку (= регистрировать что-либо). Проверьте, какие демоны у вас запущены на вашем сервере, и измените уровни журнала на ошибку или предупреждение. Затем вы можете установить инструмент анализа файлов журнала, такой как OSSEC, и научить его молчать, когда определенные вещи допустимы, в то время как он должен предупреждать, когда что-то сломано. Эти предупреждения могут быть отправлены вам по электронной почте.

Для ваших конкретных сервисов Nginx и Mysql я рекомендую вам следить за их временем отклика. Это хорошо по двум причинам: если вы вообще не получаете ответа, значит, что-то не работает. И если вы получите ответ, указывающий на необычно высокое время отклика - особенно если оно не временное, а в течение, скажем, нескольких минут или часов - тогда служба испытывает трудности.

Я бы порекомендовал вам взглянуть на collectd. Его можно настроить для записи множества измерений в файлы RRD для последующего анализа. Он требует очень мало процессора и поможет вам понять, как ваша производительность изменяется с нагрузкой.

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

Отличный совет выше. Но если вам действительно просто нужно начать, сначала ознакомьтесь с основами: использование ЦП с течением времени, использование памяти с течением времени, использование полосы пропускания и использование дискового пространства (или свободного дискового пространства). Эти четыре очень распространены, потому что они в значительной степени определяют возможности компьютера.

После того, как вы некоторое время наблюдаете и узнаете, что такое «нормально» для сервера, вы сможете определить, когда что-то не в порядке. Вот когда вы готовы начать копать глубже и выяснить «почему» - что потребует дополнительного более конкретного мониторинга :)