slothfk / 1c_zabbix_template_ce

Шаблон Zabbix для мониторинга кластера серверов 1С Предприятия 8.3
MIT License
151 stars 53 forks source link

check_clusters_cache может галюцинировать #132

Open zeegin opened 6 months ago

zeegin commented 6 months ago
C:\Program Files\Zabbix Agent 2>"C:\Program Files\Git\bin\bash.exe" -c "wmic path win32_process where \"caption like 'rphost%'\" get caption,commandline,processid,osname"
Caption     CommandLine  OSName                                                                               ProcessId
rphost.exe               Microsoft Windows Server 2012 R2 Essentials|C:\Windows|\Device\Harddisk1\Partition2  6552

Screenshot 2024-01-19 125302

Если запускать cmd под админом - естественно все работает.

Может лучше читать из 1cv8wsrv.lst?

zeegin commented 6 months ago

Если захардкодить

# Проверить актуальность файла списка кластеров
function check_clusters_cache {

    # Получим список менеджеров кластеров, в которых участвует данный сервер, следующего вида:
    #   <имя_сервера>:<номер_порта_0>[|<номер_порта_1>[|..<номер_порта_N>]]
    readarray -t RMNGR_LIST < <( if [ -z "${IS_WINDOWS}" ]; then pgrep -ax rphost; else
        wmic path win32_process where "caption like 'rphost%'" get CommandLine | grep rphost; fi |
        sed -r 's/.*-regport ([^ ]+).*/\0|\1/; s/.*-reghost ([^ ]+).*\|/\1:/' | sort -u |
        awk -F: '{ if ( clstr_list[$1]== "" ) { clstr_list[$1]=$2 } \
            else { clstr_list[$1]=clstr_list[$1]"|"$2 } } \
            END { for ( i in clstr_list ) { print i":"clstr_list[i]} }' )

    # PATCH zeegin
    RMNGR_LIST[0]="localhost:3541"

то все ок

slothfk commented 6 months ago

Сначала не понял из описания сути проблемы, потом дошло (я же из строки запуска получаю порт менеджера). Надо подумать, так как с вин дело не имею, то ...

Может лучше читать из 1cv8wsrv.lst?

Для сервера лицензирования не подойдёт, да и потом бывает так, что в ОС процесс есть, а в реестре кластера нет, и наоборот ... Затея была смотреть именно за процессами, которые в ОС

zeegin commented 6 months ago

Тогда видимо надо zabbix agent с повышением привилегий запускать и с отключением UAC а это опасненькая затея... Либо с повышением привилений крутитить какое-то задание в планировщике которое будет дампить все в кеш а zabbix agent уже будет использовать.

slothfk commented 6 months ago

Тогда видимо надо zabbix agent с повышением привилегий запускать ...

По-умолчанию, агент от системной учётки запускается, вроде, а у неё прав хватает. Когда с безопасностью начинают "играться" более пристально, вероятно можно сделать такие права у пользователя которые дадут возможность посмотреть строку запуска, больше там ничего не надо лишнего. В Линуксе любой пользователь может посмотреть строку запуска в списке процессов.

zeegin commented 6 months ago

Неа, не хватает. Возможно агент 2 так создает службу. Пока не резобрался.

zeegin commented 6 months ago

Затея была смотреть именно за процессами, которые в ОС

Так все равно без правильно настроенного ras не получится мониторить жеж.

slothfk commented 6 months ago

Так все равно без правильно настроенного ras не получится мониторить жеж.

От чего же, количество процессов, объем потребляемой ими памяти - все берется из ОС, а не обращением к RAS.