Seite 1 von 1

Alarm bei nicht verbundener Netzwerkkarte

Verfasst: 07.04.2011, 13:25
von chrish
Hi,

kann ich einen Alarm so einrichten das er getriggert wird wenn eine VM eine disconnectete Netzwerkkarte hat?
Ich habe VM No Network Access eingerichtet, der so aber nicht funktioniert. Ich komme mit den möglichen advanced Settings nicht weiter.
Hat hier jemand Tips für mich?

Verfasst: 07.04.2011, 13:36
von Tschoergez
müsste gehen: auf dem ESX nen neuen alarm, als Typ: Event triggered, bei den Triggers als Event "Lost Network Connectivity" und in den advanced settings die vmnic auswählen...

http://communities.vmware.com/servlet/J ... Alarms.pdf

http://communities.vmware.com/message/1422158

viele grüße,
jörg

Verfasst: 07.04.2011, 13:57
von Tschoergez
danke übrigens für die Frage, jetzt bin ich doch auch endlich mal über das Alarms-Whitepaper aus dem Link oben gestolpert :grin:

Verfasst: 07.04.2011, 14:21
von chrish
Danke

das Whitepaper kannte ich. Allerdings komm ich trotzdem nicht weiter. So wie von Dir beschrieben klappt es leider nicht *grummel*

Mal weitertesten

Verfasst: 07.04.2011, 21:09
von PeterDA
Hi,
ich bin mir ziemlich sicher das so ein Alarm bei mir standardmäßig dabei war. Sprich wenn ich die Kabel aus den NICs ziehe dann kommt im vCenter eine Alarm den man sogar bestätigen muss damit er wieder ganz verschwindet. Okay bei redundant angebundenen vSwitch müssen schon alle Verbindungen ausfallen.

Gruß Peter

Verfasst: 07.04.2011, 21:47
von irix
Peter,
er meinte wenn man der VM das virtuelle Patchkabel herauszieht und nicht wenn der ESX an seiner pNIC nen Link verliert.

Gruss
Joerg

Verfasst: 08.04.2011, 09:19
von PeterDA
Moin Joerg,
ja aber das kann doch eingedlich nur dann passieren wenn ich die VM von der vSwtich trenne und mit keiner vSwtisch verbinde, bzw. wenn ich in der VM den NIC deaktiviere, bzw. bei einer vNexus den Port deaktiviere. Ein vPatchkabel gibt es doch so nicht(??)

Das wären für mich aber eigendlich alles Layer 8 Probleme bzw. PEBKAC.....

Bzw. ich würde mir dann überlegen ob ich nicht noch einen Schritt weitergehe und mit externen Tools überwache ob der auf der VM installierte Service noch läuft.

Gruß Peter

Verfasst: 08.04.2011, 10:50
von chrish
Moin zusammen,

ich versuche mal ein bisschen Licht in das ganze zu bringen.
Unserer Betriebsabteilung hat in der DMZ keine Möglichkeit die vm´s direkt zu überwachen.
Der Cluster um den es geht ist der DMZ Cluster.
Wir haben leider einen Bug in unserer Umbegung das einzelne VM´s immer mal wieder einen error (Failed to connect etehernet x device) schreiben und dabei die Netzwerkkarte disconnected wird. Das ganze ohne das ein vMotion o.ä vorausgeht.

Lt Vmware hätte das ganze in 4.1U1 gefixt sein sollen, ist es aber nicht. Daher wäre es super wenn ein Alarm kommt, sobald die Karte disconnected ist.

Verfasst: 17.05.2011, 13:59
von chrish
Nachdem das Problem doch immer wieder autritt eine Frage an CLI Gurus, kann man per Script denn abfragen ob eine NIC connected ist oder nicht?

Ich finde hierzu leider nichts.

Verfasst: 17.05.2011, 20:55
von Tschoergez
Hi!
suchst Du sowas in der art?

Code: Alles auswählen

Get-VM|Get-NetworkAdapter|Select id, ConnectionState


Grüße,
jörg

Verfasst: 18.05.2011, 09:38
von chrish
Sowas ist ein guter Ansatz, allerdings ist die Rückgabe immer die gleiche.
Egal ob connected oder disconnected.

Verfasst: 18.05.2011, 10:14
von chrish
Sodala mit etwas googlen und basteln hab ich nun das er mir auflistet welche connected sind und welche nicht

Code: Alles auswählen

Get-NetworkAdapter -VM (Get-VM | where {$_.PowerState -eq "PoweredOn"}) | `
  Select-Object @{ Name="Name"; Expression={$_.Name}},
                @{ Name="Network Label"; Expression={$_.NetworkName}},
            @{ Name="Connection Status"; Expression={$_.ConnectionState.Connected}}



Jetzt fehlt mir allerdings noch der Name der VM. Das habe ich bisher nicht hinbekommen.

Verfasst: 18.05.2011, 10:43
von Tschoergez
mit select parent beim networkadapter solltest Du wieder zurück auf den Namen der VM kommen....
get-vm vc41|get-networkadapter|select name, parent
grüße,
jörg

Verfasst: 18.05.2011, 11:13
von chrish
DANKE!
Das wars.

so klappts nun.

Code: Alles auswählen

Get-NetworkAdapter (get-vm | where {$_.powerstate -eq "poweredon"}) | where { $_.connectionstate.connected -eq "$F" } | select parent

Verfasst: 22.07.2011, 10:54
von chrish
Eine kurze Frage, ich bin da im PowerCLI nicht weitergekommen. Kann ich mir den Output auch einfach per Mail senden lassen?
Entsprechende Variablen hierzu finde ich in der PowerCLI Doku nicht?

Danke schon mal

Verfasst: 22.07.2011, 12:49
von Tschoergez
geht auch.. ich hab ein beispiel aus nem anderen Kontext, vllt. kannst Du ja was draus bauen:

Code: Alles auswählen

send-mailmessage -from "theincrediblepowercliteam@company.com" -to "info@blah.de" -subject "Snapshot report" -Body $sn.toString -smtpserver "mail.blah.de" -BAH


mit $sn als html-quelltext aus

Code: Alles auswählen

$sn= get-vm|%{get-snapshot -vm $_}|select @{N="Virtual Machine";E="vm"}, @{N="Snapshot Name";E="name"},@{N="Created at";E="created"}, size|convertto-html $_ -title "snapshot report" -head "<link rel=`"stylesheet`" type=`"text/css`" href=`"design.css`">" -body "<h2>Snapshot Report</h2>"


Viele Grüße,
Jörg

Verfasst: 22.07.2011, 13:43
von chrish
Hi Tschoergez

Cool Danke,

allerdings kommt bei mir in der Mail (auch wenn ich Dein Snapshotbeispiel verwende) nur


Code: Alles auswählen

string ToString()


als body an?

EDIT hab´s hinbekommen. Vielen Dank.

Verfasst: 07.03.2012, 15:12
von chrish
Hallo nochmal,

kann ich mit Powershell auch einen Rückwert True oder False bekommen wenn in einer Variable ein Stichwort vorkommt?
Ich habe eine Abfrage die ich in eine Variable schreibe.
Nun hätte ich gerne nur einen Rückwert True wenn ein Wort in dem Inhalt der Variable vorkommt.

Mit like contain oder match habe ich es nicht hinbekommen......

Wenn in der Variable nur ein wort steht funktioniert es aber.
Mit so eine Inhalt in der Variable aber nicht

Code: Alles auswählen

User     State
test1    Connected
test2    Connected
test3    Connected


Danke schon mal.

Verfasst: 07.03.2012, 15:37
von irix
Da uns unverstaendlich ist warum ein
if($foo.State -eq "Connected")
nicht gehen sollte die Frage warum du uns nicht deinen Code zeigst?. Wenn du schonmal dabei bist mach auch gleich einen passenden Thread auf.

Gruss
Joerg

Verfasst: 08.03.2012, 00:46
von Tschoergez
Hey, der Thread hier ist in meinen All-Time-Favorites! :grin:
Hab ich kein Problem, wenn noch mehr guter Inhalt dazukommt....
Aber Du hast natürlich recht, ein neuer Thread mit Quelltext wäre fornetechnisch zuträglicher.
Und mein Beitrag hier ohne konstriktiven Input, tststs :oops:

Verfasst: 08.03.2012, 09:21
von chrish
Hi Irix, Danke für den entscheidenden Tip.
Ich hatte mit foreach und $objItem gearbeitet und das hatte nicht funktioniert.
Mit if klappt es wunderbar.

Hier noch der Code für die Nachwelt ;)

Code: Alles auswählen

$notreg = Get-XdVirtualDesktop | where { $_.State -eq "NotRegistered"}
if($notreg)
{send-mailmessage -from "XenDesktop@domain.de" -to "name@domain.de" -subject "Achtung XenDesktop Clients Not Registered" -Body "$notreg".ToString() -smtpserver "mail1.domain.de" -BAH}