Монит для Сквид

Вопрос или проблема

Я пытаюсь использовать monit для мониторинга моего сервера squid. Я установил сервер squid на raspbian stretch с помощью apt-get. Сервис squid был установлен в /etc/init.d/squid, и я проверил, существует ли файл PID в /var/run/squid.pid.

Тем не менее, когда я запускаю sudo monit start all, я получаю:

Нет сервиса с именем "squid"

Я установил monit, скомпилировав его от имени root и добавив его в systemd вот так:
https://mmonit.com/wiki/Monit/Systemd

Вот мой файл monit, созданный в /etc/monitrc

set daemon 60
set logfile syslog facility log_daemon
set idfile /tmp/monit.id
set statefile /tmp/monit.state
set mailserver localhost
set alert [email protected]
set httpd port 2812 and
     #использовать адрес localhost  # только принимать подключения от localhost
      разрешить localhost        # разрешить localhost подключаться к серверу и
      разрешить admin:monit      # требовать пользователя 'admin' с паролем 'monit'

 check process squid with pidfile /var/run/squid.pid
   group proxy
   start program = "/etc/init.d/squid start"
   stop  program = "/etc/init.d/squid stop"
   if failed host localhost port 3128
     send "GET /monit-check HTTP/1.0\r\n\r\n"
     expect "HTTP/[0-9\.]{3} 400 .*\r\n"
     for 5 cycles then restart

Вывод команды service squid status:

● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: загружен (/etc/init.d/squid; сгенерирован; предустановка поставщика: включено)
   Active: активен (работает) с Вт 2018-01-16 12:23:25 UTC; 2ч 1минуту назад
     Docs: man:systemd-sysv-generator(8)
  Process: 24781 ExecStop=/etc/init.d/squid stop (код=завершен, статус=0/УСПЕШНО)
  Process: 24928 ExecStart=/etc/init.d/squid start (код=завершен, статус=0/УСПЕШНО)
 Main PID: 24970 (squid)
      CPU: 3.718s
   CGroup: /system.slice/squid.service
           ├─24968 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─24970 (squid-1) -YC -f /etc/squid/squid.conf
           ├─24971 (logfile-daemon) /var/log/squid/access.log
           ├─24984 (pinger)
           └─25378 (basic_ncsa_auth) /etc/squid/squid_passwd

16 янв 12:23:24 raspberrypi systemd[1]: Запуск LSB: Squid HTTP Proxy version 3.x...
16 янв 12:23:25 raspberrypi squid[24968]: Squid Parent: запустит 1 потомка
16 янв 12:23:25 raspberrypi squid[24968]: Squid Parent: (squid-1) процесс 24970 запущен
16 янв 12:23:25 raspberrypi squid[24928]: Запуск Squid HTTP Proxy: squid.
16 янв 12:23:25 raspberrypi systemd[1]: squid.service: Файл PID /var/run/squid.pid недоступен для чтения (еще?) после запуска: Нет s16 янв 12:23:25 raspberrypi systemd[1]: squid.service: Контроль процесса 24970, который не является нашим потомком. Мы, вероятно, ....16 янв 12:23:25 raspberrypi systemd[1]: Запущен LSB: Squid HTTP Proxy version 3.x.

Да, это старое

Конфигурация предназначена для monit (из https://mmonit.com/monit/), а service из systemd. Оба независимы друг от друга ….

Ответ или решение

Инструкция по настройке Monit для мониторинга Squid на Raspbian Stretch

Настройка мониторинга Squid с помощью Monit на Raspbian Stretch может показаться сложной задачей, особенно если вы сталкиваетесь с сообщением об ошибке, подобным «There is no service named "squid"». В этом руководстве мы пройдемся по ключевым аспектам настройки и решения данной проблемы.

1. Установка и настройка Monit

Сначала убедитесь, что Monit установлен правильно. Вы упомянули, что устанавливали Monit из исходников и добавили его в systemd. Это важно, так как Monit должен быть запущен как система службы.

Проверка установки:

sudo systemctl status monit

Если служба Monit не запущена, используйте следующую команду для её старта:

sudo systemctl start monit

Также проверьте наличие ошибок в журнале:

sudo journalctl -u monit

2. Конфигурация Monit

Ваша конфигурация Monit, предоставленная в вопросе, в целом выглядит корректно. Однако стоит убедиться, что она действительно распознается:

Проверьте файл конфигурации:

Файл конфигурации Monit обычно располагается в /etc/monitrc, но в некоторых системах его необходимо включить в основной конфигурационный файл Monit. Проверьте, имеется ли исполняемый файл конфигурации и корректно ли настроены пути.

sudo monit -t

Эта команда проверит ваш файл конфигурации на наличие ошибок.

3. Настройка процесса Squid

Убедитесь, что конфигурация, касающаяся процесса Squid, действительно корректна:

check process squid with pidfile /var/run/squid.pid

Здесь необходимо убедиться, что файл PID действительно создается при запуске сервиса Squid. Если файл PID отсутствует, вы можете столкнуться с ошибкой «There is no service named "squid"».

Вы можете запустить Squid и следить за его поведением с помощью:

sudo service squid start
sudo tail -f /var/log/squid/access.log
sudo tail -f /var/log/squid/cache.log

4. Проверка состояния Squid

Команда service squid status показывает, что Squid работает. Однако стоит проверить наличие PID файла:

cat /var/run/squid.pid

Если файл не существует, возможно, требуется пересоздание конфигурации Squid. Попробуйте решить это, выполнив следующие команды:

sudo systemctl restart squid

После перезапуска, проверьте, создан ли файл PID.

5. Настройка конфигурации Monit

Убедитесь, что конфигурация Monit правильно настроена для проверки доступности вашего Squid через HTTP. Строка кода:

if failed host localhost port 3128

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

6. Запуск Monit

Теперь, когда вы убедились, что Squid работает и конфигурация корректна, попробуйте снова выполнить команду:

sudo monit start all

Если всё настроено правильно, вы должны увидеть, что Monit начинает отслеживать сервис Squid.

7. Заключение

Если ошибки сохраняются, проверьте логи Monit и Squid на наличие сообщений, которые могут помочь в диагностике проблемы. Иногда помогает обновление конфигурации или перезапуск службы. Убедитесь, что все зависимости и конфигурации правильно установлены, и в случае необходимости обращайтесь за дополнительной помощью на форумы или в сообщества, посвященные Monit и Squid.

Надеемся, что эти шаги помогут вам настроить эффективный мониторинг вашего Squid-сервера с помощью Monit.

Оцените материал
Добавить комментарий

Капча загружается...