как контролировать время и время простоя сервиса Linux

Можно использовать --fileinput опция iperf отправить определенные данные. Если Вы не захотите использовать iperf, то это станет более сложным. Можно использовать sar измерить сетевую пропускную способность, но не дрожание. Если Вы хотите измерить дрожание сами, можно посмотреть на RFC 3393.

4
04.09.2013, 09:30
4 ответа

Если Вы хотите контролировать многих, приложение на другом сервере затем Идет для NagiOS, если Вы хотите контролировать определенное приложение, принадлежность файла, что-либо затем Идет для Monit.

Можно использовать Monit

Контролировать процессы демона или подобные программы, работающие localhost. Monit конкретен полезный для контроля процессов демона, таких как запущенные во время начальной загрузки системы с/etc/init.d/. Например, sendmail, sshd, апач и mysql.

В различии ко многим системам контроля может действовать Monit, если ошибочная ситуация должна произойти, например; если sendmail не работает, Monit может запустить sendmail снова автоматически или если апач использует слишком много ресурсы (например, если DoS-атака происходит), Monit может остановить или перезапустить апача и отправить Вам аварийное сообщение. Monit может также контролировать характеристики процесса, такой как; сколько памяти или CPU циклически повторяется, процесс использует

Обновление:: часть конфигурации

Monit является самым легким установить через способность, или склонный - добираются

sudo aptitude install monit 

Однажды monit загрузки, можно добавить программы и процессы к конфигурационному файлу

vim /etc/monit/monitrc

set daemon 3                    # check services at 3-second intervals
set logfile /var/log/monit.log  # you can see what monit is doing
set alert sysadm@foo.bar        # receive all alerts
include /etc/monit.d/*          # add monit script path

Затем создайте monit сценарий для своего приложения, просто бросьте взгляд на следование примеру сценария:

Просто необходимо создать monit сценарий в /etc/monit.d/ как /etc/monit.d/httpd.monit затем однажды перезагружают monit сервис и проверяют журналы monit tail -f /var/log/monit.log

Для Apache

check process apache with pidfile /usr/local/apache/logs/httpd.pid
   start program = "/etc/init.d/httpd start" with timeout 60 seconds
   stop program  = "/etc/init.d/httpd stop" 
   if cpu > 60% for 2 cycles then alert
   if cpu > 80% for 5 cycles then restart
   if totalmem > 200.0 MB for 5 cycles then restart
   if children > 250 then restart
   if loadavg(5min) greater than 10 for 8 cycles then stop
   if failed host www.tildeslash.com port 80 protocol http
      and request "/monit/doc/next.php"
      then restart
   if failed port 443 type tcpssl protocol http
      with timeout 15 seconds
      then restart
   if 3 restarts within 5 cycles then timeout
   depends on apache_bin
   group server

Для прокси Safesquid

# Check if the safesquid process is running by monitoring the PID recorded in /opt/safesquid/safesquid/run/safesquid.pid
check process safesquid with pidfile /opt/safesquid/safesquid/run/safesquid.pid
group root
start program = "/etc/init.d/safesquid start"
stop program = "/etc/init.d/safesquid stop"
mode active
# If safesquid process is active it must be updating the performance log at
# /opt/safesquid/safesquid/logs/performance/performance.log every 2 seconds.
# If the file is more than 3 seconds old we definitely have a problem

check file "safesquid-PERFORMANCELOG" with path /opt/safesquid/safesquid/logs/performance/performance.log
  if timestamp > 3 SECOND then alert
5
27.01.2020, 20:51
  • 1
    Вы могли добавить простой пример? Я использовал nagios и кактусы в прошлом и был бы любопытен видеть это также. Это - большая установка, или действительно ли это просто? –  slm♦ 04.09.2013, 09:33
  • 2
    это Просто, мы могли записать собственный monit сценарий, ожидать, я обновлю некоторый пример –  Rahul Patil 04.09.2013, 10:04
  • 3
    @Rahul Patil Спасибо... Мне нужно простое решение (сценарий оболочки) таким образом, что это контролирует сервис. Мое приложение не является так большим количеством комплекса, простым приложением. если мы обеспечим, то пользователь статистики доступности легко узнает, когда и почему сервис снижается. –  Ram 04.09.2013, 15:51
  • 4
    @Ram это не сложно, это просто, просто устанавливают и помещают тот сценарий, если Вы нуждаетесь в какой-либо помощи, просто проверяют с помощью ping-запросов по loginrahul90@gmail.com, я помогу Вам на том же –  Rahul Patil 05.09.2013, 09:47

Если Вы знаете pid сервиса, Вы хотите контролируемый, я записал это некоторое время назад для отслеживания использования ресурсов определенных вещей на сервере:

http://cognitivedissonance.ca/cogware/plog

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

1
27.01.2020, 20:51
  • 1
    он свободный для коммерческого использования??? –  Ram 11.09.2013, 07:41
  • 2
    @Ram: Да. Условия лицензии (GPL, в пакете) главным образом о перераспределении или повторно имеющий целью код. –  goldilocks 11.09.2013, 23:39

В комментариях Вы упомянули, что пытаетесь контролировать веб-сервер JBoss.

Вы спросили, как контролировать Ваше обслуживание, не Ваш процесс. Не имеет значения, если JBoss все еще работает, если процесс втиснул и не отвечает на запросы еще. Вы хотите знать, не работает ли сервис, не только, если процесс умирает.

Если Вы не хотите выполнять крупномасштабный сервис, контролирующий пакет как Nagios или Icinga или Zabbix или OpenNMS или Shinken или Zenoss, можно всегда плыть на плоскодонке с помощью чего-то как curl или wget.

Создайте сценарий, давайте назовем его /root/bin/check_web, и выполненный это в crontab:

*/5 * * * * /root/bin/check_web http://www.example.com myaddress@example.net

Сценарий мог посмотреть что-то как:

#!/bin/bash

if [[ $1 !~ ^https?://[a-z][a-z.]+ ]]; then
  echo "ERROR: that doesn't look like a URL ($1)" >&2
  exit 1
elif [[ $2 !~ .+@[a-z0-9.-]+ ]]; then
  echo "ERROR: that doesn't look like an email address ($2)" >&2
  exit 1
fi

flag="/tmp/m-${1//[^[:alnum:]:.-]/_}"

wget -O /dev/null -q "$1"
result=$?

if [[ $result -eq 0 ]]; then
  if [ -f "$flag" ]; then
    date | Mail -s "Clear: $1" "$2"
    rm -f "$flag"
  fi
else
  if [ ! -f "$flag" ]; then
    echo "error: $?" | Mail -s "OFFLINE: $1" "$2"
    touch "$flag"
  fi
fi

Вложенное множество ifs помогает уменьшить Ваш почтовый шум, если проблема происходит. Вы не должны отвлекаться с другим уведомлением каждые 5 минут, в то время как Вы работаете над решением проблемы. Но хорошо получить уведомление, которое возвратили вещи, в случае, если проблема происходит от спонтанной перезагрузки или переходного сетевого отключения электричества.

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

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

1
27.01.2020, 20:51
  • 1
    Никакие проблемы. Если у Вас есть вопросы о том, как это работает, спросите. Более важный, чем наличие сценария понимает сценарий. Тем путем можно настроить его или использовать его в качестве примера для других сценариев, которые Вы, возможно, должны записать. –  ghoti 23.09.2013, 18:52

Вы рассмотрели рабочий Nagios?

0
27.01.2020, 20:51
  • 1
    Nagios является большим приложением. Я просто хочу контролировать доступность сервиса. –  Ram 04.09.2013, 07:45

Теги

Похожие вопросы