В чем причина collectd - snmp.conf: синтаксическая ошибка, неожиданный EOL. Начиная с использования новой MIB

Есть много проблем, похожих на мою, но я не могу найти правильные решения для своей.

В настоящее время я работаю над машиной 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.


person Derango    schedule 02.04.2019    source источник


Ответы (1)


Хорошо, забыл закрывающий знак «больше» в верхней части файла конфигурации snmp. Пока это был не самый умный мой ход...

Примечание для всех, кто сталкивается с этой ошибкой: Почти всегда эта ошибка возникает из-за простой опечатки/синтаксической ошибки и не всегда возникает в указанной строке. Чаще всего это происходит в одной из предыдущих строк упомянутого файла.

person Derango    schedule 02.04.2019
comment
Хороший редактор xml с проверкой синтаксиса помогает предотвратить подобные проблемы. - person LMC; 03.04.2019