Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 29 Next »

During the conversion of pnp4nagios files to the rrd format, you may face these errors.


'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.6934375000e

Probably, 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[rrd]:~$ 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 str

And here we go: The issue are 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 builtin 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
  • The easiest way is to con

'NoneType' object has no attribute 'replace'

OMD[cmk]:~$ 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[cmk]:~$ 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

vi /omd/sites/cmk/lib/python/cmk_base/cee/rrd.py


OMD[cmk]:~$ 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 correpsonding 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.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_F__.xml:114: parser error : expected '>'
</N
   ^

It seems like the problem is in row 114 with a missing '>'. Lets check the xml file

OMD[mysite]:sed -n '2p; 114p' var/pnp4nagios/perfdata/MYHOST/Filesystem_F__.xml 
<NAGIOS>
</N

And here we go. Row 114 seems to be uncomplete.
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

  • No labels