«Что происходит?» монитор производительности сервера

«Что происходит?» монитор производительности сервера

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

Какой из инструментов мониторинга серверов следует использовать для автоматического обнаружения «нештатных» ситуаций с рекомендациями по их устранению?

Я ищу программное обеспечение, которое проверяет производительность системы после установки и вычисляет некоторые средние значения нагрузки (память, ЦП и т. д.). И когда что-то происходит (загрузка ЦП увеличивается до 20%), оно пытается обнаружить причину этого. Если это apache, оно должно проверить журналы доступа. Если mysql, оно должно проверить журналы mysql и сообщить мне, что происходит. Если это происходит из-за того, что какой-то пользователь декодирует много изображений, я хотел бы знать, какая команда выполняется, когда и имя пользователя. То же самое касается использования диска, памяти, количества процессов, потоков и т. д.

В идеале это программное обеспечение должно периодически проверять систему и сообщать о проблемах: ошибках в журнале ошибок PHP, устаревших пакетах, уязвимостях безопасности.

Другими словами, я ищу программное обеспечение, которое будет поддерживать мой простой сервер Debian/Apache/PHP/MySQL, не заставляя меня каждый день следить за графиками.

решение1

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

Конечно, оба имеют свое место в экосистеме, поэтому я бы посоветовал вам попробовать оба. Однако, как я уже упоминал в своем комментарии: чем более глубокий тип мониторинга вы собираетесь проводить, тем больше усилий вам следует ожидать, будь то написание собственных плагинов/скриптов или поиск/загрузка/изменение работы других.

Удачи!

решение2

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

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

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

В обычном стеке LAMP, который вы описываете, две наиболее распространенные проблемные ситуации (по крайней мере, по моему опыту) — это отсутствие ответа HTTP или SQL-сервера или отсутствие ответа в разумные сроки (это можно проверить с помощью зонда Nagios) или чрезмерно высокая средняя нагрузка на систему.

Эти две проверки, вероятно, выявят 95% ваших проблем, но есть и много других вещей, на которые следует обратить внимание, например:

  1. Apache постоянно работает с максимальным количеством настроенных вами процессов/потоков, что означает, что ваш сервер не справляется с нагрузкой
  2. система работает «нормально», но в RAID-массиве произошел сбой (вы не представляете, как часто подобные вещи остаются незамеченными в течение месяцев — или, по крайней мере, до следующего сбоя диска ;)

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

решение3

ЗаббиксРешение для мониторинга может отслеживать все, что вы хотите, и запускать действия скоординированно, действия могут быть, например, выполнением скрипта, который обрабатывает журналы и отправляет результат обратно, если это необходимо. Также вы можете запустить действие, когда выполняется одно или несколько условий (например, вывод скрипта анализа журнала, показывающего ошибку и загрузку процессора более 40%).

решение4

Установка Nagios

Nagios — это монитор хостов и служб, разработанный для информирования вас о проблемах в сети до того, как это сделают ваши клиенты, конечные пользователи или менеджеры. Он был разработан для работы под управлением операционной системы Linux, но также отлично работает под большинством вариантов. Демон мониторинга периодически проверяет указанные вами хосты и службы с помощью внешних плагинов, которые возвращают информацию о состоянии в Nagios. При возникновении проблем демон может отправлять уведомления административным контактам различными способами (электронная почта, мгновенные сообщения, SMS и т. д.). Установка Nagios на вашем сервере поможет повысить надежность вашего сервера.

Nagios обладает множеством функций, что делает его очень мощным инструментом мониторинга. Ниже перечислены некоторые из основных функций. Мониторинг сетевых служб (SMTP, POP3, HTTP, NNTP, PING и т. д.) Мониторинг ресурсов хоста (загрузка процессора, использование диска и памяти, запущенные процессы, файлы журналов и т. д.) Мониторинг факторов окружающей среды, таких как температура Плановое время простоя для подавления уведомлений хоста и службы в периоды плановых отключений Простой дизайн плагина, который позволяет пользователям легко разрабатывать собственные проверки хоста и службы Возможность определения иерархии сетевых хостов, позволяющей обнаруживать и различать неработающие и недоступные хосты Поддержка внедрения избыточных и распределенных серверов мониторинга Возможность подтверждения проблем через веб-интерфейс Уведомления контактов при возникновении проблем со службой или хостом и их устранении (по электронной почте, на пейджер или другим определяемым пользователем способом) Необязательная эскалация уведомлений хоста и службы в различные группы контактов Возможность определения обработчиков событий, которые будут запускаться во время событий службы или хоста для упреждающего решения проблем Внешний командный интерфейс, который позволяет вносить изменения в поведение мониторинга и уведомлений «на лету» с помощью обработчиков событий, веб-интерфейса и сторонних приложений Сохранение состояние хоста и службы при перезапуске программы

Связанный контент