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

Настройка zabbix: какое количество процессов на сервере считается разумным

Да, поэтому я начал (и полюбил) zabbix, и начал процесс тонкой настройки alerts.

У меня есть это предупреждение, которое срабатывает на сервере Linux при наличии более 300 процессов.

Теперь это своего рода центральный сервер, который действует как брандмауэр и запускает множество вещей .. а именно proxy / httpd-server / mysql / open-vpn / zabbix

Есть ли что-то, на что нужно обратить внимание, прежде чем я вызову триггер предупреждения для 350 процессов?

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

Нужно ли мне проверять, не связана ли машина где-либо еще, т.е.

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

Как сказал @sam, все зависит от того, что делает сервер и насколько мощно серверное оборудование. Запуск лишь нескольких процессов с чрезвычайно высокой интенсивностью использования ЦП, памяти и / или ввода-вывода может легко перегрузить даже мощный сервер. Особенно, если что-то заставляет ваш сервер поменяться местами, все будет двигаться медленнее, чем улитка или черепаха.

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

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

Вы также можете графически отображать количество некоторых процессов для выявления тенденций: например, я стараюсь графически отображать количество процессов Cyrus IMAP / POP, чтобы я мог видеть, находятся ли они где-то рядом с текущими жесткими пределами.

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

Что бы я построил и отслеживал

В основном, график (и контролировать) по крайней мере следующее:

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

затем монитор как минимум следующее:

  • правильно ли реагируют процессы, которые должны работать; на мой взгляд, просто тестирую, работает ли порт или присутствует ли процесс, если его недостаточно. Вместо этого, если вы хотите проверить, работает ли веб-сервер, посмотрите, возвращает ли он HTTP 200 OK, и, желательно, проверьте, содержит ли тестовая страница некоторые ожидаемые строки.
  • пинг сервера. В случае сбоя пинга немедленно сообщите об этом.
  • журналы ядра для серьезных вещей, таких как ошибки ввода-вывода, неудачные пути в многопутевой конфигурации среды SAN, паники ядра, события OOM и т. д.

Я надеюсь, это поможет вам. :)

Я думаю, что очень сложно ответить на этот вопрос без дополнительной информации, но я попробую.

Это зависит;

Наличие пяти потоков FFMPEG для рендеринга HD-видео на одноядерном сервере было бы слишком большим, но он, вероятно, мог бы без проблем запускать сотни, даже тысячи 5-строчных скриптов Python. В основном, следите за всем, что вы можете придумать! Если он выводит число, отслеживает его и регистрирует, вы никогда не знаете, какая статистика вам может понадобиться в будущем. Количество процессов, вероятно, само по себе является плохим показателем производительности, это полезно в сочетании с другой информацией, скажем, если сервер только что вышел из строя, полезно посмотреть на запущенные процессы, ЦП / нагрузку, память, дисковый ввод-вывод и т. Д. но я бы, наверное, сказал, если вы не можете точно определить, сколько CPU / памяти / etc. каждый процесс использует это не так уж и полезно.

Скажем, если у вас очень предсказуемое приложение, каждый пользователь запускает одну процедуру на сервере, и каждая процедура использует 10 МБ памяти, 1% доступного использования ЦП и 1% доступного дискового ввода-вывода непрерывно в течение всего времени работы процесса. Предположим, что базовое использование системы постоянно составляет 3% ЦП и 500 МБ памяти, и никакие другие процессы, кроме вашего приложения, запускаться не будут. Исходя из этого, очень легко предсказать, сколько потоков вы можете запустить, прежде чем возникнут проблемы, но я не думаю, что когда-либо видел приложение с таким точным использованием.

Гораздо лучшей стратегией было бы отслеживать ресурсы, используемые конкретным процессом / процессами, скажем, если вы используете сервер Apache с mod_php, отслеживать средний объем памяти, ЦП и дискового ввода-вывода httpd процессы, это даст вам гораздо лучшее представление о том, что на самом деле делает ваш сервер. Предупреждения об использовании процесса не так полезны, как мониторинг. Есть много вещей, которые могут увеличить количество процессов без какого-либо влияния на систему, но один процесс может вывести из строя сервер.

TL; DR

  • Счетчик процессов не так полезен для предупреждения
  • Вы все равно должны его регистрировать
  • Выясните, что делает ваш сервер, и отслеживайте, что для него важно