Ad Widget

Collapse

Zabbix powershell (что то недоработано в заббиксе)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Oleg_Z
    Junior Member
    • Jul 2019
    • 4

    #1

    Zabbix powershell (что то недоработано в заббиксе)

    Результат проводился на последнем zabbix 5.4 (а так же не работало на 4.0) и на разных серверах с powershell (WindowsServer2012R2 и WindowsServer2019) - не в этом дело.
    Объясняю: В простых случаях, если в powershhell в скрипте прописать "hellow world" или допустим число 12 или $a=12; $a
    - заббикс заберет эти данные (но это особо никому не нужно), так же забирает другие более сложные команды типа размер файла и т.п. (Get-ChildItem |select Length | sort -Descending | select -Last 1 ).Length.
    Но есть действительно команды которые вводят заббикс в тупик, например команду (я не знаю, есть тут немного знакомые с powershell или нет) посмотреть все письма отправленные за последнюю минуту (не важно) и должна вернуться $result в иде обычного числа например 125 (в powershell и zabbix get возвращается без пробелов и других знаков, рассматривал под лупой), но накрывается всё медным тазом и в zabbix мониторинг данные не передаются!!!
    $DateStart=(Get-Date).AddMinutes(-1)
    $result=(Get-MessageTrackingLog -ResultSize unlimited -Start $DateStart | Sort MessageId -Unique | Group Sender |Select Count,@{N='Sender';E={$_.Group.Sender | select -Unique}} | Measure-Object -Sum Count).Sum
    При этом, запущенная проверочная команда zabbix_get -s Exchange -p 10050 -k "ключ" - возвращает результат!
    Не помогает на стороне заббикс менять тип элемента: десятичное/двоичное/текст/журнал - не в этом дело, уже проверял.
    Не помогает на стороне powershell конвертировать результат в целое число [int]$result в десятичное и т.п. - не в этом дело повторюсь.
    Но если сделать усложнив - выгрузить результат в текстовый файл то заббикс его заберет.
    Что я еще делал и на что думал и не помогло. Было подозрение что консоль powershell выдает служебную белиберду помимо $result, и выводил я всё это в ноль ($result | out-null) - не помогает. И опять же zabbix_get показывает что заберает результат в чисовом виде от $result.
    То есть после команды Get-MessageTrackingLog - вся консоль powershell ничего больше не передает по непонятным причиниам.
    Так же, заббикс не передает данные если я подключаю консоль powershell к Exchange. Опять непонятные дела.
    $Session=New-PSSession –ConfigurationName Microsoft.Exchange –ConnectionUri http://Exchange/PowerShell; Import-PSSession $Session -DisableNameChecking | Out-Null
    Всё это пахнет сыростью продукта опять. Может я не прав, буду рад, если это так!

    Да еще забыл, вот строчки в агенте с ключом string.string[*] (всё просто)
    Timeout=10
    UserParameter=string.string[*],powershell.exe C:\Scripts\AllSent.ps1
    Такой же один элемент с ключом на стороне заббикс.
    Last edited by Oleg_Z; 08-05-2021, 21:31.
  • Oleg_Z
    Junior Member
    • Jul 2019
    • 4

    #2
    И проблема не во времени, команды в powershell выполняется за 3 секунды, Timeout увеличивал до 30 сек. И опять же, zabbix get заберает данные за 3 секунды.

    Comment

    Working...