{"id":433,"date":"2009-07-05T01:01:28","date_gmt":"2009-07-04T23:01:28","guid":{"rendered":"http:\/\/robert.kolatzek.org\/wblog\/?p=433"},"modified":"2009-07-05T01:01:28","modified_gmt":"2009-07-04T23:01:28","slug":"pyqwatch-meine-server-auf-einen-blick","status":"publish","type":"post","link":"https:\/\/blog.kolatzek.org\/wblog\/433\/pyqwatch-meine-server-auf-einen-blick","title":{"rendered":"PyQWatch &#8211; meine Server auf einen Blick"},"content":{"rendered":"<p>Wer f\u00fcr&#8217;s Web programmiert oder bloggt, will nicht nur gefunden, sonder auch gelesen werden. Nur wenn der Server schlapp macht, ist die ganze M\u00fche umsonst. Eine Server-\u00dcberwachung muss her. Einige VServer-Anbieter bieten dies f\u00fcr ihre Kunden gratis an. Reicht eine Email nicht, weil der Server gesch\u00e4ftskritische Aufgaben zu erledigen hat, w\u00fcnscht man schon eher eine Sofort-SMS. Das ist zwar nicht ganz so g\u00fcnstig, gibt es aber auch z.B. beim gr\u00f6\u00dften deutschen <a title=\"livewatch server monitoring\" href=\"http:\/\/www.livewatch.de\/\" target=\"_self\">Server-Monitoring-Spezialisten livewatch<\/a>.<\/p>\n<p>F\u00fcr den &#8222;kleinen Mann&#8220;, der seine drei Server ebenfalls live monitoren will und das von seinem Rechner aus muss schon Windows einsetzen (hier gibt es einige Programme, sogar gratis). Unter Linux musste man im Falle eines Webservers auf die Kosole starren, die <a title=\"Web server monitoring in Linux - httping\" href=\"http:\/\/www.vanheusden.com\/httping\/\">mit Hilfe von httping &#8222;belastbare Aussagen&#8220;<\/a> machen konnte. Ist das nix f\u00fcr Sie? F\u00fcr mich auch nicht. Deshalb habe ich wieder mal Python und Qt eingespannt. Diesmal mit einem ansehnlichen Erfolg&#8230;<\/p>\n<p><!--more-->Nat\u00fcrlich kommt man um ein so gutes Programm f\u00fcr Server\u00fcberwachung (httping) nicht wirklich drum herum. Mit Vorgaben zur Anzahl von Pings, Messung nur mit HEAD-Antwort oder auch mit HTTP-Body oder interval und timeout ist es nicht zu schlagen. Aber warum soll man es nicht im anderen Kontext nutzen? Konsole ist ja l\u00e4ngst nicht alles (auch wenn an dieser Stelle einige Slack- oder Debian-Leute gerne widersprechen).<\/p>\n<p>Was wirklich fehlt, ist eine M\u00f6glichkeit, gleichzeitig mehrere Server zu \u00fcberwachen (multithreading) und eine \u00fcber-deutliche Darstellung. Mit Qt (als gekreutze Z\u00fcchtung: PyQt4) ist dies durchaus m\u00f6glich. Ein Fenster f\u00fchrt eine Liste von Servern, deren Werte gleich nebenan angezeigt werden. Dauert eine Verbindung l\u00e4nger als gew\u00f6hnlich (threshold), werden die Zahlen und der Servername rot. Als Tooltip kommen dann auch die min.- und max.-Werte zum Vorschein (f\u00fcr genauere Absch\u00e4tzung). Ist ein Server v\u00f6llig unerreichbar, wird der rote Vordergrund zum Hintergrund und der wei\u00dfe Hintergrund zur Schriftfarbe. So f\u00e4llt es sicher auf!<\/p>\n<figure id=\"attachment_434\" aria-describedby=\"caption-attachment-434\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.kolatzek.org\/wblog\/wp-content\/uploads\/sites\/2\/2009\/07\/PyQWatch.jpeg\"><img fetchpriority=\"high\" decoding=\"async\" class=\"size-medium wp-image-434\" title=\"PyQWatch im Einsatz\" src=\"http:\/\/blog.kolatzek.org\/wblog\/wp-content\/uploads\/sites\/2\/2009\/07\/PyQWatch-300x237.jpg\" alt=\"PyQWatch im Einsatz\" width=\"300\" height=\"237\" \/><\/a><figcaption id=\"caption-attachment-434\" class=\"wp-caption-text\">PyQWatch im Einsatz<\/figcaption><\/figure>\n<p>Im Hintergrund werkeln QThreads, die mit der Hauptanwendung kommunizieren &#8211; sobal sich was tut. Die Konfiguration nimmt man im Konfigurationsfenster vor: Servername, Ping-Anzahl, Pause, erlaubter Durchschnittswert&#8230; und nat\u00fcrlich der Pfad zu httping! Beim Speichern werden die Einstellungen sofort wirksamn. Die Threads stoppen ihre subprocess-Shells und werden neu gestartet.<\/p>\n<p>Das Konzept ist f\u00fcr weitere Ideen (wie IMCP-Pings, MySQL-connects oder POP-Antwortzeitenmessung) offen. Auch eine Pr\u00fcfung des Inhalts mit Hilfe von RegEx w\u00e4re sicher interessant. Bis dahin ist es aber noch ein langer Weg&#8230; Dennoch w\u00fcnsche ich jetzt schon <a title=\"tar xzf PyQWatch.tar.gz &amp;&amp; cd PyQWatch &amp;&amp; sh .\/PyQWatch.sh\" href=\"\/PyQWatch.tar.gz\">viel Spa\u00df damit<\/a>!<\/p>\n<p>Aktuelle Version finden Sie unter https:\/\/svn.heilsberg.org\/reps\/PyQtWatch\/trunk\/ als SVN repository. F\u00fcr eine Kopie einfach: &#8222;svn co https:\/\/svn.heilsberg.org\/reps\/PyQtWatch\/trunk\/ PyQWatch&#8220; aufrufen. pyqwatch startet das Proramm aus der bash\/shell heraus. Neu sind im Moment: Statusanzeige durch Systray-Icon (gr\u00fcn, gelb, rot) und Menue beim Systray-Icon.<\/p>\n<p>[Update: Fehler bei der Ausf\u00fchrung ohne Konfiguration beseitigt.]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer f\u00fcr&#8217;s Web programmiert oder bloggt, will nicht nur gefunden, sonder auch gelesen werden. Nur wenn der Server schlapp macht, ist die ganze M\u00fche umsonst. Eine Server-\u00dcberwachung muss her. Einige VServer-Anbieter bieten dies f\u00fcr ihre Kunden gratis an. Reicht eine Email nicht, weil der Server gesch\u00e4ftskritische Aufgaben zu erledigen hat, w\u00fcnscht man schon eher eine [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[],"footnotes":""},"categories":[8],"tags":[65,71,89,90,96],"class_list":["post-433","post","type-post","status-publish","format-standard","hentry","category-software","tag-linux","tag-monitoring","tag-python","tag-qt","tag-server","entry"],"_links":{"self":[{"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/posts\/433","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/comments?post=433"}],"version-history":[{"count":0,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/posts\/433\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/media?parent=433"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/categories?post=433"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/tags?post=433"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}