Суть такая. есть последний на данный момент rpm -q monit monit-5.2.5-alt0.M51.1 есть стандартный тест (из examples): check file syslog_file with path /var/log/syslog/messages if timestamp > 65 minutes then restart if failed permission 640 then unmonitor if failed uid root then unmonitor if failed gid adm then unmonitor тут группа из 4-х тестов. В ситуации, когда эти условия удовлетворяются - все работает успешно (долго): File 'syslog_file' status accessible monitoring status monitored permission 640 uid 0 gid 4 timestamp Tue May 17 13:40:36 2011 size 75091 B data collected Tue May 17 13:40:42 2011 # stat /var/log/syslog/messages File: `/var/log/syslog/messages' Size: 83486 Blocks: 166 IO Block: 1024 regular file Device: 302h/770d Inode: 18 Links: 1 Access: (0640/-rw-r-----) Uid: ( 0/ root) Gid: ( 4/ adm) Access: 2011-05-17 12:41:09.000000000 +0400 Modify: 2011-05-17 14:14:01.000000000 +0400 Change: 2011-05-17 14:14:27.000000000 +0400 работает, работает... меняю вручную права на файл: chmod 644 /var/log/syslog/messages # stat /var/log/syslog/messages File: `/var/log/syslog/messages' Size: 82654 Blocks: 164 IO Block: 1024 regular file Device: 302h/770d Inode: 18 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 4/ adm) Access: 2011-05-17 12:41:09.000000000 +0400 Modify: 2011-05-17 14:10:51.000000000 +0400 Change: 2011-05-17 14:10:51.000000000 +0400 По идее, один тест должен провалиться. А остальные в этой группе? File 'syslog_file' status GID failed monitoring status monitored permission 0 uid 0 gid 0 timestamp Thu Jan 1 03:00:00 1970 size 0 B data collected Tue May 17 13:45:27 2011 В логе: May 17 14:18:46 vep01 monit[2154]: 'syslog_file' permission test failed for /var/log/syslog/messages -- current permission is 0644 May 17 14:18:46 vep01 monit[2154]: 'syslog_file' gid test failed for /var/log/syslog/messages -- current gid is 0 May 17 14:18:46 vep01 monit[2154]: 'syslog_file' timestamp test failed for /var/log/syslog/messages May 17 14:18:46 vep01 monit[2154]: 'syslog_file' trying to restart Т.е. хотя я поменял всего лишь права - проваливаться стали _все_ тесты. Размер файла стал 0, дата стала 0 (unixtime), uid/gid стали 0. у меня это повторяемо - если сделать chmod 640 /var/log/syslog/messages в логе будет May 17 14:15:36 vep01 monit[2154]: 'syslog_file' gid succeeded May 17 14:15:36 vep01 monit[2154]: 'syslog_file' timestamp succeeded и все заработает. 644 - и опять все тесты провалятся. Что это за странное поведение? и даже больше: меняю gid на apache. Остальное в порядке: # stat /var/log/syslog/messages File: `/var/log/syslog/messages' Size: 87698 Blocks: 174 IO Block: 1024 regular file Device: 302h/770d Inode: 18 Links: 1 Access: (0640/-rw-r-----) Uid: ( 0/ root) Gid: ( 96/ apache) Access: 2011-05-17 14:37:29.000000000 +0400 Modify: 2011-05-17 14:37:49.000000000 +0400 Change: 2011-05-17 14:37:49.000000000 +0400 ситуация повторяется: File 'syslog_file' status Timestamp failed monitoring status monitored permission 0 uid 0 gid 0 timestamp Thu Jan 1 03:00:00 1970 size 0 B data collected Tue May 17 14:37:49 2011 опять все по 0, только вместо ошибки "gid failed" (что правда) - получаю "Timestamp failed" ...
Спасибо; в идеале бы сразу в апстрим отрепортить (я сейчас разгребаюсь после командировки): https://savannah.nongnu.org/bugs/?func=additem&group=monit
ну мало ли. Вдруг это локальное? если у кого воспроизводится.. Неприятный результат-то этого (у меня) тот, что из-за if timestamp > 65 minutes then restart (пытался задать проверку "а не повисло ли все тут?") все это внезапно перезагружается, если поменялись права или gid файла..
Да, при такой конфигурации это неправильно.
добавил: https://savannah.nongnu.org/bugs/index.php?33328
кстати вероятно, что вот это: http://lists.altlinux.org/pipermail/sysadmins/2008-April/025692.html является подтверждением той же проблемы. "current permission is 0" похоже на "current gid is 0" .. т.е. например поменялась checksum, а ругается заодно и на permission (обнуленный).
Спасибо.
Просьба проверить на 5.3, если воспроизводится -- буду дёргать апстрим в рассылке (со ссылкой на багрепорт).
ping
ping (сегодня грозились 5.4 выпустить)
в другом месте, на другом сервере, с другой версией попробовал воспроизвести monit-5.17.1-alt3 после chmod 644 /var/log/syslog/messages с сообщением Dec 23 14:32:00 www monit[23501]: 'syslog_file' permission test failed for /var/log/syslog/messages [current permission 0644] переходит в состояние File 'syslog_file' status Not monitored все, больше никаких нижеописанных эффектов
(В ответ на комментарий №10) > после chmod 644 /var/log/syslog/messages > переходит в состояние > File 'syslog_file' > status Not monitored Это как раз ожидаемо. > все, больше никаких нижеописанных эффектов Тогда WORKSFORME?
(В ответ на комментарий №11) > > все, больше никаких нижеописанных эффектов > Тогда WORKSFORME? не помню, какие там статусы у resolved, но "worksforme" означает "не подтверждается, не было и нет". тут не тот случай, скорее через 5,5 лет всё же исправили.
(В ответ на комментарий №12) > > > все, больше никаких нижеописанных эффектов > > Тогда WORKSFORME? > не помню, какие там статусы у resolved, но "worksforme" означает > "не подтверждается, не было и нет". Это скорее notabug уже :] > тут не тот случай, скорее через 5,5 лет всё же исправили. Я воспринимаю в подобных случаях worksforme как осторожное fixed, когда воспроизвести баг у причастных не получается, но твёрдой уверенности в виде конкретного коммита/патча/версии по конкретному багу нет. --- * WORKSFORME — майнтейнер не может воспроизвести ошибку и просит у пользователя дополнительную информацию. --- http://www.altlinux.org/BugTracking/BugzillaMiniHowto Впрочем, не настаиваю, пусть будет fixed.