Я использую ping, чтобы проверить, подключена ли машина Linux к сети и готова ли она к использованию. Однако ping на самом деле не говорит вам, действительно ли система делает что-то полезное, просто сетевая подсистема ядра жива и настроена. Есть ли способ сказать, что машина полностью готова к выполнению задач?

РЕДАКТИРОВАТЬ:

Извините, я не понял. Задачи, которые мне нужны для машин, разнообразны. Некоторые просто запускают очень маленькие тесты. Другие общаются с базами данных. И, вероятно, появятся новые задачи, которые машины в сети должны будут выполнить в будущем. Есть ли одна команда, которая сообщает мне, что все основные (по умолчанию) службы работают?

5 ответов5

1

Я думаю, что ваш собственный вопрос - это своего рода ответ. Is there any way to tell that the machine is completely ready to perform tasks?

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

Иногда случается, что один из наших серверов работает нормально, но служба DKIM остановлена, и это делает PostFix неспособным отправлять электронную почту, он может легко остаться незамеченным, если мы не проверяем службу DKIM. Таким образом, вы действительно должны определить, а затем проверить указанные услуги, чтобы быть уверенными.

1

Я бы порекомендовал настроить программное обеспечение для мониторинга и оповещения, например Nagios http://www.nagios.org/ или Zenoss.

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

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

редактировать: я почти уверен, что нет единой команды, которая может получить все, что вы просите, из коробки, но дайте мне знать, если она есть! :) До тех пор, вы будете в течение небольшой работы ~

Надеюсь, это поможет, минь

0

Вы можете установить простой веб-сервер (по крайней мере, должен иметь возможность отправлять html-файлы), чтобы проверить, отправляется ли определенный html-файл-контент, используя curl. (curl http://adress запишет содержимое ответа веб-сервера на стандартный вывод).

0

Это сложный вопрос ... Я думаю, что лучший способ проверить, как все происходит, это подключиться к Linux-машине с помощью ssh и выполнить оттуда команды для проверки всех служб. В любом случае, обратите внимание, что вы не можете сделать это, если на машине, к которой вы пытаетесь подключиться, не запущен демон ssh (или, например, заблокирован 22 порт).

Насколько я знаю, другого способа проверить это нет.

0

Помимо проверки связи с хостом, вы, вероятно, могли бы проверить, открыт ли определенный порт без каких-либо предварительных знаний и без доступа к самой машине. Для машины, на которой запущен веб-сервис, которым вы управляете, я бы порекомендовал создать определенную страницу с интересующей вас информацией (например, загрузка памяти, процессы, ...) в формате по вашему выбору (xml, json, ..). .) и получать и оценивать это на регулярной основе.

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

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

ps -ef

или же

top

в командной строке, чтобы увидеть активные процессы (при условии, что машина Linux).

Вы можете даже обернуть это в оператор php exec и перенести его на клиентский компьютер, когда на нем запущен веб-сервер.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .