# apt-cache policy nagios-plugins-check_monit nagios-plugins-check_monit: Установлен: 1.4-alt1:sisyphus+239556.100.1.1@1571662204 apt-cache show: Changelog: * Пн окт 21 2019 Andrey Bychkov <mrdrew@altlinux.org> 1.4-alt1 - Version updated to 1.4 - python2 -> python3 Однако при попытке запустить плагин (явно или неявно): # python3 /usr/lib/nagios/plugins/check_monit.py File "/usr/lib/nagios/plugins/check_monit.py", line 65 print "OK: %s%s"%(message,perfdata_string) ^ SyntaxError: invalid syntax При запуске в старой версии: python /usr/lib/nagios/plugins/check_monit.py - все в порядке: Usage: check_monit.py -H <host> [<options>] check_monit.py: error: No <host> defined! (Это нормальный отклик, так как не были указаны параметры. На рабочем сервере с нужными параметрами видно, что плагин полнстью работоспособен.)
nagios-plugins-check_monit-1.4-alt2 -> sisyphus: Tue Oct 29 2019 Andrey Bychkov <mrdrew@altlinux> 1.4-alt2 - py2 -> py3 (Closes #37396)
Спасибо, проверил новую версию плагина. Python3 проходит холостую проверку: # /usr/lib/nagios/plugins/check_monit.py Usage: check_monit.py -H <host> [<options>] check_monit.py: error: No <host> defined! Но вот рабочий запрос - выдает ошибку: # /usr/lib/nagios/plugins/check_monit.py -H localhost -u monit -P password_here /usr/lib/nagios/plugins/check_monit.py:104: DeprecationWarning: encodestring() is a deprecated alias since 3.1, use encodebytes() headers['Authorization'] = 'Basic ' + (base64.encodestring(opts.username + ':' + opts.password)).strip() Traceback (most recent call last): File "/usr/lib64/python3.7/base64.py", line 510, in _input_type_check m = memoryview(s) TypeError: memoryview: a bytes-like object is required, not 'str' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/nagios/plugins/check_monit.py", line 287, in <module> main() File "/usr/lib/nagios/plugins/check_monit.py", line 268, in main process_monit_response(get_status()) File "/usr/lib/nagios/plugins/check_monit.py", line 104, in get_status headers['Authorization'] = 'Basic ' + (base64.encodestring(opts.username + ':' + opts.password)).strip() File "/usr/lib64/python3.7/base64.py", line 540, in encodestring return encodebytes(s) File "/usr/lib64/python3.7/base64.py", line 527, in encodebytes _input_type_check(s) File "/usr/lib64/python3.7/base64.py", line 513, in _input_type_check raise TypeError(msg) from err TypeError: expected bytes-like object, not str Не имеет значения, правильный пароль указан или нет. Версии программ последние: # apt-cache policy python3 python3: Установлен: 3.7.4-alt2:sisyphus+239418.100.1.1@1571389791 Кандидат: 3.7.4-alt2:sisyphus+239418.100.1.1@1571389791 # apt-cache policy monit monit: Установлен: 5.26.0-alt1:sisyphus+234023.100.1.1@1562442242 Кандидат: 5.26.0-alt1:sisyphus+234023.100.1.1@1562442242
nagios-plugins-check_monit-1.4-alt3 -> sisyphus: Wed Nov 06 2019 Andrey Bychkov <mrdrew@altlinux> 1.4-alt3 - func of encoding according python3 fixed (Closes #37396)