我正在尝试设置监控对于我的 Debian 服务器。我有一个主要的 monitrc 文件,/etc/monit
其中最后有include /etc/monit/conf.d/*
.
在 conf.d 中,我有两个用于 apache 和 mysql 服务器的文件:
# ls -al /etc/monit/conf.d
total 16
drwxr-xr-x 2 root root 4096 Apr 15 16:03 .
drwxr-xr-x 3 root root 4096 Apr 15 16:02 ..
-rwx------ 1 root root 272 Apr 15 15:38 apache2.conf
-rwx------ 1 root root 264 Apr 15 15:47 mysql.conf
当我运行monit -t
(测试配置语法)时,我得到:
/etc/monit/conf.d/apache2.conf:1: Error: syntax error 'check process '
如果我删除/移动 apache2.conf 文件,mysql 配置文件也会出现相同的错误。
# cat apache2.conf
check process apache2 with pidfile /var/run/apache2.pid
start program = "/usr/sbin/service apache2 start"
stop program = "/usr/sbin/service apache2 stop"
if failed
host localhost
port 80
protocol http
request "/catalog/"
then restart and alert
以及内容mysql.conf
# cat mysql.conf
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group database
start program = "/usr/sbin/service mysqld start"
stop program = "/usr/sbin/service mysqld stop"
if failed host localhost port 3306 protocol mysql then restart and alert
我有:
- 尝试了conf文件的许多变体
- 文档看了20遍以上
- 替换 mysqld.conf 文件中的公共 monit 配置文件的公共存储库并删除 apache2 配置文件
- 查看十六进制文件,没有有趣的字符。
- 尝试了制表符和空格。
- 删除除第一行以外的所有内容。
- 仔细检查
/var/run/mysqld/mysqld.pid
确实存在。 - 确保两个
monitrc
conf.d文件的权限都是0700。
此时我完全困惑于可能导致(不是很有帮助)错误消息的原因,/etc/monit/conf.d/apache2.conf:1: Error: syntax error 'check process '
答案1
我今天遇到了这个问题。我能够将问题追溯到第二个 monit 配置文件。从 5.17.1 开始,如果配置文件未正确关闭,它将在尝试加载下一个文件时立即抛出语法错误。
就我而言,我有一个警报以数字结尾repeat every 10
,并且缺少数字后的“周期”。即使该文件无效,它也会导致完全不同的文件显示为无效。
答案2
老问题,不知道是否相关,但我不确定你可以写then restart and alert
。
很确定alert
它已经隐式作为restart
无论如何的一部分,因此不需要。