Уважаемые гости и пользователи форума!
Чтобы видеть ссылки на форуме - надо зарегистрироваться и иметь 1 пост на форуме. Для этого есть КУРИЛКА и там тема Здрасти.

[How To] Интеграция Munin и Monit в ISPConfig 3 (Debian 7 Wheezy)

В этом Вы найдёте самые разнообразные пошаговые инструкции по установке и обслуживанию системы.

Модераторы: rewuxiin, kulia

Правила форума
Условием использования нашего форума, является соблюдение настоящих Правил форума.

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам, а вы рискуете получить предупреждение.
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2616
Зарегистрирован: 23 янв 2012, 22:11

[How To] Интеграция Munin и Monit в ISPConfig 3 (Debian 7 Wheezy)

21 окт 2013, 11:24

Интеграция Munin в ISPConfig 3 (Debian 7 Wheezy)
Исходные данные:
сервер debian7.lan

Устанавливаем пакеты:
  1. apt-get install munin munin-node munin-plugins-extra
Создаём симлинки на нужные нам плагины:
  1. cd /etc/munin/plugins
  2. ln -s /usr/share/munin/plugins/mysql_ mysql_
  3. ln -s /usr/share/munin/plugins/mysql_bytes mysql_bytes
  4. ln -s /usr/share/munin/plugins/mysql_innodb mysql_innodb
  5. ln -s /usr/share/munin/plugins/mysql_isam_space_ mysql_isam_space_
  6. ln -s /usr/share/munin/plugins/mysql_queries mysql_queries
  7. ln -s /usr/share/munin/plugins/mysql_slowqueries mysql_slowqueries
  8. ln -s /usr/share/munin/plugins/mysql_threads mysql_threads
Редактируем конфиг Munin: Без комментариев, измененный файл выглядит следующим образом:
  1. # Example configuration file for Munin, generated by 'make build'
  2.  
  3. # The next three variables specifies where the location of the RRD
  4. # databases, the HTML output, logs and the lock/pid files.  They all
  5. # must be writable by the user running munin-cron.  They are all
  6. # defaulted to the values you see here.
  7. #
  8. dbdir   /var/lib/munin
  9. htmldir /var/cache/munin/www
  10. logdir /var/log/munin
  11. rundir  /var/run/munin
  12.  
  13. # Where to look for the HTML templates
  14. #
  15. tmpldir /etc/munin/templates
  16.  
  17. # Where to look for the static www files
  18. #
  19. #staticdir /etc/munin/static
  20.  
  21. # temporary cgi files are here. note that it has to be writable by
  22. # the cgi user (usually nobody or httpd).
  23. #
  24. # cgitmpdir /var/lib/munin/cgi-tmp
  25.  
  26. # (Exactly one) directory to include all files from.
  27. includedir /etc/munin/munin-conf.d
  28. [...]
  29. # a simple host tree
  30. [debian7.lan]
  31.     address 127.0.0.1
  32.     use_node_name yes
  33. [...]
Создаём пароль для доступа Админу к Munin:
  1. htpasswd -c /etc/munin/munin-htpasswd admin
Редактируем конфиг для Apashe2:

Код: Выделить всё

# Enable this for template generation
Alias /munin /var/cache/munin/www

# Enable this for cgi-based templates
#Alias /munin-cgi/static /var/cache/munin/www/static
#ScriptAlias /munin-cgi /usr/lib/munin/cgi/munin-cgi-html
#<Location /munin-cgi>
#       Order allow,deny
#       Allow from localhost 127.0.0.0/8 ::1
#       AuthUserFile /etc/munin/munin-htpasswd
#       AuthName "Munin"
#       AuthType Basic
#       require valid-user
#</Location>

<Directory /var/cache/munin/www>
        Order allow,deny
        #Allow from localhost 127.0.0.0/8 ::1
        #Для всех адресов и интерфейсов
        Allow from all
        Options None

        # This file can be used as a .htaccess file, or a part of your apache
        # config file.
        #
        # For the .htaccess file option to work the munin www directory
        # (/var/cache/munin/www) must have "AllowOverride all" or something
        # close to that set.
        #
        # Ограничение доступа к Munin
        AuthUserFile /etc/munin/munin-htpasswd
        AuthName "Munin"
        AuthType Basic
        require valid-user

        # This next part requires mod_expires to be enabled.
        #

        # Set the default expiration time for files to 5 minutes 10 seconds from
        # their creation (modification) time.  There are probably new files by
        # that time.
        #

    <IfModule mod_expires.c>
        ExpiresActive On
        ExpiresDefault M310
    </IfModule>

</Directory>
[...]
Далее:

Рестарт Apache: Затем рестарт munin: Заходим в панель ISPConfig3 и настраиваем:
wm-munin 001.png
Вкладка Конфигурация сервера
Результат работы:
wm-munin 002.png
Общая вкладка
wm-munin 003.png
Графики
Интеграция Monit в ISPConfig 3 (Debian 7 Wheezy)
Исходные данные:
сервер debian7.lan

Устанавливаем пакет: Теперь надо настроить monit по нашим потребностям.Для просмотра ссылок Вы должны быть авторизованы на форуме. есть много примеров по настройкам. Для примера нам надо:
  • контролировать Pure-FTPD, SSHD, MySQL, Apache и Postfix
  • включить Monit веб-интерфейс на порт 2812
  • HTTPS Web-интерфейс
  • войти в веб-интерфейс с [имя пользователя] admin и [пароль] test
  • чтобы отправлялись Monit оповещения по электронной почте test@test.com
  1. cp /etc/monit/monitrc /etc/monit/monitrc_orig
  2. cat /dev/null > /etc/monit/monitrc
  3. nano /etc/monit/monitrc
Насколько возможно, прокомментирую конфиг:

Код: Выделить всё

set daemon  60
set logfile syslog facility log_daemon
set mailserver localhost
# От чьего имени будут присылаться сообщения
set mail-format { from: monit@debian7.lan }
# Кому отсылать сообщения
set alert test@test.com
# Устанавливаем порт и разрешаем SSL
set httpd port 2812 and
     SSL ENABLE
     PEMFILE  /var/certs/monit.pem
     # имя_пользователя:пароль
     allow admin:test

# Следим за Pure-FTPD
check process pure-ftpd with pidfile /var/run/pure-ftpd/pure-ftpd.pid
   start program = "/etc/init.d/pure-ftpd-mysql start"
   stop program  = "/etc/init.d/pure-ftpd-mysql stop"
   if failed port 21 protocol ftp then restart
   if 5 restarts within 5 cycles then timeout

# Следим за SSH
check process sshd with pidfile /var/run/sshd.pid
   start program  "/etc/init.d/ssh start"
   stop program  "/etc/init.d/ssh stop"
   if failed port 22 protocol ssh then restart
   if 5 restarts within 5 cycles then timeout

# Следим за MySql
check process mysql with pidfile /var/run/mysqld/mysqld.pid
   group database
   start program = "/etc/init.d/mysql start"
   stop program = "/etc/init.d/mysql stop"
   if failed host 127.0.0.1 port 3306 then restart
   if 5 restarts within 5 cycles then timeout

# Следим за Apache2
check process apache with pidfile /var/run/apache2.pid
   group www
   start program = "/etc/init.d/apache2 start"
   stop program  = "/etc/init.d/apache2 stop"
   #  Если сервер недоступен порт 80, протокол http
   if failed host debian7.lan port 80 protocol http
   # и не читает содержимое файла "/monit/token", тогда рестарт
   # это только один из способов проверки доступности сервера
   # более подробно http://mmonit.com/monit/documentation/monit.html
      and request "/monit/token" then restart
   if cpu is greater than 60% for 2 cycles then alert
   if cpu > 80% for 5 cycles then restart
   if totalmem > 500 MB for 5 cycles then restart
   if children > 250 then restart
   if loadavg(5min) greater than 10 for 8 cycles then stop
   if 3 restarts within 5 cycles then timeout

# Следим за Postfix
check process postfix with pidfile /var/spool/postfix/pid/master.pid
   group mail
   start program = "/etc/init.d/postfix start"
   stop  program = "/etc/init.d/postfix stop"
   if failed port 25 protocol smtp then restart
   if 5 restarts within 5 cycles then timeout

# Остальные процессы можете контролировать (если нет нужных - добавьте) самостоятельно.
#check process nginx with pidfile /var/run/nginx.pid
#   start program = "/etc/init.d/nginx start"
#   stop  program = "/etc/init.d/nginx stop"
#   if failed host 127.0.0.1 port 80 then restart
#
#check process memcached with pidfile /var/run/memcached.pid
#   start program = "/etc/init.d/memcached start"
#   stop  program = "/etc/init.d/memcached stop"
#   if failed host 127.0.0.1 port 11211  then restart
#
#check process pureftpd with pidfile /var/run/pure-ftpd/pure-ftpd.pid
#   start program = "/etc/init.d/pure-ftpd-mysql start"
#   stop program  = "/etc/init.d/pure-ftpd-mysql stop"
#   if failed port 21 protocol ftp then restart
#   if 5 restarts within 5 cycles then timeout
#
#check process named with pidfile /var/run/named/named.pid
#   start program = "/etc/init.d/bind9 start"
#   stop program = "/etc/init.d/bind9 stop"
#   if failed host 127.0.0.1 port 53 type tcp protocol dns then restart
#   if failed host 127.0.0.1 port 53 type udp protocol dns then restart
#   if 5 restarts within 5 cycles then timeout
#
#check process ntpd with pidfile /var/run/ntpd.pid
#   start program = "/etc/init.d/ntp start"
#   stop  program = "/etc/init.d/ntp stop"
#   if failed host 127.0.0.1 port 123 type udp then restart
#   if 5 restarts within 5 cycles then timeout
#
#check process mailman with pidfile /var/run/mailman/mailman.pid
#   group mail
#   start program = "/etc/init.d/mailman start"
#   stop  program = "/etc/init.d/mailman stop"
#
#check process amavisd with pidfile /var/run/amavis/amavisd.pid
#   group mail
#   start program = "/etc/init.d/amavis start"
#   stop  program = "/etc/init.d/amavis stop"
#   if failed port 10024 protocol smtp then restart
#   if 5 restarts within 5 cycles then timeout
#
#check process courier-imap with pidfile /var/run/courier/imapd.pid
#   group mail
#   start program = "/etc/init.d/courier-imap start"
#   stop program = "/etc/init.d/courier-imap stop"
#   if failed host localhost port 143 type tcp protocol imap then restart
#   if 5 restarts within 5 cycles then timeout
#
#check process courier-imap-ssl with pidfile /var/run/courier/imapd-ssl.pid
#   group mail
#   start program = "/etc/init.d/courier-imap-ssl start"
#   stop program = "/etc/init.d/courier-imap-ssl stop"
#   if failed host localhost port 993 type tcpssl sslauto protocol imap then restart
#   if 5 restarts within 5 cycles then timeout
#
#check process courier-pop3 with pidfile /var/run/courier/pop3d.pid
#   group mail
#   start program = "/etc/init.d/courier-pop start"
#   stop program = "/etc/init.d/courier-pop stop"
#   if failed host localhost port 110 type tcp protocol pop then restart
#   if 5 restarts within 5 cycles then timeout
#
#check process courier-pop3-ssl with pidfile /var/run/courier/pop3d-ssl.pid
#   group mail
#   start program = "/etc/init.d/courier-pop-ssl start"
#   stop program = "/etc/init.d/courier-pop-ssl stop"
#   if failed host localhost port 995 type tcpssl sslauto protocol pop then restart
#   if 5 restarts within 5 cycles then timeout
#
#check process dovecot with pidfile /var/run/dovecot/master.pid
#   group mail
#   start program = "/etc/init.d/dovecot start"
#   stop program = "/etc/init.d/dovecot stop"
#   if failed host localhost port 993 type tcpssl sslauto protocol imap then restart
#   if 5 restarts within 5 cycles then timeout
Создаём каталог в рабочей директории debian7.lan: Создаём файл с произвольным содержимым:
  1. echo "hello" > /var/www/debian7.lan/web/monit/token
Создадим каталог под сертификат для SSL: Создадим конфиг: И заполним его:

Код: Выделить всё

# create RSA certs - Server

RANDFILE = ./openssl.rnd

[ req ]
default_bits = 2048
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type

[ req_dn ]
countryName = Country Name (2 letter code)
countryName_default = MO

stateOrProvinceName             = State or Province Name (full name)
stateOrProvinceName_default     = Monitoria

localityName                    = Locality Name (eg, city)
localityName_default            = Monittown

organizationName                = Organization Name (eg, company)
organizationName_default        = Monit Inc.

organizationalUnitName          = Organizational Unit Name (eg, section)
organizationalUnitName_default  = Dept. of Monitoring Technologies

commonName                      = Common Name (FQDN of your server)
commonName_default              = server.monit.mo

emailAddress                    = Email Address
emailAddress_default            = root@monit.mo

[ cert_type ]
nsCertType = server
Создадим сертификат:
  1. openssl req -new -x509 -days 365 -nodes -config ./monit.cnf -out /var/certs/monit.pem -keyout /var/certs/monit.pem
  2. openssl gendh 512 >> /var/certs/monit.pem
  3. chmod 700 /var/certs/monit.pem

Делаем старт monit: Заходим в панель ISPConfig3 и настраиваем:
wm-Monit 003.png
Конфигурация сервера
Результат работы:
wm-Monit 002.png
Вкладка Monit
Если в Chrom'e нет вывода графиков, обращаем внимание на значок:
wm-Monit 001.png
Жмём сюда и разрешаем загрузку скрипта
wm-Monit 001.png (19.51 КБ) 6468 просмотров
Пока настраивал сервис, Monit накидал сообщений на ящик test@test.com :-D
wm-mesages.png
Сообщения о сбоях
Вроде всё... Удачи! *DRINK*
vyck24
Сообщения: 1
Зарегистрирован: 11 ноя 2013, 13:07

11 ноя 2013, 17:41

здраствуйте, отличный пост! Я подозреваю что на вашем сервере нету NGINX! Как установить и настраивать Munin в ISPConfig если на сервере стоит Nginx. Спасибо!
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2616
Зарегистрирован: 23 янв 2012, 22:11

11 ноя 2013, 19:05

vyck24, спасибо за отзыв конечно. Но хотелось бы узнать как прошла Ваша попытка установить всё это по мануалу на Nginx.
Аватара пользователя
salp
Контактная информация:
Сообщения: 11
Зарегистрирован: 11 сен 2013, 11:40

20 ноя 2013, 14:04

Проделал все действия по этому мануалу. В итоге:

1. Munin работает по внешней ссылке в отдельном окне, а в самой админке просто пустое окошко, т.е. страница Munin не отображается. Пока что пытаюсь понять почему.
2. Нашел ошибку в мануале для Monit - каталог создается "не там"
mkdir -p /var/www/monit
должно быть так: mkdir -p /var/www/debian7.lan/monit
3. Monit по-умолчанию считает, что для апача 500Мб это предельный лимит памяти и если он превышен (а он у меня конечно больше), пытается рестартовать апач.
4. Не работает рестарт апача ни вручную чезез панель Monit ни автоматически, например, при превышении лимита памяти. Т.е. апач останавливается, но обратно уже не стартует - приходится стартовать его руками. /etc/init.d/apache2 restart, конечно, отрабатывает корректно (проверил специально). Какую команду использует monit для рестарта апача, пока не выяснял.

salp писал(а):должно быть так: mkdir -p /var/www/debian7.lan/monit
даже не так, а: mkdir -p /var/www/debian7.lan/web/monit
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2616
Зарегистрирован: 23 янв 2012, 22:11

20 ноя 2013, 19:46

salp писал(а):Нашел ошибку в мануале для Monit - каталог создается "не там"
Спасибо, поправлю.
Аватара пользователя
salp
Контактная информация:
Сообщения: 11
Зарегистрирован: 11 сен 2013, 11:40

20 ноя 2013, 19:50

salp писал(а):1. Munin работает по внешней ссылке в отдельном окне, а в самой админке просто пустое окошко, т.е. страница Munin не отображается. Пока что пытаюсь понять почему.
Решилось переводом Munin на протокол https://, т.к. у меня админка по защищенному протоколу работает, видимо, поэтому не отображалось.
maxim
Сообщения: 13
Зарегистрирован: 26 окт 2013, 17:21

02 дек 2013, 01:30

После установки Munin и Monit сервер постоянно шлет запросы на:

Код: Выделить всё

i.root-servers.n
d.in-addr-server
e.root-servers.n
v.arin.net
b.in-addr-server
sec1.authdns.rip
sec3.apnic.net
подскажите что это такое?
OS:Debian 7
Панель:ISPCONFIG 3 настраивал по инструкции с сайта mini-server.ru
Аватара пользователя
shambler81
Контактная информация:
Откуда: Москва
Сообщения: 232
Зарегистрирован: 23 мар 2012, 20:09

30 янв 2014, 18:57

vyck24, спасибо за отзыв конечно. Но хотелось бы узнать как прошла Ваша попытка установить всё это по мануалу на Nginx.
Если вы говорите о связке nginx+apache

Код: Выделить всё

find /etc/munin/plugins/apache_* -type f -exec sed -i 's/80/82/g' "{}" \;
 
В зависимости от вашего порта разумеется.

Код: Выделить всё

/etc/init.d/munin-node restart
Аватара пользователя
MiraMaX166
Контактная информация:
Откуда: ОМСК
Сообщения: 54
Зарегистрирован: 02 янв 2013, 23:30

06 окт 2014, 11:23

shambler81 писал(а):Если вы говорите о связке nginx+apache

Код: Выделить всё
find /etc/munin/plugins/apache_* -type f -exec sed -i 's/80/82/g' "{}" \;
Нет, с симлинками не сработает, надо вот так:

Код: Выделить всё

find /usr/share/munin/plugins/apache_* -type f -exec sed -i 's/80/82/g' "{}" \;
У меня смена сидом прошла только так...

Если бесит, что в мунине постоянно висит критическая ошибка "MySQL InnoDB free tablespace", проделываем следующее:

Код: Выделить всё

nano /etc/munin/plugin-conf.d/mysql_innodb
Вставляем это:

Код: Выделить всё

[mysql_innodb]
env.warning 0
env.critical 0
И перезапускаем мунин:

Код: Выделить всё

/etc/init.d/munin-node restart

Кто-нибудь подключал плагин мониторинга ngix на сервере nginx+apache? Графики апача рисуются норм, а у энжинкса всё глухо...


Вопрос снимаю, разобрался. Надо было конфиг напильником поправить...
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2616
Зарегистрирован: 23 янв 2012, 22:11

06 окт 2014, 20:40

MiraMaX166 писал(а):Надо было конфиг напильником поправить...
А поделиться? :-)
Аватара пользователя
MiraMaX166
Контактная информация:
Откуда: ОМСК
Сообщения: 54
Зарегистрирован: 02 янв 2013, 23:30

06 окт 2014, 21:04

SinglWolf писал(а):А поделиться? :-)
В файл /etc/nginx/conf.d/default.conf добавить новый локейшн:

Код: Выделить всё

location /munin {
        stub_status on;
        access_log  off;
        allow       127.0.0.1;
        deny        all;
        }
Далее топаем в /usr/share/munin/plugins и указываем в файлах nginx_request и nginx_status:
вместо

Код: Выделить всё

  [nginx*]
      env.url http://localhost/munin
вот это

Код: Выделить всё

  [nginx*]
      env.url http://ваш_домен.com/munin
После этого у меня всё пошло норм.
Аватара пользователя
kulia
Откуда: Москва
Сообщения: 147
Зарегистрирован: 28 май 2014, 14:59

12 окт 2017, 22:38

Попробовал установить Munin на Debian 8 Nginx+Apache+ISPConfig по вышеуказанному мануалу, Monit даже не стал пробовать. Никак не взлетело. Мануал устарел...
Попробовал поставить Для просмотра ссылок Вы должны быть авторизованы на форуме. взлетело только в браузере, в панели никак не хочет (перепробовал все что сумел *SCRATCH* ), пустая страница и все тут. Просьба помочь с мануалом.
Создал на Линукс-форуме тему "Установка Internet Explorer под Убунту".
Тему удалили через 4 минуты, выдали бан на 10 дней...
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2616
Зарегистрирован: 23 янв 2012, 22:11

13 окт 2017, 07:26

kulia писал(а):Никак не взлетело
В чём это выражается?
kulia писал(а):Попробовал поставить отсюда взлетело только в браузере
Там про панель ни слова. Или я что-то проглядел?
kulia писал(а):перепробовал все что сумел
Огласите весь список, пожалуйста! ©
kulia писал(а):Мануал устарел...
Естественно. Ничто не вечно... :-) Как придумаю новую платформу для ресурса, буду обновлять материалы. (Мечтать не вредно :-) )
Аватара пользователя
kulia
Откуда: Москва
Сообщения: 147
Зарегистрирован: 28 май 2014, 14:59

13 окт 2017, 15:41

1. Выражается в том, что ничего после установки не происходило.
2. В браузере все нормально показывало, после настройки ссылок в панели, при переходе на вкладку Munin белое полотно и все.
3. Ссылку пробовал прописывать в панели и Для просмотра ссылок Вы должны быть авторизованы на форуме. Для просмотра ссылок Вы должны быть авторизованы на форуме., и Для просмотра ссылок Вы должны быть авторизованы на форуме.. При переходе по первой ссылке (у меня настроено перенаправление на https) в браузере не работает, по третьей все нормально и графики строит.
Не совсем понял что это :-D , но тоже попробовал:

Код: Выделить всё

find /usr/share/munin/plugins/apache_* -type f -exec sed -i 's/80/82/g' "{}" \;
4. Мануал устарел - без каких-либо претензий, просто попробовал по мануалу отсюда - написал, что не работает. Если найдутся те кто выложит рабочий мануал скажу СПАСИБО!!! *YES*
Создал на Линукс-форуме тему "Установка Internet Explorer под Убунту".
Тему удалили через 4 минуты, выдали бан на 10 дней...
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2616
Зарегистрирован: 23 янв 2012, 22:11

13 окт 2017, 16:12

kulia писал(а):Не совсем понял что это , но тоже попробовал:

Код: Выделить всё

find /usr/share/munin/plugins/apache_* -type f -exec sed -i 's/80/82/g' "{}" \;
По полочкам:
find найти -type f файлы в каталоге /usr/share/munin/plugins/, которые попадают под маску "apache_*".
-exec sed -i 's/80/82/g' "{}" \; Искать в найденных файлах "80" и заменить на "82" глобально.

А нужно это для того, чтобы правильно мониторить apache, у которого в связке с nginx порт не 80, а 82. Порт 80 занят nginx.

P.S. Мануал будет обновлён, в смысле, будет добавлена настройка для nginx и nginx+apache.
Аватара пользователя
kulia
Откуда: Москва
Сообщения: 147
Зарегистрирован: 28 май 2014, 14:59

13 окт 2017, 18:31

SinglWolf писал(а):По полочкам
СПАСИБО!!! за разъяснения, не часто встречаешь людей которые захотят разъяснить тебе синтаксис! *YES*
Создал на Линукс-форуме тему "Установка Internet Explorer под Убунту".
Тему удалили через 4 минуты, выдали бан на 10 дней...
Аватара пользователя
SinglWolf
Контактная информация:
Откуда: Башкирия
Сообщения: 2616
Зарегистрирован: 23 янв 2012, 22:11

15 окт 2017, 11:58

kulia и всем-всем... Ковырял настройку munin для nginx и нарвался на белый экран в панели
Опускаю все подробности, перехожу к сути.
Чтобы открыть munin в панели, используется метод login:password@host basic authentication handle, который больше не поддерживается браузерами в целях безопасности.
2017-10-15_11-51-39.png
Такие вот дела. *PARDON*
Думаю, что разрабы должны быть уже в курсе, но на всякий случай отпишу им о проблеме.

___
P.S. Обновление мануала остаётся в силе.

Вернуться в «Инструкции и учебники»