Troubleshooting errors during the RRD conversion
During the conversion of pnp4nagios files to the Round Robin Database (RRD) format, you may face these errors.
LAST TESTED ON CHECKMK 2.4.0P1
Note (as of version 2.4):
Per Werk #17387: "cmk --convert-rrds" deprecated,
The cmk --convert-rrds command has been moved to a new standalone executable: cmk-convert-rrds.
You can use cmk-convert-rrds ARGS as a direct drop-in replacement for cmk --convert-rrds ARGS.
'NoneType' object has no attribute 'text'
OMD[mysite]:~$ cmk -v --convert-rrds --delete-rrds RRD8040
RRD8040:
HOST: RRD8040
ERROR: 'NoneType' object has no attribute 'text'
How to debug
Let's modify the command to receive more debug output:
OMD[mysite]:~$ cmk -vv --debug --convert-rrds --delete-rrds RRD8040
RRD8040:
Traceback (most recent call last):
File "/omd/sites/rrd/bin/cmk", line 94, in <module>
exit_status = modes.call(mode_name, mode_args, opts, args)
File "/omd/sites/rrd/lib/python/cmk_base/modes/__init__.py", line 72, in call
return mode.handler_function(*handler_args)
File "/omd/sites/rrd/lib/python/cmk_base/modes/cee.py", line 147, in mode_convert_rrds
rrd.do_convert_rrds(*args)
File "/omd/sites/rrd/lib/python/cmk_base/cee/rrd.py", line 413, in do_convert_rrds
convert_rrds_of_host(hostname)
File "/omd/sites/rrd/lib/python/cmk_base/cee/rrd.py", line 420, in convert_rrds_of_host
existing_rrds = find_host_rrd_services(hostname)
File "/omd/sites/rrd/lib/python/cmk_base/cee/rrd.py", line 711, in find_host_rrd_services
for service in find_pnp_rrds(hostname):
File "/omd/sites/rrd/lib/python/cmk_base/cee/rrd.py", line 728, in find_pnp_rrds
xmlinfo = parse_pnp_xml_file(host_dir + "/" + xml_file)
File "/omd/sites/rrd/lib/python/cmk_base/cee/rrd.py", line 769, in parse_pnp_xml_file
'host': root.find('NAGIOS_AUTH_HOSTNAME').text,
AttributeError: 'NoneType' object has no attribute 'text'It looks like we have some xml files without "NAGIOS_AUTH_HOSTNAME"
To find the corrupted files, you can grep for "NAGIOS_AUTH_HOSTNAME", save the result to a list and compare this list with all xml files
OMD[mysite]:~$ find ~/var/pnp4nagios/perfdata -name "*.xml" | while read xmlfile; do grep "NAGIOS_AUTH_HOSTNAME" $xmlfile >/dev/null || ls $xmlfile; done
/omd/sites/mysite/var/pnp4nagios/perfdata/DB-P02/CPU_utilization.xml
/omd/sites/mysite/var/pnp4nagios/perfdata/DB-P02/Interface_1.xml
/omd/sites/mysite/var/pnp4nagios/perfdata/DB-P-CLUSTER/MSSQL_SQLServer_Locks_Key_Locks.xml
/omd/sites/mysite/var/pnp4nagios/perfdata/DB-P-CLUSTER/MSSQL_SQLServer_Locks_Extent_Locks.xml
/omd/sites/mysite/var/pnp4nagios/perfdata/DB-P-CLUSTER/MSSQL_SQLServer__Total_Transactions.xml
/omd/sites/mysite/var/pnp4nagios/perfdata/DB-P-CLUSTER/MSSQL_SQLServer_Locks__Total_Locks.xml
/omd/sites/mysite/var/pnp4nagios/perfdata/PROXY/Disk_IO_SUMMARY.xml
/omd/sites/mysite/var/pnp4nagios/perfdata/PROXY/CPU_utilization.xml
/omd/sites/mysite/var/pnp4nagios/perfdata/WINDC/Memory_and_pagefile.xml
/omd/sites/mysite/var/pnp4nagios/perfdata/WINDC/Filesystem_E__.xml
OMD[mysite]:~$
If I check each of these files, the files look really different. So either the files are corrupt, or they are not in the right format:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rrd SYSTEM "http://oss.oetiker.ch/rrdtool/rrdtool.dtd">
<!-- Round Robin Database Dump -->
<rrd>
<version>0003</version>
<step>60</step> <!-- Seconds -->
<lastupdate>1497008778</lastupdate> <!-- 2017-06-09 13:46:18 CEST -->
<ds>
<name> 1 </name>
<type> GAUGE </type>
<minimal_heartbeat>8460</minimal_heartbeat>
<min>NaN</min>
<max>NaN</max>
<!-- PDP Status -->
<last_ds>5694.328125</last_ds>
<value>1.0249790625e+05</value>
<unknown_sec> 0 </unknown_sec>
</ds>
<!-- Round Robin Archives -->
<rra>
<cf>AVERAGE</cf>
<pdp_per_row>1</pdp_per_row> <!-- 60 seconds -->
<params>
<xff>5.0000000000e-01</xff>
</params>
<cdp_prep>
<ds>
<primary_value>5.6943281250e+03</primary_value>
<secondary_value>5.6943281250e+03</secondary_value>
<value>NaN</value>
<unknown_datapoints>0</unknown_datapoints>
</ds>
</cdp_prep>
<database>
<!-- 2017-06-07 13:47:00 CEST / 1496836020 --> <row><v>5.6934375000e+03</v></row>
<!-- 2017-06-07 13:48:00 CEST / 1496836080 --> <row><v>5.6934375000e+03</v></row>
<!-- 2017-06-07 13:49:00 CEST / 1496836140 --> <row><v>5.6934375000e+03</v></row>
<!-- 2017-06-07 13:50:00 CEST / 1496836200 --> <row><v>5.6934375000e+03</v></row>
<!-- 2017-06-07 13:51:00 CEST / 1496836260 --> <row><v>5.6934375000e+03</v></row>
<!-- 2017-06-07 13:52:00 CEST / 1496836320 --> <row><v>5.6934375000eProbably, the filesystem ran full during the conversion. The only solution is to delete these files and run the conversion again!
'ASCII' codec can't decode characters
OMD[mysite]:~$ cmk --convert-rrds localhost
Traceback (most recent call last):
File "/omd/sites/rrd/bin/cmk", line 94, in <module>
exit_status = modes.call(mode_name, mode_args, opts, args)
File "/omd/sites/rrd/lib/python/cmk_base/modes/__init__.py", line 72, in call
return mode.handler_function(*handler_args)
File "/omd/sites/rrd/lib/python/cmk_base/modes/cee.py", line 147, in mode_convert_rrds
rrd.do_convert_rrds(*args)
File "/omd/sites/rrd/lib/python/cmk_base/cee/rrd.py", line 413, in do_convert_rrds
convert_rrds_of_host(hostname)
File "/omd/sites/rrd/lib/python/cmk_base/cee/rrd.py", line 428, in convert_rrds_of_host
console.error(" %sERROR: %s%s\n" % (tty.red + tty.bold, e, tty.normal))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 70-75: ordinal not in range(128)
How to debug
Let's modify the command to receive more debug output:
OMD[mysite]:~$ cmk -vv --debug --convert-rrds localhost
...
Urlaubstüüüüüüge (PNP)...
- Metric1..Traceback (most recent call last):
File "/omd/sites/rrd/bin/cmk", line 94, in <module>
exit_status = modes.call(mode_name, mode_args, opts, args)
File "/omd/sites/rrd/lib/python/cmk_base/modes/__init__.py", line 72, in call
return mode.handler_function(*handler_args)
File "/omd/sites/rrd/lib/python/cmk_base/modes/cee.py", line 147, in mode_convert_rrds
rrd.do_convert_rrds(*args)
File "/omd/sites/rrd/lib/python/cmk_base/cee/rrd.py", line 413, in do_convert_rrds
convert_rrds_of_host(hostname)
File "/omd/sites/rrd/lib/python/cmk_base/cee/rrd.py", line 422, in convert_rrds_of_host
convert_pnp_rrds(hostname, existing_rrds)
File "/omd/sites/rrd/lib/python/cmk_base/cee/rrd.py", line 441, in convert_pnp_rrds
cmk.utils.pnp_cleanup(servicedesc), target_rrdconf)
File "/omd/sites/rrd/lib/python/cmk_base/cee/rrd.py", line 472, in convert_pnp_rrds_of
result = convert_pnp_rrd(old_rrd_path, new_rrd_path, old_ds_name, rrdconf)
File "/omd/sites/rrd/lib/python/cmk_base/cee/rrd.py", line 497, in convert_pnp_rrd
old_rrdconf = get_old_rrd_config(old_rrd_path, old_ds_name)
File "/omd/sites/rrd/lib/python/cmk_base/cee/rrd.py", line 789, in get_old_rrd_config
old_config_raw = rrdtool.info([rrd_file_path])
TypeError: Element 0 in argument 0 must be strAnd here we go: The issue is the "ü" characters in the service name. This only affects Checkmk 1.6. With Checkmk >2.0 we changed the behavior of non-ASCII Services names (Werk #13711)
Solutions
If it's related to a built-in Check, please open a ticket via the customer portal
If it's a customization, you need to change the service description of the service, do a rediscovery, and move the old pnp4nagios files to the new ones
'NoneType' object has no attribute 'replace'
OMD[mysite]:~$ cmk -v --convert-rrds RRD-a
fr010-n001:
...
...
...
STP Topology Changes (PNP)...
HOST: RRD-a
ERROR: 'NoneType' object has no attribute 'replace'
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 5, column 91
OMD[mysite]:~$ cmk --debug -vv --convert-rrds RRD-a
RRD-a:
Traceback (most recent call last):
File "/omd/sites/cmk/bin/cmk", line 94, in <module>
exit_status = modes.call(mode_name, mode_args, opts, args)
File "/omd/sites/cmk/lib/python/cmk_base/modes/__init__.py", line 72, in call
return mode.handler_function(*handler_args)
File "/omd/sites/cmk/lib/python/cmk_base/modes/cee.py", line 147, in mode_convert_rrds
rrd.do_convert_rrds(*args)
File "/omd/sites/cmk/lib/python/cmk_base/cee/rrd.py", line 413, in do_convert_rrds
convert_rrds_of_host(hostname)
File "/omd/sites/cmk/lib/python/cmk_base/cee/rrd.py", line 420, in convert_rrds_of_host
existing_rrds = find_host_rrd_services(hostname)
File "/omd/sites/cmk/lib/python/cmk_base/cee/rrd.py", line 711, in find_host_rrd_services
for service in find_pnp_rrds(hostname):
File "/omd/sites/cmk/lib/python/cmk_base/cee/rrd.py", line 729, in find_pnp_rrds
xmlinfo = parse_pnp_xml_file(host_dir + "/" + xml_file)
File "/omd/sites/cmk/lib/python/cmk_base/cee/rrd.py", line 760, in parse_pnp_xml_file
root = ET.parse(xml_path).getroot()
File "/omd/sites/cmk/lib/python2.7/xml/etree/ElementTree.py", line 1182, in parse
tree.parse(source, parser)
File "/omd/sites/cmk/lib/python2.7/xml/etree/ElementTree.py", line 656, in parse
parser.feed(data)
File "/omd/sites/cmk/lib/python2.7/xml/etree/ElementTree.py", line 1659, in feed
self._raiseerror(v)
File "/omd/sites/cmk/lib/python2.7/xml/etree/ElementTree.py", line 1523, in _raiseerror
raise err
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 5, column 91
How to debug
root@linux~$ vi /omd/sites/cmk/lib/python/cmk_base/cee/rrd.pyOMD[mysite]:~$ cmk --debug -vv --convert-rrds RRD-a
RRD-a:
CPU_utilization.xml
Check_MK.xml
Disk_IO_SUMMARY.xml
DotNet_Memory_Management__Global_.xml
Interface_1.xml
Interface_2.xml
Interface_3.xml
Interface_vmxnet3_Ethernet_Adapter.xml
MSSQLSERVER_SMS_Siemag_Backup.xml
MSSQLSERVER_SMS_Siemag_Sizes.xml
MSSQLSERVER_Translate_Artikel_Backup.xml
MSSQLSERVER_Translate_Artikel_Sizes.xml
MSSQLSERVER_Translate_Nestl�_Backup.xml
Traceback (most recent call last):
File "/omd/sites/cmk/bin/cmk", line 94, in <module>
exit_status = modes.call(mode_name, mode_args, opts, args)
File "/omd/sites/cmk/lib/python/cmk_base/modes/__init__.py", line 72, in call
return mode.handler_function(*handler_args)
File "/omd/sites/cmk/lib/python/cmk_base/modes/cee.py", line 147, in mode_convert_rrds
rrd.do_convert_rrds(*args)
File "/omd/sites/cmk/lib/python/cmk_base/cee/rrd.py", line 413, in do_convert_rrds
convert_rrds_of_host(hostname)
File "/omd/sites/cmk/lib/python/cmk_base/cee/rrd.py", line 420, in convert_rrds_of_host
existing_rrds = find_host_rrd_services(hostname)
File "/omd/sites/cmk/lib/python/cmk_base/cee/rrd.py", line 711, in find_host_rrd_services
for service in find_pnp_rrds(hostname):
File "/omd/sites/cmk/lib/python/cmk_base/cee/rrd.py", line 729, in find_pnp_rrds
xmlinfo = parse_pnp_xml_file(host_dir + "/" + xml_file)
File "/omd/sites/cmk/lib/python/cmk_base/cee/rrd.py", line 760, in parse_pnp_xml_file
root = ET.parse(xml_path).getroot()
File "/omd/sites/cmk/lib/python2.7/xml/etree/ElementTree.py", line 1182, in parse
tree.parse(source, parser)
File "/omd/sites/cmk/lib/python2.7/xml/etree/ElementTree.py", line 656, in parse
parser.feed(data)
File "/omd/sites/cmk/lib/python2.7/xml/etree/ElementTree.py", line 1659, in feed
self._raiseerror(v)
File "/omd/sites/cmk/lib/python2.7/xml/etree/ElementTree.py", line 1523, in _raiseerror
raise err
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 5, column 91
xml.etree.ElementTree.ParseError: no element found: line 1, column 0
After a Checkmk update or during the execution of cmk-update-config, you may see this error:
OMD[mysite]:~$ cmk-update-config
+ "Migrating fs_used name" failed
Traceback (most recent call last):
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1700, in close
self.parser.Parse("", 1) # end of data
xml.parsers.expat.ExpatError: no element found: line 1, column 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/omd/sites/mysite/lib/python3/cmk/update_config.py", line 158, in run
step_func()
File "/omd/sites/mysite/lib/python3/cmk/update_config.py", line 199, in _update_fs_used_name
cmk.update_rrd_fs_names.update()
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 186, in update
update_service_info(config_cache, get_hostnames(config_cache))
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 176, in update_service_info
update_files(hostname, service.description, service.item, 'pnp4nagios'))
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 84, in update_files
metrics = get_metrics(filepath, source)
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 74, in get_metrics
root = ET.parse(filepath).getroot()
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1202, in parse
tree.parse(source, parser)
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 602, in parse
self._root = parser.close()
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1702, in close
self._raiseerror(v)
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1602, in _raiseerror
raise err
File "<string>", line None
xml.etree.ElementTree.ParseError: no element found: line 1, column 0
Skipping conversion of bi.mk (already done)
OMD[mysite]:~$
To get a more detailed log, please run cmk-update-config -vv --debug:
Loading autochecks from /omd/sites/mysite/var/check_mk/autochecks/MYHOST.mk
+ "Migrating fs_used name" failed
Traceback (most recent call last):
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1700, in close
self.parser.Parse("", 1) # end of data
xml.parsers.expat.ExpatError: no element found: line 1, column 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/omd/sites/mysite/lib/python3/cmk/update_config.py", line 158, in run
step_func()
File "/omd/sites/mysite/lib/python3/cmk/update_config.py", line 199, in _update_fs_used_name
cmk.update_rrd_fs_names.update()
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 186, in update
update_service_info(config_cache, get_hostnames(config_cache))
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 176, in update_service_info
update_files(hostname, service.description, service.item, 'pnp4nagios'))
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 84, in update_files
metrics = get_metrics(filepath, source)
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 74, in get_metrics
root = ET.parse(filepath).getroot()
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1202, in parse
tree.parse(source, parser)
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 602, in parse
self._root = parser.close()
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1702, in close
self._raiseerror(v)
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1602, in _raiseerror
raise err
File "<string>", line None
xml.etree.ElementTree.ParseError: no element found: line 1, column 0
Traceback (most recent call last):
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1700, in close
self.parser.Parse("", 1) # end of data
xml.parsers.expat.ExpatError: no element found: line 1, column 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/omd/sites/mysite/bin/cmk-update-config", line 12, in <module>
sys.exit(main(sys.argv[1:]))
File "/omd/sites/mysite/lib/python3/cmk/update_config.py", line 1213, in main
has_errors = UpdateConfig(logger, arguments).run()
File "/omd/sites/mysite/lib/python3/cmk/update_config.py", line 158, in run
step_func()
File "/omd/sites/mysite/lib/python3/cmk/update_config.py", line 199, in _update_fs_used_name
cmk.update_rrd_fs_names.update()
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 186, in update
update_service_info(config_cache, get_hostnames(config_cache))
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 176, in update_service_info
update_files(hostname, service.description, service.item, 'pnp4nagios'))
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 84, in update_files
metrics = get_metrics(filepath, source)
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 74, in get_metrics
root = ET.parse(filepath).getroot()
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1202, in parse
tree.parse(source, parser)
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 602, in parse
self._root = parser.close()
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1702, in close
self._raiseerror(v)
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1602, in _raiseerror
raise err
xml.etree.ElementTree.ParseError: no element found: line 1, column 0
How to debug
In the first line of the cmk-update-config -vv --debug output, there is already a hint to the corresponding host:
Loading autochecks from /omd/sites/mysite/var/check_mk/autochecks/MYHOST.mk
Please fetch that name and remove the .mk suffix. Now you have the Hostname. In my case it's MYHOST.
Now you can use xmllint to debug that:
OMD[mysite]:~$ xmllint -noout --format var/pnp4nagios/perfdata/MYHOST/*xml
var/pnp4nagios/perfdata/MYHOST/Filesystem_E__.xml:1: parser error : Document is empty
^It seems that there is one xml file with no corresponding rrd file and this xml file is also empty. Please remove that file and run cmk-update-config -vv --debug again
xml.etree.ElementTree.ParseError: unclosed token: line 114, column 0
After a Checkmk update or during the execution of cmk-update-config, you may see this error:
OMD[mysite]:~$ cmk-update-config
+ "Migrating fs_used name" failed
Traceback (most recent call last):
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1700, in close
self.parser.Parse("", 1) # end of data
xml.parsers.expat.ExpatError: unclosed token: line 114, column 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/omd/sites/mysite/lib/python3/cmk/update_config.py", line 158, in run
step_func()
File "/omd/sites/mysite/lib/python3/cmk/update_config.py", line 199, in _update_fs_used_name
cmk.update_rrd_fs_names.update()
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 186, in update
update_service_info(config_cache, get_hostnames(config_cache))
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 176, in update_service_info
update_files(hostname, service.description, service.item, 'pnp4nagios'))
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 84, in update_files
metrics = get_metrics(filepath, source)
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 74, in get_metrics
root = ET.parse(filepath).getroot()
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1202, in parse
tree.parse(source, parser)
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 602, in parse
self._root = parser.close()
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1702, in close
self._raiseerror(v)
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1602, in _raiseerror
raise err
File "<string>", line None
xml.etree.ElementTree.ParseError: unclosed token: line 114, column 0
Skipping conversion of bi.mk (already done)
To get a more detailed log, please run cmk-update-config -vv --debug:
Loading autochecks from /omd/sites/mysite/var/check_mk/autochecks/MYHOST.mk
+ "Migrating fs_used name" failed
Traceback (most recent call last):
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1700, in close
self.parser.Parse("", 1) # end of data
xml.parsers.expat.ExpatError: unclosed token: line 114, column 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/omd/sites/mysite/lib/python3/cmk/update_config.py", line 158, in run
step_func()
File "/omd/sites/mysite/lib/python3/cmk/update_config.py", line 199, in _update_fs_used_name
cmk.update_rrd_fs_names.update()
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 186, in update
update_service_info(config_cache, get_hostnames(config_cache))
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 176, in update_service_info
update_files(hostname, service.description, service.item, 'pnp4nagios'))
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 84, in update_files
metrics = get_metrics(filepath, source)
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 74, in get_metrics
root = ET.parse(filepath).getroot()
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1202, in parse
tree.parse(source, parser)
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 602, in parse
self._root = parser.close()
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1702, in close
self._raiseerror(v)
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1602, in _raiseerror
raise err
File "<string>", line None
xml.etree.ElementTree.ParseError: unclosed token: line 114, column 0
Traceback (most recent call last):
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1700, in close
self.parser.Parse("", 1) # end of data
xml.parsers.expat.ExpatError: unclosed token: line 114, column 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/omd/sites/mysite/bin/cmk-update-config", line 12, in <module>
sys.exit(main(sys.argv[1:]))
File "/omd/sites/mysite/lib/python3/cmk/update_config.py", line 1213, in main
has_errors = UpdateConfig(logger, arguments).run()
File "/omd/sites/mysite/lib/python3/cmk/update_config.py", line 158, in run
step_func()
File "/omd/sites/mysite/lib/python3/cmk/update_config.py", line 199, in _update_fs_used_name
cmk.update_rrd_fs_names.update()
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 186, in update
update_service_info(config_cache, get_hostnames(config_cache))
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 176, in update_service_info
update_files(hostname, service.description, service.item, 'pnp4nagios'))
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 84, in update_files
metrics = get_metrics(filepath, source)
File "/omd/sites/mysite/lib/python3/cmk/update_rrd_fs_names.py", line 74, in get_metrics
root = ET.parse(filepath).getroot()
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1202, in parse
tree.parse(source, parser)
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 602, in parse
self._root = parser.close()
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1702, in close
self._raiseerror(v)
File "/omd/sites/mysite/lib/python3.8/xml/etree/ElementTree.py", line 1602, in _raiseerror
raise err
xml.etree.ElementTree.ParseError: unclosed token: line 114, column 0
OMD[mysite]:~$
How to debug
In the first line of the cmk-update-config -vv --debug output, there is already a hint to the corresponding host:
Loading autochecks from /omd/sites/mysite/var/check_mk/autochecks/MYHOST.mkPlease fetch that name and remove the .mk suffix. Now you have the Hostname. In my case, it's MYHOST.
Now you can use xmllint to debug that:
OMD[mysite]:~$ xmllint -noout --format var/pnp4nagios/perfdata/MYHOST/*xml
var/pnp4nagios/perfdata/MYHOST/Filesystem_F__.xml:114: parser error : expected '>'
</NIt seems like the problem is in row 114 with a missing '>'. Let's check the xml file.
OMD[mysite]:sed -n '2p; 114p' var/pnp4nagios/perfdata/MYHOST/Filesystem_F__.xml
<NAGIOS>
</NAnd here we go. Row 114 seems to be incomplete.
Please add "</NAGIOS>" and save the file.
The file should now look like this:
OMD[mysite]:~$ sed -n '2p; 114p' var/pnp4nagios/perfdata/MYHOST/Filesystem_F__.xml
<NAGIOS>
</NAGIOS>If you now run cmk-update-config -vv --debug again, there should be no error