netstat column and netstat.rrd with german windows
list Thomas Körfer
Hi, some time ago I started to wonder why some of my windows clients generate some netstat charts (netstat.rrd) and some not. Today I found out, that for all english windows systems the charts are fine, but for the german windows systems there is only a placeholder appearing on the netstat page. The netstat.rrd file is also missing for german windows systems. I think the test expects the english words for the counters. Is it possible to add multi language support? 90% of my hosts are german and it seems this issue is not the only language based one. b.r. T.K.
list Jeremy Laidman
▸
On 29 January 2014 02:55, Körfer, Thomas <user-806b2d0735cc@xymon.invalid> wrote:
I think the test expects the english words for the counters. Is it possible to add multi language support?
Can you show examples of the [netstat] section from both English and German windows? The code specifically looks for strings like "udpReceiveErrors" and "tcpActiveOpens". If the client data doesn't show these, then it's not going to work. The strings are hard-coded in xymond/rrd/do_netstat.c in a struct variable called "netstat_win32_markers". I would think that it's a big job to make Xymon multi-lingual with regards to input from clients. There are several places where Xymon expects certain strings in client data (not just for netstat), and for each one, there would need to be a block of strings for an array (literally) of languages. To support this, the data structures would need to be redefined. I suspect that many UNIX systems present netstat output in English, and that's what Xymon expects. I think work-arounds for language-dependent strings on the client are probably best addressed on the client. To do so probably means that the client must change the way it collects the data, so that instead of simply using the strings provided by the "netstat -s" output, it might need to get the data by the row number. Another option might be to tweak the client's Windows installation, so that the German language file cannot be found (perhaps temporarily) for the netstat command, so that it falls back to EN-US. To do so, I think you can just rename (or change permissions on) %SYSTEMROOT%\System32\de-de\netstat.exe.mui. It might be that if %SYSTEMROOT% is changed to something else, during the execution of the netstat command (eg in a batch file), then netstat will run correctly, but not find the .mui language file, and similarly fall-back to EN-US. Cheers Jeremy
list Thomas Körfer
Of Course, here is an example of an working english windows netstat page: 2014-Jan-29 08:34:01 [ALBUQUERQUE] win32 ipPacketsReceived=65817490 ipReceivedHeaderErrors=1835 ipReceivedAddressErrors=9547541 ipDatagramsForwarded=0 ipUnknownProtocolsReceived=0 ipReceivedPacketsDiscarded=319190 ipReceivedPacketsDelivered=55957246 ipOutputRequests=28346844 ipRoutingDiscards=0 ipDiscardedOutputPackets=7532 ipOutputPacketNoRoute=0 ipReassemblyRequired=0 ipReassemblySuccessful=0 ipReassemblyFailures=0 ipDatagramsSuccessfullyFragmented=0 ipDatagramsFailingFragmentation=0 ipFragmentsCreated=0 ipv6PacketsReceived=5965227 ipv6ReceivedHeaderErrors=0 ipv6ReceivedAddressErrors=0 ipv6DatagramsForwarded=0 ipv6UnknownProtocolsReceived=0 ipv6ReceivedPacketsDiscarded=249 ipv6ReceivedPacketsDelivered=5965226 ipv6OutputRequests=74141187 ipv6RoutingDiscards=0 ipv6DiscardedOutputPackets=4 ipv6OutputPacketNoRoute=2 ipv6ReassemblyRequired=0 ipv6ReassemblySuccessful=0 ipv6ReassemblyFailures=0 ipv6DatagramsSuccessfullyFragmented=0 ipv6DatagramsFailingFragmentation=0 ipv6FragmentsCreated=0 tcpActiveOpens=81899 tcpPassiveOpens=49180 tcpFailedConnectionAttempts=1260 tcpResetConnections=2886 tcpCurrentConnections=27 tcpSegmentsReceived=55058680 tcpSegmentsSent=35587178 tcpSegmentsRetransmitted=532258 tcpv6ActiveOpens=48 tcpv6PassiveOpens=79 tcpv6FailedConnectionAttempts=0 tcpv6ResetConnections=61 tcpv6CurrentConnections=0 tcpv6SegmentsReceived=5784810 tcpv6SegmentsSent=74123719 tcpv6SegmentsRetransmitted=110 udpDatagramsReceived=890509 udpNoPorts=317287 udpReceiveErrors=358 udpDatagramsSent=107044 udpv6DatagramsReceived=181456 udpv6NoPorts=243 udpv6ReceiveErrors=7 udpv6DatagramsSent=18799 And here is an example of a failing german windows netstat page: 2014-Jan-29 08:35:25 [GANGNAM] win32 EmpfangenePakete=51670686 EmpfangeneVorspannfehler=181 EmpfangeneAdressfehler=9724227 WeitergeleiteteDatagramme=0 EmpfangeneunbekannteProtokolle=0 EmpfangeneverworfenePakete=323091 EmpfangenebermitteltePakete=41627068 Ausgabeanforderungen=7232984 VerworfeneRoutingpakete=0 VerworfeneAusgabepakete=27 AusgabepaketeohneRouting=0 Reassemblierungerforderlich=0 Reassemblierungerfolgreich=0 Reassemblierungerfolglos=0 ErfolgreicheDatagrammfragmentierung=0 ErfolgloseDatagrammfragmentierung=0 ErzeugteFragmente=0 EmpfangenePakete=186529 EmpfangeneVorspannfehler=0 EmpfangeneAdressfehler=0 WeitergeleiteteDatagramme=0 EmpfangeneunbekannteProtokolle=0 EmpfangeneverworfenePakete=125 EmpfangenebermitteltePakete=187004 Ausgabeanforderungen=23684 VerworfeneRoutingpakete=0 VerworfeneAusgabepakete=2 AusgabepaketeohneRouting=2 Reassemblierungerforderlich=0 Reassemblierungerfolgreich=0 Reassemblierungerfolglos=0 ErfolgreicheDatagrammfragmentierung=0 ErfolgloseDatagrammfragmentierung=0 ErzeugteFragmente=0 Aktivge"ffnet=3713 Passivge"ffnet=47 ErfolgloseVerbindungsversuche=17 ZurckgesetzteVerbindungen=635 AktuelleVerbindungen=5 EmpfangeneSegmente=40802713 GesendeteSegmente=7320026 ErneutbertrageneSegmente=16999 Aktivge"ffnet=230 Passivge"ffnet=348 ErfolgloseVerbindungsversuche=0 ZurckgesetzteVerbindungen=2 AktuelleVerbindungen=0 EmpfangeneSegmente=8823 GesendeteSegmente=8467 ErneutbertrageneSegmente=0 EmpfangeneDatagramme=819860 KeineAnschlsse=323089 Empfangsfehler=3 GesendeteDatagramme=4924 EmpfangeneDatagramme=184690 KeineAnschlsse=125 Empfangsfehler=2 GesendeteDatagramme=19489 b.r. T.K.
▸
Von: Jeremy Laidman [mailto:user-71895fb2e44c@xymon.invalid]
Gesendet: Mittwoch, 29. Januar 2014 07:31
An: Körfer, Thomas
Cc: xymon at xymon.com<mailto:xymon at xymon.com>
Betreff: Re: [Xymon] netstat column and netstat.rrd with german windows
On 29 January 2014 02:55, Körfer, Thomas <user-806b2d0735cc@xymon.invalid<mailto:user-806b2d0735cc@xymon.invalid>> wrote:
I think the test expects the english words for the counters.
Is it possible to add multi language support?
Can you show examples of the [netstat] section from both English and German windows?
The code specifically looks for strings like "udpReceiveErrors" and "tcpActiveOpens". If the client data doesn't show these, then it's not going to work. The strings are hard-coded in xymond/rrd/do_netstat.c in a struct variable called "netstat_win32_markers".
I would think that it's a big job to make Xymon multi-lingual with regards to input from clients. There are several places where Xymon expects certain strings in client data (not just for netstat), and for each one, there would need to be a block of strings for an array (literally) of languages. To support this, the data structures would need to be redefined.
I suspect that many UNIX systems present netstat output in English, and that's what Xymon expects. I think work-arounds for language-dependent strings on the client are probably best addressed on the client. To do so probably means that the client must change the way it collects the data, so that instead of simply using the strings provided by the "netstat -s" output, it might need to get the data by the row number.
Another option might be to tweak the client's Windows installation, so that the German language file cannot be found (perhaps temporarily) for the netstat command, so that it falls back to EN-US. To do so, I think you can just rename (or change permissions on) %SYSTEMROOT%\System32\de-de\netstat.exe.mui.
It might be that if %SYSTEMROOT% is changed to something else, during the execution of the netstat command (eg in a batch file), then netstat will run correctly, but not find the .mui language file, and similarly fall-back to EN-US.
Cheers
Jeremy
list Jeremy Laidman
▸
On 29 January 2014 18:50, Körfer, Thomas <user-806b2d0735cc@xymon.invalid> wrote:
Of Course, here is an example of an working english windows netstat page:
Thanks for the screenshots. Interesting. What client do you use? J
list Thomas Körfer
I use bbwin as client: http://bbwin.sourceforge.net/
▸
b.r.
T.K.
Von: Jeremy Laidman [mailto:user-71895fb2e44c@xymon.invalid]
Gesendet: Donnerstag, 30. Januar 2014 02:26
An: Körfer, Thomas
Cc: xymon at xymon.com
Betreff: Re: [Xymon] netstat column and netstat.rrd with german windows
On 29 January 2014 18:50, Körfer, Thomas <user-806b2d0735cc@xymon.invalid<mailto:user-806b2d0735cc@xymon.invalid>> wrote:
Of Course, here is an example of an working english windows netstat page:
Thanks for the screenshots. Interesting. What client do you use?
J
list Jeremy Laidman
On 31 January 2014 00:05, Körfer, Thomas <user-806b2d0735cc@xymon.invalid> wrote:
I use bbwin as client: http://bbwin.sourceforge.net/
I had a look at the BBWin source code that runs "netstat -s" and it also
has English-specific string matches related to detecting and presenting
IPv4 vs IPv6 statistics. You might notice that the IPv4 and IPv6 metrics
are listed with the same names, so EmpfangenePakete is listed twice,
instead of once each for ipEmpfangenePakete and ipv6EmpfangenePakete,
whereas on the English version, you see ipPacketsReceived and
ipv6PacketsReceived listed separately.
For any changes to deal with non-English text to be successful, BBWin would
need to be adjusted. As it stands, BBWin effectively filters out the lines
related to IPv4/IPv6 ("IPv4 Statistics" etc) when they're not in English,
making it very difficult for Xymon to handle these cases.
Have you tried renaming the netstat.exe.mui file and see if that helps?
Perhaps BBWin could be adjusted to achieve this effect by modifying
%SYSTEMROOT% for the execution of netstat.
Cheers
Jeremy
list Glauber Ribeiro
This may be a good time to consider moving out of BBWin. BBWin seems to be barely supported; I've had problems with it consuming too much memory. There is a new experimental Powershell based client in the Xymon repository, which seems, to me, to work better than BBWin, and since it's all plain text scripts, it should be easier to customize. g
▸
From: Xymon [mailto:xymon-bounces at xymon.com] On Behalf Of Jeremy Laidman Sent: Thursday, January 30, 2014 17:23 To: Körfer, Thomas Cc: xymon at xymon.com Subject: Re: [Xymon] netstat column and netstat.rrd with german windows On 31 January 2014 00:05, Körfer, Thomas <user-806b2d0735cc@xymon.invalid<mailto:user-806b2d0735cc@xymon.invalid>> wrote: I use bbwin as client: http://bbwin.sourceforge.net/ I had a look at the BBWin source code that runs "netstat -s" and it also has English-specific string matches related to detecting and presenting IPv4 vs IPv6 statistics. You might notice that the IPv4 and IPv6 metrics are listed with the same names, so EmpfangenePakete is listed twice, instead of once each for ipEmpfangenePakete and ipv6EmpfangenePakete, whereas on the English version, you see ipPacketsReceived and ipv6PacketsReceived listed separately. For any changes to deal with non-English text to be successful, BBWin would need to be adjusted. As it stands, BBWin effectively filters out the lines related to IPv4/IPv6 ("IPv4 Statistics" etc) when they're not in English, making it very difficult for Xymon to handle these cases. Have you tried renaming the netstat.exe.mui file and see if that helps? Perhaps BBWin could be adjusted to achieve this effect by modifying %SYSTEMROOT% for the execution of netstat. Cheers Jeremy