collectd-notify_email-5.12.0-alt5.x86_64 Alt Kworkstation 10.2.1 x86-64 обновленный до Sisyphus Шаги воспроизведения : Шаг 1. 1 машина - apache Установить и настроить apache: # apt-get install apache2 # cat << EOF >> /etc/httpd2/conf/sites-enabled/000-default.conf ExtendedStatus on <Location /mod_status> SetHandler server-status </Location> EOF Запустить httpd2: # a2enmod status && systemctl enable --now httpd2 && systemctl status httpd2 Проверить: # curl http://localhost/mod_status 2 машина - nginx Настроить nginx по инструкции https://www.altlinux.org/Nginx/php5-fpm (используя php7): Запустить nginx: # chkconfig nginx on && service nginx start && systemctl enable --now nginx && systemctl status nginx Проверить: # echo '<?php phpinfo(); ?>' > /var/www/test/index.php # echo "$(hostname -i) localhost" >> /etc/hosts # curl http://localhost/index.php # curl http://localhost/nginx_status Шаг 2. Установить пакеты : # apt-get install collectd collectd-apache collectd-bind collectd-cgi collectd-cgi-apache2 collectd-cgi-nginx collectd-cluster collectd-curl collectd-dbi collectd-dpdk collectd-full collectd-gps collectd-ipmi collectd-memcached collectd-mysql collectd-nginx collectd-notify_desktop collectd-notify_email collectd-nut collectd-ping collectd-postgresql collectd-rrdcached collectd-rrdtool collectd-sensors collectd-snmp collectd-tokyotyrant collectd-virt -y Шаг 3. Привести конфигурационный файл к следующему виду : Hostname "localhost" FQDNLookup true BaseDir "/var/lib/collectd" TypesDB "/usr/share/collectd/types.db" LoadPlugin syslog LoadPlugin cpu LoadPlugin interface LoadPlugin load LoadPlugin memory LoadPlugin nginx LoadPlugin rrdtool LoadPlugin apache LoadPlugin users <Plugin nginx> URL "http://IP-SERVER/nginx_status" VerifyPeer false VerifyHost false </Plugin> <Plugin "apache"> <Instance "IP-SERVER"> URL "http://IP-SERVER/mod_status?auto" User "test" Password "1" VerifyPeer false VerifyHost false </Instance> </Plugin> LoadPlugin ping <Plugin ping> Host "www.google.com" Interval 1.0 Timeout 0.9 TTL 255 SourceAddress "8.8.8.8" Device "eth0" MaxMissed -1 </Plugin> LoadPlugin notify_email <Plugin notify_email> SMTPServer "stmp.mail.ru" SMTPPort 465 SMTPUser "<адрес, откуда будут отправляться сообщения>@mail.ru" SMTPPassword "1" From "<адрес, откуда будут отправляться сообщения>@mail.ru" Subject "[collectd] %s on %s!" Recipient "<адрес реципиента>@mail.ru" </Plugin> Шаг 4. Запустить сервис и проверить его состояние : # systemctl enable --now collectd && systemctl status collectd Шаг 5. Проверить наличие письма на почте реципиента Ожидаемый результат : На почту пришло письмо с ping сообщениями Реальный результат : Уведомление не приходит
Поправьте имя SMTP сервера.
Исправленная часть конфига с notify_email : LoadPlugin notify_email <Plugin notify_email> SMTPServer "smtp.mail.ru" SMTPPort 465 SMTPUser "<адрес, откуда будут отправляться сообщения>@mail.ru" SMTPPassword "<пароль для почты>" From "<адрес, откуда будут отправляться сообщения>@mail.ru" Subject "[collectd] %s on %s!" Recipient "<адрес реципиента>@mail.ru" </Plugin>
(Ответ для Alexey Shabalin на комментарий #1) > Поправьте имя SMTP сервера. Исправила название smtp сервера, но уведомления все так же не приходят.
(Ответ для Величко София на комментарий #3) > Исправила название smtp сервера, но уведомления все так же не приходят. Что в логах пишется?
Created attachment 15614 [details] collected.log
Приложила файл с journalctl -xeu collectd.service логами и с логами плагина logfile.
(Ответ для Величко София на комментарий #3) > уведомления все так же не приходят Согласно https://habr.com/ru/articles/162087/ нужно настроить плагин threshold https://www.collectd.org/documentation/manpages/collectd-threshold.html
Я бы предложил ещё tcpdump-ом трафик глянуть в сторону mail.ru. Или вообще локальный MTA поставить и попробовать через localhost послать, чтобы логи MTA видеть. По крайней мере в очередь должно попасть. Нет у меня уверенности, что у collectd лог нормальный везде. Собственно я знаю, что он не у всех плагинов достаточный.
Обновленные шаги для воспроизведения ошибки, с использованием плагина threshold и CPU : collectd-notify_email-5.12.0-alt5.x86_64 Alt Server 10.1-x86-64 обновленный до Sisyphus Шаги воспроизведения : Шаг 1. Установить следующие пакеты : # apt-get install collectd collectd-apache collectd-bind collectd-cgi collectd-cgi-apache2 collectd-cgi-nginx collectd-cluster collectd-curl collectd-dbi collectd-dpdk collectd-full collectd-gps collectd-ipmi collectd-memcached collectd-mysql collectd-nginx collectd-notify_desktop collectd-notify_email collectd-nut collectd-ping collectd-postgresql collectd-rrdcached collectd-rrdtool collectd-sensors collectd-snmp collectd-tokyotyrant collectd-virt -y Шаг 2. Привести конфигурационный файл /etc/collectd.conf к следующему виду : Hostname "localhost" FQDNLookup true BaseDir "/var/lib/collectd" TypesDB "/usr/share/collectd/types.db" LoadPlugin syslog LoadPlugin interface LoadPlugin load LoadPlugin memory LoadPlugin rrdtool LoadPlugin users LoadPlugin logfile <Plugin logfile> LogLevel "warning" File "/var/log/collectd.log" </Plugin> LoadPlugin notify_email <Plugin notify_email> SMTPServer "<выбранный SMTP-сервер>" SMTPPort <порт выбранного SMTP-сервера> SMTPUser "<логин от почты, откуда будут приходить сообщения>" SMTPPassword "<пароль от почты, откуда будут приходить сообщения>" From "<почта, откуда будут приходить сообщения>" Subject "[collectd] %s on %s!" Recipient "<почта реципиента>" </Plugin> LoadPlugin cpu LoadPlugin threshold <Threshold> <Type cpu> Instance "user" WarningMax 50 Hits 1 </Type> </Threshold> Шаг 3. Запустить сервис и проверить его состояние : # systemctl enable --now collectd && systemctl status collectd Шаг 4. Установить пакет cpuburn : # apt-get install cpuburn -y Шаг 5. Нагрузить cpu : # burnP6 Ожидаемый результат : На почту реципиента должно прийти сообщение о перегрузке CPU Реальный результат : Уведомление не приходит