Не срабатывает триггер "Нет запущенных процессов"
Здравствуйте!
Сервер 1С Предприятие 8.3.23.1997 под управлением Ubuntu 22.04, пользуемся Zabbix Server 5.4.
Время от времени слетает рабочий процесс 1С rphost, надеялся поставить на эту ситуацию оповещение, столкнулся вот с такой проблемой.
Когда слетает рабочий процесс, в item количество процессов не определено (на графике видно пустое место, в понедельник в 9 утра обнаружили и перезапустили сервис).
При этом в логах сервера Zabbix сыпит такими сообщениями:
52840:20240630:014114.536 error reason for "srv1c:1c.ws.rphost.memory" changed: Preprocessing failed for: rmngr: 1 250204160 .ragent: 1 16023552 1
1. Failed: cannot perform regular expression "rphost: \d+ (\d+) \d" match for value of type "string": pattern does not match
Если при работоспособном 1С запускаю скрипт 1c_work_server.sh, получаю такое:
zabbix@srv1c:/var/lib/zabbix/scripts$ bash -x 1c_work_server.sh memory
++ sed -r 's/\\/\//g; s/^(.{1}):/\/\1/'
++ dirname 1c_work_server.sh
+ WORK_DIR=.
+ shopt -q extglob
+ shopt -s extglob
+ source ./1c_common_module.sh
+ export DUMP_CODE_0=0
+ DUMP_CODE_0=0
+ export DUMP_CODE_1=1
+ DUMP_CODE_1=1
+ export DUMP_CODE_2=2
+ DUMP_CODE_2=2
+ export DUMP_CODE_3=3
+ DUMP_CODE_3=3
+ case ${1} in
+ get_memory_counts
+ RPHOST_PID_HASH=/tmp/1c_rphost_pid_hash
+ [[ -z '' ]]
+ sed -re 's/^([^ ]+) +([0-9]+) +([0-9]+) +/\1,\2,\3,/'
++ cat /tmp/1c_rphost_pid_hash
++ pgrep -d, 'ragent|rphost|rmngr'
+ awk -F, -v mem_in_kb=1024 -v pid_hash=bf5e5da7f56ee6ce53743c06c2c3d3e7 '/.*,[0-9]+,[0-9]+/ {
proc_name[$1]=gensub(/[.].+/,"","g",$1)
proc_pids[$1][$2]
proc[$1,"memory"]+=$3
} END {
for ( pn in proc_name ) {
proc_flag=""; pid_list=""
switch (pn) {
case /ragent.*/:
if ($4 ~ /(\/|-)debug(\s|$)/ ) proc_flag=1; else proc_flag=0
break
case /rphost.*/:
for (i in proc_pids[pn]) pid_list=pid_list?pid_list","i:i
hash_command="echo "pid_list" | md5sum | sed \"s/ .*//\""
(hash_command | getline new_hash) > 0
close(hash_command)
if ( pid_hash == new_hash ) { proc_flag=0 } else { proc_flag=1 }
print new_hash > "/tmp/1c_rphost_pid_hash"
break
}
print proc_name[pn]":",length(proc_pids[pn]),proc[pn,"memory"]*mem_in_kb,proc_flag
}
}'
+ ps -hwwp 135567,4155283,4155299 -o comm,pid,rss,cmd -k pid
rphost: 1 6894641152 0
rmngr: 1 338317312
ragent: 1 47267840 1
То есть, насколько я понимаю, при отвалившемся rphost скрипт будет показывать две строчки, про rmngr и ragent.
rmngr: 1 246779904 .ragent: 1 16023552 1
И preprocessing в item [1С/Рабочий процесс] Число процессов не может вычислить значение.
Это как-то лечится? Заранее благодарю.
Выглядит как ошибка, проверю
Таки да, это ошибка, и я понял когда она появилась, постараюсь поправить в ближайшее время