{"id":916,"date":"2014-06-05T13:29:31","date_gmt":"2014-06-05T12:29:31","guid":{"rendered":"http:\/\/www.symablog.de\/blog\/?p=916"},"modified":"2014-06-07T10:13:42","modified_gmt":"2014-06-07T09:13:42","slug":"scom-monitor-zur-ueberwachung-der-anzahl-eines-prozesses","status":"publish","type":"post","link":"https:\/\/www.symablog.de\/blog\/scom-monitor-zur-ueberwachung-der-anzahl-eines-prozesses\/","title":{"rendered":"SCOM Monitor zur \u00dcberwachung eines Prozesses"},"content":{"rendered":"<p>Hier bearbeiten wir die Thematik der \u00dcberwachung eines Prozesses.<br \/>\nEs soll ein Critical Alert erzeugt werden und der Status des Systems auf Unhealthy gesetzt werden, wenn der zu \u00fcberwachende Prozess nicht mehr l\u00e4uft.<br \/>\nEbenso ist denkbar, dass ein Prozess in einer bestimmten Anzahl auf dem gemonitorten System laufen soll, z.B.weil genau zwei Webservices laufen m\u00fcssen.<br \/>\nWir nutzen einen Script-Monitor und holen die gew\u00fcnschte Information aus dem WMI durch ein VB-Skript.<br \/>\nF\u00fcr denjenigen der einen Skript-Monitor blind einrichten kann, hier nur eine Variante eines m\u00f6glichen VB-Skriptes. Danach eine detailierte Vorgehensweise zur Einrichtung des Monitors im SCOM Authoring.<\/p>\n<p>Hier zuerst das VB-Skript am Beispiel von &#8222;notepad.exe&#8220; als zu \u00fcberwachender Prozess.<\/p>\n<pre lang=\"Vb\">'Script ProcessCounter.vbs\r\nDim oAPI, oBag, oWMI, oProcess, sProcessname\r\n\r\nsProgramname=\"notepad.exe\"\r\nSet oWMI = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\r\nSet oProcess = oWMI.ExecQuery(\"select name from win32_process where name='\" & sProgramname & \"' \")\r\nSet oWMI = Nothing\r\n\r\nSet oAPI = CreateObject(\"MOM.ScriptAPI\")\r\nSet oBag = oAPI.CreatePropertyBag()\r\n\r\nCall oBag.AddValue(\"ProcessCount\",oProcess.count)\r\nCall oBag.AddValue(\"ProcessName\",sProgramname)\r\n\r\nCall oAPI.Return(oBag)\r\n<\/pre>\n<p>Das Skript schreibt die Variablen ProcessCount und ProcessName in PropertyBag und dort kann der Monitor zugreifen.<br \/>\nProcessCount ist f\u00fcr die Anzahl der aktuell laufenden Prozesse von &#8222;notepad.exe&#8220; und ProcessName kann f\u00fcr die Message des Alerts verwendet werden.<\/p>\n<p><strong>Einrichten des Monitors im SCOM<\/strong><br \/>\na) Authoring <\/p>\n<p>b) Management Pack Objects<\/p>\n<p>c) Start des Wizzard <strong>&#8222;Create a Monitor&#8220;<\/strong><\/p>\n<p>d) Auswahl <strong>&#8222;Unit Monitor &#8230;&#8220;<\/strong><\/p>\n<p>e) Monitor Type : Scripting &#8211; Generic &#8211; <strong>Timed Script Two State Monitor<\/strong> und Auswahl eines geeigneten Management Pack oder erstellen eines neuen leeren Management Pack.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-918\" src=\"http:\/\/www.symablog.de\/blog\/wp-content\/uploads\/CreateScriptMonitor_01.jpg\" alt=\"CreateScriptMonitor_01\" width=\"448\" height=\"292\" srcset=\"https:\/\/www.symablog.de\/blog\/wp-content\/uploads\/CreateScriptMonitor_01.jpg 448w, https:\/\/www.symablog.de\/blog\/wp-content\/uploads\/CreateScriptMonitor_01-150x97.jpg 150w\" sizes=\"(max-width: 448px) 100vw, 448px\" \/><\/p>\n<p>f) General: Name &#8211; Name des Monitors<\/p>\n<p>g) Beschreibung &#8211; kurze Beschreibung was der Monitor \u00fcberwacht<\/p>\n<p>h) Monitor target &#8211; Allgemeines Ziel, wie z.B &#8222;Windows Server Operating System&#8220; oder &#8222;Computer&#8220;<\/p>\n<p>i) Parent monitor &#8211; hier w\u00e4hlen wir <strong>&#8222;Availability&#8220;<\/strong> und disablen den Monitor, da wir ihn sicher nicht auf allen angegebenen Monitor target laufen lassen wollen. Dort wo er laufen soll spezifizieren wir sp\u00e4ter \u00fcber Overrides.<\/p>\n<p>j) Schedule: Schedule l\u00e4sst mehr vermuten, aber es geht hier nur um die Angabe des Me\u00dfintervalls, z.b. 5 Minuten. Mit &#8222;Synchronize at&#8220; k\u00f6nnte man einen exakten Zeitpunkt initieren.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-919\" src=\"http:\/\/www.symablog.de\/blog\/wp-content\/uploads\/CreateScriptMonitor_02.jpg\" alt=\"CreateScriptMonitor_02\" width=\"377\" height=\"199\" srcset=\"https:\/\/www.symablog.de\/blog\/wp-content\/uploads\/CreateScriptMonitor_02.jpg 377w, https:\/\/www.symablog.de\/blog\/wp-content\/uploads\/CreateScriptMonitor_02-150x79.jpg 150w\" sizes=\"(max-width: 377px) 100vw, 377px\" \/><\/p>\n<p>k) Script: File Name &#8211; Angabe des Dateinamens unter dem das folgende VB-Skript auf den Zielsystemen gespeichert wird<br \/>\nTimeout &#8211; max. Laufzeit unseres Skriptes<br \/>\nUnd hier f\u00fcgen wir unseren Skriptcode wie oben angegeben ein. Der Skriptcode wird unter dem angegeben Dateinamen auf den Zielsystemen gespeichert und in den angegeben Me\u00dfintervallen ausgef\u00fchrt.<\/p>\n<p>l) Unhealthy Expression: Hier werden die Bedingungen f\u00fcr den &#8222;Unhealthy&#8220; Zustand definiert. In unserem Fall gilt dies, wenn die Anzahl des zu \u00fcberwachenden Prozesses gleich Null ist. Wir tragen <strong>Property[@Name=&#8217;ProcessName&#8216;] equals 0<\/strong> ein.<\/p>\n<p>m) Healthy Expression: Und hier definieren wir die &#8222;Healthy&#8220; Bedingung, z.B. soll die Anzahl unseres zu \u00fcberwachenden Prozesses gr\u00f6\u00dfer 0 sein.<br \/>\nWir tragen <strong>Property[@Name=&#8217;ProcessName&#8216;] greater than 0<\/strong> ein.<\/p>\n<p>n) Configure Health:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-920\" src=\"http:\/\/www.symablog.de\/blog\/wp-content\/uploads\/CreateScriptMonitor_03.jpg\" alt=\"CreateScriptMonitor_03\" width=\"495\" height=\"140\" srcset=\"https:\/\/www.symablog.de\/blog\/wp-content\/uploads\/CreateScriptMonitor_03.jpg 495w, https:\/\/www.symablog.de\/blog\/wp-content\/uploads\/CreateScriptMonitor_03-150x42.jpg 150w\" sizes=\"(max-width: 495px) 100vw, 495px\" \/><\/p>\n<p>o) Configure Alerts:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-921\" src=\"http:\/\/www.symablog.de\/blog\/wp-content\/uploads\/CreateScriptMonitor_04.jpg\" alt=\"CreateScriptMonitor_04\" width=\"773\" height=\"378\" srcset=\"https:\/\/www.symablog.de\/blog\/wp-content\/uploads\/CreateScriptMonitor_04.jpg 773w, https:\/\/www.symablog.de\/blog\/wp-content\/uploads\/CreateScriptMonitor_04-150x73.jpg 150w, https:\/\/www.symablog.de\/blog\/wp-content\/uploads\/CreateScriptMonitor_04-500x244.jpg 500w\" sizes=\"(max-width: 773px) 100vw, 773px\" \/><\/p>\n<p>Ein weiteres Beispiel f\u00fcr einen Messagetext (Alert Description) unter Verwendung von ProcessCount und ProcessName aus dem PropertyBag:<br \/>\n<strong>Process $Data\/Context\/Property[@Name=&#8217;ProcessName&#8216;]$ does not run! Runs $Data\/Context\/Property[@Name=&#8217;ProcessCount&#8216;]$ times.<\/strong><br \/>\nGut verwendbar, wenn z.B. mehr als ein Prozess laufen muss und nur 1 von X laufenden Prozessen bereits einen Alert ausl\u00f6st.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hier bearbeiten wir die Thematik der \u00dcberwachung eines Prozesses. Es soll ein Critical Alert erzeugt werden und der Status des Systems auf Unhealthy gesetzt werden, wenn der zu \u00fcberwachende Prozess nicht mehr l\u00e4uft. Ebenso ist denkbar, dass ein Prozess in &hellip; <a class=\"more-link\" href=\"https:\/\/www.symablog.de\/blog\/scom-monitor-zur-ueberwachung-der-anzahl-eines-prozesses\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[78,4],"tags":[163,193,161,162],"class_list":["post-916","post","type-post","status-publish","format-standard","hentry","category-praxis","category-scom","tag-process-monitoring","tag-scom","tag-scom-monitor","tag-script-monitor"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p37Rzq-eM","_links":{"self":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts\/916"}],"collection":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/comments?post=916"}],"version-history":[{"count":15,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts\/916\/revisions"}],"predecessor-version":[{"id":935,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts\/916\/revisions\/935"}],"wp:attachment":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/media?parent=916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/categories?post=916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/tags?post=916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}