"collectd - snmp.conf" 的原因是什么:语法错误,意外的 EOL。使用新 MIB 时启动
What is the cause of "collectd - snmp.conf": syntax error, unexpected EOL. Starting when new MIB is used
有很多类似我的问题,但我找不到适合我的解决方案。
我目前正在 CentOS 7 机器上使用 collectd 5.8 版。
由于配置文件中的错误,collectd.service 将无法启动。配置文件位于 /etc/collectd.d/snmp.conf
中,并从 collectd.conf
文件中正确调用。我的错误如下:
Mar 30 01:16:24 localhost.localdomain collectd[18779]: Parse error in file `/etc/collectd.d/snmp.conf', line 19 near `<newline>': syntax error, unexpected EOL
Mar 30 01:16:24 localhost.localdomain collectd[18779]: yyparse returned error #1
Mar 30 01:16:24 localhost.localdomain collectd[18779]: configfile: Cannot read file `/etc/collectd.d/snmp.conf'.
Mar 30 01:16:24 localhost.localdomain collectd[18779]: Unable to read config file /etc/collectd.conf.
Mar 30 01:16:24 localhost.localdomain collectd[18779]: Error: Reading the config file failed!
Mar 30 01:16:24 localhost.localdomain collectd[18779]: Read the logs for details.
Mar 30 01:16:24 localhost.localdomain systemd[1]: collectd.service: main process exited, code=exited, status=1/FAILURE
Mar 30 01:16:24 localhost.localdomain systemd[1]: Failed to start Collectd statistics daemon.
我在我的代码中找不到任何异常的地方,也许你们能找到问题所在。
我的snmp.conf文件,发生错误的地方如下:
<Plugin snmp
<Data "if_octets">
Type "if_octets"
Table true
Instance "IF-MIB::ifDescr"
Values "IF-MIB::ifOutOctets" "IF-MIB::ifInOctets"
</Data>
<Data "if_speed">
Type "bitrate"
Table true
Instance "IF-MIB::ifDescr"
Values "IF-MIB::ifSpeed"
</Data>
<Data "temperature">
Type "temperature"
Table false
Instance "device"
Scale 0.1
Values "MIKROTIK-MIB::mtxrHlTemperature.0"
</Data>
<Data "processorTemperature">
Type "temperature"
Table false
Instance "processor"
Scale 0.1
Values "MIKROTIK-MIB::mtxrHlProcessorTemperature.0"
</Data>
<Data "fanspeed">
Type "fanspeed"
Table false
Type "fanspeed"
Table false
Instance "fan_speed"
Values "MIKROTIK-MIB::mtxrHlFanSpeed1.0"
</Data>
<Host "best_server_ever">
Address 127.0.0.1
Version 2
Community "public"
Collect "if_speed" "temperature" "processorTemperature" "fanspeed"
Interval 120
Timeout 10
Retries 1
</Host>
<Host "smallest_server_ever">
Address 127.0.0.1
Version 2
Community "public"
Collect "if-speed" "temperature" "processorTemperature" "fanspeed"
Interval 120
Timeout 10
Retries 1
</Host>
</Plugin>
错误发生在第 19 行,这是我使用替代 MIB 的行,MIB 位于 /usr/share/snmp/mibs/
,我以前使用过。
Selinux 当前处于宽容模式,因此这不是问题的原因。此外,MIB 的文件权限与所有其他 MIB 的文件权限相同。
好吧,忘记了 snmp 配置文件顶部的结束大于号。到目前为止,这不是我最明智的举动...
请注意 给遇到此错误的每个人:
几乎总是发生此错误,这是一个简单的 typo/syntax 错误,并不总是发生在提到的行上。大多数情况下,它出现在上述文件的前几行中。
有很多类似我的问题,但我找不到适合我的解决方案。
我目前正在 CentOS 7 机器上使用 collectd 5.8 版。
由于配置文件中的错误,collectd.service 将无法启动。配置文件位于 /etc/collectd.d/snmp.conf
中,并从 collectd.conf
文件中正确调用。我的错误如下:
Mar 30 01:16:24 localhost.localdomain collectd[18779]: Parse error in file `/etc/collectd.d/snmp.conf', line 19 near `<newline>': syntax error, unexpected EOL
Mar 30 01:16:24 localhost.localdomain collectd[18779]: yyparse returned error #1
Mar 30 01:16:24 localhost.localdomain collectd[18779]: configfile: Cannot read file `/etc/collectd.d/snmp.conf'.
Mar 30 01:16:24 localhost.localdomain collectd[18779]: Unable to read config file /etc/collectd.conf.
Mar 30 01:16:24 localhost.localdomain collectd[18779]: Error: Reading the config file failed!
Mar 30 01:16:24 localhost.localdomain collectd[18779]: Read the logs for details.
Mar 30 01:16:24 localhost.localdomain systemd[1]: collectd.service: main process exited, code=exited, status=1/FAILURE
Mar 30 01:16:24 localhost.localdomain systemd[1]: Failed to start Collectd statistics daemon.
我在我的代码中找不到任何异常的地方,也许你们能找到问题所在。
我的snmp.conf文件,发生错误的地方如下:
<Plugin snmp
<Data "if_octets">
Type "if_octets"
Table true
Instance "IF-MIB::ifDescr"
Values "IF-MIB::ifOutOctets" "IF-MIB::ifInOctets"
</Data>
<Data "if_speed">
Type "bitrate"
Table true
Instance "IF-MIB::ifDescr"
Values "IF-MIB::ifSpeed"
</Data>
<Data "temperature">
Type "temperature"
Table false
Instance "device"
Scale 0.1
Values "MIKROTIK-MIB::mtxrHlTemperature.0"
</Data>
<Data "processorTemperature">
Type "temperature"
Table false
Instance "processor"
Scale 0.1
Values "MIKROTIK-MIB::mtxrHlProcessorTemperature.0"
</Data>
<Data "fanspeed">
Type "fanspeed"
Table false
Type "fanspeed"
Table false
Instance "fan_speed"
Values "MIKROTIK-MIB::mtxrHlFanSpeed1.0"
</Data>
<Host "best_server_ever">
Address 127.0.0.1
Version 2
Community "public"
Collect "if_speed" "temperature" "processorTemperature" "fanspeed"
Interval 120
Timeout 10
Retries 1
</Host>
<Host "smallest_server_ever">
Address 127.0.0.1
Version 2
Community "public"
Collect "if-speed" "temperature" "processorTemperature" "fanspeed"
Interval 120
Timeout 10
Retries 1
</Host>
</Plugin>
错误发生在第 19 行,这是我使用替代 MIB 的行,MIB 位于 /usr/share/snmp/mibs/
,我以前使用过。
Selinux 当前处于宽容模式,因此这不是问题的原因。此外,MIB 的文件权限与所有其他 MIB 的文件权限相同。
好吧,忘记了 snmp 配置文件顶部的结束大于号。到目前为止,这不是我最明智的举动...
请注意 给遇到此错误的每个人: 几乎总是发生此错误,这是一个简单的 typo/syntax 错误,并不总是发生在提到的行上。大多数情况下,它出现在上述文件的前几行中。