Нужно из вывода нагиосовской проверки извлечь ip пгпула и имена всех отвалившихся нод.
Делаю так:
$str = 'Host:192.168.0.1 FAIL:host1.org.ru OK:host2.org.ru';
preg_match('/^Host:
( (?:\d{1,3}\.){3}(?:\d{1,3}) ) # pgpool`s ip
(?: \s FAIL:([\w\.]+) )+
/xs', $str, $pocket);
в $pocket получаю:
array(3) {
[0]=>
string(40) "Host:192.168.0.1 FAIL:host1.org.ru"
[1]=>
string(13) "192.168.0.1"
[2]=>
string(16) "host1.org.ru"
}
Тут всё так как и должно быть. Но если обе ноды будут FAIL, то в карман попадёт только имя последней ноды. Как починить?