Какие ресурсы следует отслеживать на сервере Linux с веб-сервером или базой данных - PullRequest
6 голосов
/ 16 сентября 2008

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

Некоторыми примерами этого могут быть загрузка процессора, использование памяти и, возможно, дисковое пространство. Какие еще ресурсы я должен отслеживать, и какие инструменты доступны для этого?

Ответы [ 9 ]

6 голосов
/ 16 сентября 2008

Столько, сколько вы можете себе позволить, а затем можете график / понять / посмотреть на результаты. Мониторинг ресурсов полезен не только для планирования емкости, но и для обнаружения аномалий, а обнаружение аномалий значительно помогает вашей способности обнаруживать события безопасности.

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

Мне очень нравится munin для отображения вещей, связанных с хостами.

3 голосов
/ 17 сентября 2008

Я широко использую Zabbix в производстве, который поставляется со стеком полезных настроек по умолчанию. Некоторые примеры того, что мы настроили для мониторинга:

  • Использование сети
  • загрузка ЦП (% пользователь, система, хорошие времена)
  • Средняя нагрузка (1м, 5м, 15м)
  • Использование ОЗУ (реальное, подкачка, шм)
  • Пропускная способность диска
  • Активные соединения (по номеру порта)
  • Количество процессов (по типам процессов)
  • Время пинга из удаленного местоположения
  • Время истечения срока действия SSL-сертификата
  • Внутренние компоненты MySQL (использование кэша запросов, количество временных таблиц в оперативной памяти и на диске и т. Д.)

Все, что вы можете отслеживать с помощью Zabbix, вы также можете прикреплять триггеры - чтобы он мог перезапустить сбойные службы; или страница оповещения о проблемах.

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

2 голосов
/ 29 декабря 2008

Я закончил тем, что использовал dstat, который выглядит лучше двоюродного брата vmstat.

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

  • CPU
  • Диск
  • Память
  • Сеть
  • Обмен
1 голос
/ 18 сентября 2008

Остерегайтесь вышеупомянутого slowquerylog в MySQL. Его следует использовать только при попытке выяснить, почему некоторые запросы выполняются медленно. У него есть побочный эффект замедления ВСЕХ ваших запросов, пока он включен. : P Он предназначен для отладки, а не регистрации.

Подумайте «пассивный мониторинг», когда это возможно. Например, перехватывайте сетевой трафик, а не отслеживайте его с вашего сервера - попросите другую машину наблюдать, как пакеты летают туда-сюда, и записывать статистику о них.

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

1 голос
/ 16 сентября 2008

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

Если вы хотите больше «предупреждений» и меньше «графиков», посмотрите nagios .

Что касается «что контролировать», то вы хотите контролировать системы как на уровне системы, так и на уровне приложений, так что да: сетевой / оперативный / дисковый ввод-вывод, прерывания и тому подобное на системном уровне. Уровень приложения становится более конкретным, поэтому веб-сервер может измерять число посещений в секунду, количество ошибок в секунду (не 200 ответов) и т. Д., А база данных может измерять количество запросов в секунду, среднее время выполнения запроса и т. Д.

1 голос
/ 16 сентября 2008

"df -h", чтобы убедиться, что ни один раздел не заполняется полностью, что может привести к всевозможным шуткам 1002 *) на вашем сервере, который отправляет вам электронное письмо, если в вашем системном журнале начинают появляться странные вещи.

0 голосов
/ 17 сентября 2008

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

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

Я также рекомендую ntop, так как он показывает, куда идет сетевой трафик.

Хорошая ссылка для начала работы с Munin и Monit: текст ссылки

0 голосов
/ 16 сентября 2008

Помимо top и auth.log, я часто смотрю mtop, включаю slowquerylog mysql и наблюдаю за mysqldumpslow.

Я также использую Nagios для мониторинга процессора, памяти и зарегистрированных пользователей (на VPS или выделенном сервере). Этот последний позволяет мне знать, когда кто-то кроме меня вошел в систему.

0 голосов
/ 16 сентября 2008

Я обычно смотрю top и tail -f /var/log/auth.log.

...