itproject
Goto Top

Nagios Plugin Perl Fehler check mssql health

Hallo zusammen,

möchte meinen MSSQL Server mit check_mssql_health überwachen. Ziel ist es anzahl der verbundenen User zu überwachen.

Habe mir das Plugin nach folgender Anleitung installiert:
http://www.r71.nl/kb/technical/294-nagios-check-vcenter-mssql-databases

Leider klappt das nicht wie ich das möchte.

Habe ein i686 - CentOS 6 mit Nagios XI.

Befehl:
[root@nagiosserver plugins-scripts]# ./check_mssql_health -hostname 192.168.1.1 -username domainname\administrator -password mypassword -port 1433 -mode connected-users -warning 35 -critical 40

Fehler:
*** stack smashing detected ***: /usr/bin/perl terminated
======= Backtrace: =========
/lib/libc.so.6(__fortify_fail+0x4d)[0x7da7ad]
/lib/libc.so.6(+0xfc75a)[0x7da75a]
/usr/lib/perl5/vendor_perl/auto/DBD/Sybase/Sybase.so(+0x181c4)[0x2f81c4]
/usr/lib/perl5/vendor_perl/auto/DBD/Sybase/Sybase.so(syb_init+0x622)[0x2ef082]
/usr/lib/perl5/vendor_perl/auto/DBD/Sybase/Sybase.so(boot_DBD__Sybase+0xa8f)[0x2e406f]
/usr/lib/perl5/CORE/libperl.so(Perl_pp_entersub+0x5cb)[0x1aca8b]
/usr/lib/perl5/CORE/libperl.so(Perl_runops_standard+0x28)[0x1aabf8]
/usr/lib/perl5/CORE/libperl.so(perl_run+0x344)[0x14c504]
/usr/bin/perl(main+0x106)[0x80489e6]
/lib/libc.so.6(__libc_start_main+0xe6)[0x6f4ce6]
/usr/bin/perl[0x8048841]


Habe meines Wissens nach das Richtige Paket schon auf dem System

[root@nagiosserver downloads]# rpm --install perl-DBD-Sybase-1.10-1.el6.rf.i686.rpm
package perl-DBD-Sybase-1.10-1.el6.rf.i686 is already installed

Hat jemand eine Idee was mit "Perl" falsch läuft, ist das Plugin vllt. nur für x64 Systeme?

Danke für die Unterstützung

MfG
Itproject

Perl Version:
This is perl, v5.10.1 (*) built for i386-linux-thread-multi

Content-Key: 194098

Url: https://administrator.de/contentid/194098

Printed on: April 25, 2024 at 16:04 o'clock

Member: Dani
Dani Nov 12, 2012 at 11:43:40 (UTC)
Goto Top
Moin,
teste doch bitte mal ob du überhaupt ohne das Script von dem Server auf den SQL-Server verbinden kannst - z.B. tsql.
Somit ist sichergestellt, dass es an der Verbindung nicht liegen kann.

Um welche MSSQL Server Version handelt es sich und welche Architektur (32Bit, 64Bit)?
Hier kannst du die neuste Pluginversion herunterladen.

Ansonsten führe den Befehl nicht mit ROOT aus sondern mit dem Benutzer unter dem Nagios läuft.


Grüße,
Dani
Member: aqui
aqui Nov 12, 2012 at 12:24:24 (UTC)
Goto Top
Sofern die MySQL Datenbank nicht auf dem gleichen System ist solltest du die Konfig Datei der MySQL /etc/my.cfg checken ob die auch auf die externe NIC gebunden ist oder nur den localhost bedient.
Das "Sybase" ist etwas verwirrend, denn einen Sybase datenbank ist keine MySQL wie du vermutlich selber weisst ?!
Mitglied: 32067
32067 Nov 12, 2012 at 12:25:39 (UTC)
Goto Top
Hallo,

ich meine das Perl-Modul alleine reicht nicht, du brauchst auch noch FreeTDS als Unterbau.

Da ist auch das tsql mit drinnen, was dani erwähnte.

Im Umkehrschluß: Wenn du tsql schon auf dem System hast, hast du auch FreeTDS. Wenn du mit tsql eine Anmeldung hinbekommst, dann liegt das Problem beim Perl-Modul, ansonsten klemmt es schon an der/den Verbindung(sdaten).
Mitglied: 32067
32067 Nov 12, 2012 at 12:29:32 (UTC)
Goto Top
Hallo,

MSSQL ist auch kein MySQL face-smile

Der Microsoft SQL Server ist historisch mit Sybase verwandt und nutzt bis heute dasselbe Protokoll, deshalb braucht man bei Verbindungen von Linux aus auf einen SQL Server dieses Modul.
Member: itproject
itproject Nov 12, 2012 at 12:48:59 (UTC)
Goto Top
Hallo,

danke für euer Feedback!

Es ist eine Microsoft SQL Datenbank, sprich MSSQL ;)

tsql habe ich bereits auf meinem Nagios server, d.h. ich kann dort mal die anmeldung testen, habe hier aber schwierigkeiten, möchte mit einem Domainuser (admin) anmelden und NICHT mit "sa"

aber domain\admin frisst er nicht und admin@domain.de auch nicht face-sad

Also scheint hier wohl der Fehler ZUNÄCHST erstmal zu liegen ^^


Befehl + Fehlermeldung
tsql -S 192.168.1.230 -p 1433 -U DOMAIN\administrator -P mypassword

locale is "en_US.UTF-8"  
locale charset is "UTF-8"  
Msg 18456, Level 14, State 1, Server SERVERNAME, Line 1
Fehler bei der Anmeldung für den Benutzer 'DOMAINNAMEadministrator'.  
Msg 20014, Level 9, State 0, Server OpenClient, Line 0
Login incorrect.
There was a problem connecting to the server

Zumindest scheint es bei TSQL nicht so einfach zu funktionieren, er interpretiert das "@" bzw das "/" nicht zur "domain/username" trennung

Grüße
Itproject
Member: Dani
Dani Nov 12, 2012 at 12:55:47 (UTC)
Goto Top
Moin,
also grundsätzlich finde ich Domänen-Benutzer für sowas nicht geeignet. Aber das ist ein anderes Thema.
Versuch es trotzdem mit dem "SA" Benutzer zuerst. Du musst sicherstellen, dass die Verbindung klappt. Danach kannst du Späßchen einbauen.

Wir reden von einer Default-Instanz von SQL-Server?! Nicht eine manuelle angelegte, z.B. SERVER\meinAwendung1 o.ä.?! Ist nämlich wichtig für den Port.


Grüß,
Dani
Mitglied: 32067
32067 Nov 13, 2012 at 09:35:33 (UTC)
Goto Top
Hallo,

laut http://freetds.schemamania.org/userguide/domains.htm musste du den Usernamen in einfache Anführtungszeichen setzen, dann sollte das klappen:

tsql -S camelot -U 'NOTTINGHAM\lancelot' -P roundtable
Member: itproject
itproject Nov 13, 2012 at 10:10:37 (UTC)
Goto Top
Hi DKrause,

also der Name wird nun korrekt interpretiert, jedoch bekomme ich immernoch keine Verbindung hin.

Der MSSQL höhrt auf den Port 1433, username + passwort sind korrekt, bekomme jedoch immernoch die Meldung:

Msg 20014, Level 9, State 0, Server OpenClient, Line 0
Login incorrect.
There was a problem connecting to the server

Hintergrund der Ganzen geschichte ist ja allerdings ein anderer ;)

Das Plugin nicht vergessen: check_mssql_health ;)

Dankeschön für Deine/Eure Hilfe !!
Member: mmheera
mmheera Nov 13, 2012 at 16:48:58 (UTC)
Goto Top
Hallo,

für perl-DBD-Sybase-1.10-1.el6.rf.i686.rpm braucht man perl-5.10.1-127.el6.i686.rpm. Schau mal bitte auf der folgenden Seite in der "Requires" Abschnitt:

http://pkgs.org/centos-6-rhel-6/repoforge-i386/perl-DBD-Sybase-1.10-1.e ...

Du brauchst freetds auch richtig zu konfigurieren:

http://freetds.schemamania.org/

Um zu überprüfen, welche Version du hast:

http://www.question-defense.com/2008/11/28/how-to-verify-a-centos-linux ....


Grüße.
Member: Dani
Dani Nov 13, 2012 at 17:39:48 (UTC)
Goto Top
Moin,
das Plugin in allen Ehren, aber solange der TSQL Login nicht funktioniert, such erstmal den Fehler. Denn nicht das der Fehler im Plugin durch den fehlerhaften Login hervorgerufen wird.
Versuch doch einen Telnet auf server01 1433? Geht das?


Grüße,
Dani
Member: itproject
itproject Nov 14, 2012 at 13:41:14 (UTC)
Goto Top
Hi,

@ Dani Telnet auf 1433 funktioniert einwandfrei!
--> Du hast recht, der Login sollte eigentlich schon klappen, der Server höhrt auf 1433, username + pass ist richtig und wird durch setzen von ' auch richtig interpretiert.

Leider kann ich nicht per "sa" anmelden, hat seine Gründe ^^ jedoch hat der User DOMAIN\administrator alle access rights auf die Maschine, kann mich auch mit dem Management Tool perfekt anmelden.


@ mmheera, vielen Dank!

Habe alle Pakete drauf, ist ein
 i686 i686 i386 GNU/Linux 
habe demnach auch die 686ger Pakete installiert.


Danke für Eure Mühe und Zeit ;)
Grüße
Itproject
Member: Dani
Dani Dec 08, 2012 at 10:29:30 (UTC)
Goto Top
Moin,
Leider kann ich nicht per "sa" anmelden, hat seine Gründe ^^ jedoch hat der User DOMAIN\administrator alle access rights auf die Maschine, kann mich auch mit dem Management Tool perfekt anmelden.
Man nimmt sowieso keine Admin-Accounts sondern legt einen neuen Benutzer "nagios" oder "icinga" mit den notwendigen Rechten an. face-smile So haben wir das bei uns auch gelöst und hatten keinerlei Probleme. Was Probleme macht, sind Instanzen von SQL Server. Aber dazu gibts im Forum monitoring-portal.de genug Lösungen.


Grüße,
Dani