BUG: Kaspersky AV Plugin ohne Funktion nach 2.1 Update

Hallo,
Wir haben unser OMD von Version 2.0.0p24 auf Version 2.1.0 geupdatet.
Soweit funktioniert auch alles, bis auf das Kaspersky Plugin und ein paar kleinen WMI Fehlern.

Getestet wurde es mit einem 2.0pxx Agent und einem 2.1 Agent, jeweils mit der passenden Plugin-Version von Agent.
Das VBS Skript Standalone funktioniert auch. (Korrekte Daten als Textbox)
Auch der Testoutput von Agent funktioniert, aber in OMD kommen keine Daten an.

Meldung: UNKN Kaspersky AV Item not found in monitoring data

1 Like

Bei uns dasselbe. Upgrade von 2.0.0p25 auf 2.1.0p2

Hier wäre ein Blick ins Agent Log auf dem ausführenden Server hilfreich. Falls das Plugin nicht ordnungsgemäß durch läuft sollte das Log einen Fehler enthalten für die Ausführung.

PS: hab mir grad mal das Script angeschaut - das ist grausam würde mich nicht wundern wenn das nicht richtig läuft :rofl: In Powershell wären das 4-5 Zeilen

Hallo,
Hier der Output von Log:

2022-06-10 15:03:43.091 [srv ****] Received [429] bytes from 'agent_plugins'
2022-06-10 15:03:43.091 [srv ****] perf:  In [330] milliseconds process 'cscript.exe //Nologo "C:\ProgramData\checkmk\agent\plugins\kaspersky_av_client.vbs"' pid:[7364] SUCCEDED - generated [89] bytes of data in [2] blocks
2022-06-10 15:03:43.092 [srv ****] [Trace] Provider 'plugins' is about to be started, id '******' port [mail:\\.\mailslot\Global\WinAgent_0]
2022-06-10 15:03:43.092 [srv ****] [Trace] Sending data 'plugins' id is [*********] length [102]
2022-06-10 15:03:43.092 [srv ****] perf: Section 'plugins' took [0] milliseconds`Preformatted text`

PS: Wir würden dein PS Script nehmen :grinning: :grinning: :rofl:
Plugin Läuft Standalone ohne Probleme (script.exe //Nologo “C:\ProgramData\checkmk\agent\plugins\kaspersky_av_client.vbs” liefert alles was Checkmk braucht)

Interessant finde ich das er ja sagt, dass Daten gesendet wurden.
Auf CMK Seite kommt bei einem “cmk -d hostname” keine Ausgabe oder?

Das Bekomme ich als Log.

Das “cmk -d hostname” muss in der Instanz ausgeführt werden wo der Host überwacht wird.

Verstehe ich das richtig ich gehe per SSH auf dem checkmk Server Wechsel per su - … In die Seite und gebe dann
cmk -d und der Hostname von checkmk Server ein ??

Ich habe das Grade alles schon gemacht habe aber statt den Hostname die IP von Agent eingegeben (ein Server wo Kaspersky installiert ist und der Agent mit Plugin läuft)

IP sollte auch tun. Hostname ist halt eindeutiger. Damit erhälts immer den aktuellen oder zuletzt übermittelten Agent Output.

Besipiel bei uns:

Discovering services and host labels on: myHOST
myHOST:
+ FETCHING DATA
  Source: SourceType.HOST/FetcherType.TCP
[cpu_tracking] Start [7efec7c5f1c0]
[TCPFetcher] Fetch with cache settings: DefaultAgentFileCache(myHOST, base_path=/omd/sites/mySITE/tmp/check_mk/cache, max_age=MaxAge(checking=0, discovery=120, inventory=120), disabled=False, use_outdated=False, simulation=False)
Using data from cache file /omd/sites/mySITE/tmp/check_mk/cache/myHOST
Got 47004 bytes data from cache
[TCPFetcher] Use cached data
[cpu_tracking] Stop [7efec7c5f1c0 - Snapshot(process=posix.times_result(user=0.0, system=0.0, children_user=0.0, children_system=0.0, elapsed=0.0))]
  Source: SourceType.HOST/FetcherType.PIGGYBACK
[cpu_tracking] Start [7efec7c5f130]
[PiggybackFetcher] Fetch with cache settings: NoCache(myHOST, base_path=/omd/sites/mySITE/tmp/check_mk/data_source_cache/piggyback, max_age=MaxAge(checking=0, discovery=120, inventory=120), disabled=True, use_outdated=False, simulation=False)
Not using cache (Cache usage disabled)
[PiggybackFetcher] Execute data source
No piggyback files for 'myHOST'. Skip processing.
No piggyback files for 'myHOST.mySITE.local'. Skip processing.
Not using cache (Cache usage disabled)
[cpu_tracking] Stop [7efec7c5f130 - Snapshot(process=posix.times_result(user=0.0, system=0.0, children_user=0.0, children_system=0.0, elapsed=0.0))]
+ PARSE FETCHER RESULTS
  Source: SourceType.HOST/FetcherType.TCP
<<<check_mk>>> / Transition NOOPParser -> HostSectionParser
<<<cmk_agent_ctl_status:sep(0)>>> / Transition HostSectionParser -> HostSectionParser
<<<wmi_cpuload:sep(124)>>> / Transition HostSectionParser -> HostSectionParser
<<<uptime>>> / Transition HostSectionParser -> HostSectionParser
<<<mem>>> / Transition HostSectionParser -> HostSectionParser
<<<fileinfo:sep(124)>>> / Transition HostSectionParser -> HostSectionParser
<<<winperf_phydisk>>> / Transition HostSectionParser -> HostSectionParser
<<<winperf_if>>> / Transition HostSectionParser -> HostSectionParser
<<<winperf_processor>>> / Transition HostSectionParser -> HostSectionParser
<<<df:sep(9)>>> / Transition HostSectionParser -> HostSectionParser
<<<logwatch>>> / Transition HostSectionParser -> HostSectionParser
<<<services>>> / Transition HostSectionParser -> HostSectionParser
<<<dotnet_clrmemory:sep(124)>>> / Transition HostSectionParser -> HostSectionParser
<<<ps:sep(9)>>> / Transition HostSectionParser -> HostSectionParser
Transition HostSectionParser -> NOOPParser
<<<kaspersky_av_client>>> / Transition NOOPParser -> HostSectionParser
<<<windows_updates>>> / Transition HostSectionParser -> HostSectionParser
Transition HostSectionParser -> NOOPParser
<<<systemtime>>> / Transition NOOPParser -> HostSectionParser
Trying to acquire lock on /omd/sites/mySITE/var/check_mk/persisted/myHOST
Got lock on /omd/sites/mySITE/var/check_mk/persisted/myHOST
Releasing lock on /omd/sites/mySITE/var/check_mk/persisted/myHOST
Released lock on /omd/sites/mySITE/var/check_mk/persisted/myHOST
Stored persisted sections: win_cpuinfo, win_os, win_bios, win_system, win_computersystem, win_disks, win_video, win_networkadapter, win_ip_r, win_wmi_software, win_wmi_updates, win_reg_uninstall, win_exefiles
Using persisted section SectionName('win_cpuinfo')
Using persisted section SectionName('win_os')
Using persisted section SectionName('win_bios')
Using persisted section SectionName('win_system')
Using persisted section SectionName('win_computersystem')
Using persisted section SectionName('win_disks')
Using persisted section SectionName('win_video')
Using persisted section SectionName('win_networkadapter')
Using persisted section SectionName('win_ip_r')
Using persisted section SectionName('win_wmi_software')
Using persisted section SectionName('win_wmi_updates')
Using persisted section SectionName('win_reg_uninstall')
Using persisted section SectionName('win_exefiles')
  -> Add sections: ['check_mk', 'cmk_agent_ctl_status', 'df', 'dotnet_clrmemory', 'fileinfo', 'kaspersky_av_client', 'logwatch', 'mem', 'ps', 'services', 'systemtime', 'uptime', 'win_bios', 'win_computersystem', 'win_cpuinfo', 'win_disks', 'win_exefiles', 'win_ip_r', 'win_networkadapter', 'win_os', 'win_reg_uninstall', 'win_system', 'win_video', 'win_wmi_software', 'win_wmi_updates', 'windows_updates', 'winperf_if', 'winperf_phydisk', 'winperf_processor', 'wmi_cpuload']
  Source: SourceType.HOST/FetcherType.PIGGYBACK
No persisted sections
  -> Add sections: []
Received no piggyback data
Received no piggyback data
+ ANALYSE DISCOVERED HOST LABELS
Trying host label discovery with: check_mk, cmk_agent_ctl_status, df, dotnet_clrmemory, fileinfo, kaspersky_av_client, logwatch, mem, ps, services, systemtime, uptime, win_bios, win_computersystem, win_cpuinfo, win_disks, win_exefiles, win_ip_r, win_networkadapter, win_os, win_reg_uninstall, win_system, win_video, win_wmi_software, win_wmi_updates, windows_updates, winperf_if, winperf_phydisk, winperf_processor, wmi_cpuload
  cmk/os_family: windows (check_mk)
Trying host label discovery with:
Trying to acquire lock on /omd/sites/mySITE/var/check_mk/discovered_host_labels/myHOST.mk
Got lock on /omd/sites/mySITE/var/check_mk/discovered_host_labels/myHOST.mk
Releasing lock on /omd/sites/mySITE/var/check_mk/discovered_host_labels/myHOST.mk
Released lock on /omd/sites/mySITE/var/check_mk/discovered_host_labels/myHOST.mk
SUCCESS - Found 1 host labels
+ ANALYSE DISCOVERED SERVICES
+ EXECUTING DISCOVERY PLUGINS (29)
  Trying discovery with: services_summary, mem_vmalloc, systemtime, mssql_datafiles, fileinfo, check_mk_only_from, logwatch, mssql_transactionlogs, mem_win, domino_tasks, docker_container_status_uptime, winperf_phydisk, services, wmi_cpuload, fileinfo_groups, windows_updates, dotnet_clrmemory, winperf_processor_util, uptime, logwatch_ec_single, checkmk_agent, kaspersky_av_client, ps, winperf_if, df, esx_vsphere_hostsystem_cpu_usage, logwatch_groups, logwatch_ec, mem_linux
  1 checkmk_agent
  1 df
  1 dotnet_clrmemory
  1 kaspersky_av_client
 11 logwatch
  1 mem_win
  1 services_summary
  1 systemtime
  1 uptime
  1 windows_updates
  2 winperf_if
  1 winperf_phydisk
  1 winperf_processor_util
  1 wmi_cpuload
SUCCESS - Found 25 services

Das ist der Output, den ich bekomme, also verkürzt.
Die Daten kommen an, also kann das Problem nicht der Agent oder ein Plugin sein, sondern der Checkmk Server.

................
<<<>>>
<<<kaspersky_av_client>>>
Signatures 13.06.2022 12:19:00
Fullscan 09.06.2022 13:19:27
<<<>>>
<<<local:sep(0)>>>
0 WindowsBackup - Success, last backup at Success 12.06.2022 22:06
<<<systemtime>>>
1655132670
..........................

Fehler gefunden und wieder einmal zeigt sich wie sinnlos Unit Tests für Checks sind wenn diese nicht mit richtigen Daten gefahren werden.
Die Werte für das Age sind nach dem Parsen Floats und keine Integers wie im Check angenommen wird.

Quick Workaround ~/lib/check_mk/base/plugins/agent_based/kaspersky_av_client.py
In das dazugehörige Local Verzeichnis kopieren. Und Zeile 88 anpassen wie folgt.

        elif isinstance(age, float):  # needed to make mypy happy

dort wo float steht war vorher nen int

Hallo,
Das hat das Problem behoben Tausend Dank !!
Kann man das Irgendwo einrichten damit es Offiziell behoben wird ?

Hab mal nen Pull Request gemacht.

Ist übrigens in v2.1.0p4 gefixed.