Bug 49531 - Не приходят уведомления о процессах на почту collectd-notify_email
Summary: Не приходят уведомления о процессах на почту collectd-notify_email
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: collectd-notify_email (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-02-27 18:10 MSK by Величко София
Modified: 2024-03-01 09:48 MSK (History)
13 users (show)

See Also:


Attachments
collected.log (13.01 KB, text/x-log)
2024-02-28 10:39 MSK, Величко София
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Величко София 2024-02-27 18:10:17 MSK
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 сообщениями
Реальный результат : Уведомление не приходит
Comment 1 Alexey Shabalin 2024-02-27 20:41:06 MSK
Поправьте имя SMTP сервера.
Comment 2 Величко София 2024-02-28 10:17:55 MSK
Исправленная часть конфига с 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>
Comment 3 Величко София 2024-02-28 10:18:47 MSK
(Ответ для Alexey Shabalin на комментарий #1)
> Поправьте имя SMTP сервера.

Исправила название smtp сервера, но уведомления все так же не приходят.
Comment 4 Alexander Makeenkov 2024-02-28 10:20:11 MSK
(Ответ для Величко София на комментарий #3)
> Исправила название smtp сервера, но уведомления все так же не приходят.

Что в логах пишется?
Comment 5 Величко София 2024-02-28 10:39:17 MSK
Created attachment 15614 [details]
collected.log
Comment 6 Величко София 2024-02-28 10:40:28 MSK
Приложила файл с journalctl -xeu collectd.service логами и с логами плагина logfile.
Comment 7 Alexander Makeenkov 2024-02-28 11:38:34 MSK
(Ответ для Величко София на комментарий #3)
> уведомления все так же не приходят

Согласно https://habr.com/ru/articles/162087/ нужно настроить плагин threshold https://www.collectd.org/documentation/manpages/collectd-threshold.html
Comment 8 Sergey Y. Afonin 2024-02-28 11:39:44 MSK
Я бы предложил ещё tcpdump-ом трафик глянуть в сторону mail.ru. Или вообще локальный MTA поставить и попробовать через localhost послать, чтобы логи MTA видеть. По крайней мере в очередь должно попасть. Нет у меня уверенности, что у collectd лог нормальный везде. Собственно я знаю, что он не у всех плагинов достаточный.
Comment 9 Величко София 2024-03-01 09:48:17 MSK
Обновленные шаги для воспроизведения ошибки, с использованием плагина 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

Реальный результат : Уведомление не приходит