| Summary: | Не приходят уведомления о процессах на почту collectd-notify_email | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Sisyphus | Reporter: | Величко София <velichkosp> | ||||
| Component: | collectd-notify_email | Assignee: | Anton Farygin <rider> | ||||
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
| Severity: | normal | ||||||
| Priority: | P5 | CC: | amakeenk, asy, at, cas, crux, ender, lav, ldv, mike, qa_viy, rider, shaba, viy | ||||
| Version: | unstable | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Attachments: |
|
||||||
Поправьте имя 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
Реальный результат : Уведомление не приходит
Плагин notify_email в collectd не поддерживает TLS/SSL. Вам нужно настроить локальный MTA (postfix, например) и отправлять через него. collectd-5.12.0-alt9 -> sisyphus: Tue Feb 24 2026 Anton Farygin <rider@altlinux> 5.12.0-alt9 - used /run/rrdcached.sock instead of /tmp and /var/run paths (ALT#57971) - notify_email: replaced libesmtp with libcurl for TLS/SSL support (ALT#49531) - added connectivity and mqtt plugins as subpackages (ALT#39459) - added CAP_NET_RAW capability for ping plugin via systemd drop-in (ALT#37710) - fixed rrdcached plugin permission denied due to -B flag restriction (ALT#57972) - commented out LoadPlugin rrdtool in default config (ALT#36950) |
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 сообщениями Реальный результат : Уведомление не приходит