{"id":1030,"date":"2018-09-26T22:51:44","date_gmt":"2018-09-26T20:51:44","guid":{"rendered":"https:\/\/www.xcep.net\/blog\/?p=1030"},"modified":"2019-03-23T11:43:31","modified_gmt":"2019-03-23T10:43:31","slug":"aws-hostalive-mit-icinga-ohne-ping-aber-mit-check_tcp","status":"publish","type":"post","link":"https:\/\/www.xcep.net\/blog\/aws-hostalive-mit-icinga-ohne-ping-aber-mit-check_tcp\/","title":{"rendered":"AWS hostalive mit Icinga ohne Ping, aber mit check_tcp"},"content":{"rendered":"\n<p>Um einen Host bei Amazon Web Services per Icinga zu \u00fcberwachen, kann man leider nicht auf den normalen &#8222;hostalive&#8220; von Icinga zur\u00fcckgreifen. Dieser &#8222;pingt&#8220; den Server regelm\u00e4\u00dfig an und meldet sich entsprechend, wenn der Server nicht erwartungsgem\u00e4\u00df antwortet.<\/p>\n\n\n\n<p>Auf Amazon EC2 oder auch Lightsail Servern werden Ping-Anfragen erstmal grunds\u00e4tzlich aus Sicherheitsgr\u00fcnden geblockt. Auf EC2 Servern lassen sich die sogenannten ECHO-Requests (ICMP Requests) zum Gl\u00fcck freischalten &#8211;&nbsp; auf den Lightsail Servern geht das leider nicht.<\/p>\n\n\n\n<p>Um dennoch die Erreichbarkeit \u00fcberpr\u00fcfen zu k\u00f6nnen, kann man bei Icinga anstatt der standardm\u00e4\u00dfig eingestellten &#8222;hostalive&#8220; Abfrage auch einen eigenen Check verwenden, der z.B. die Erreichbarkeit des Hosts per TCP\/IP auf einem bestimmten Port (z.B. 80 &#8211; WWW) testet.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Daf\u00fcr ben\u00f6tigt man einen neuen Check, den wir in diesem Fall einfach &#8222;check_tcp&#8220; nennen und folgenderma\u00dfen erstellen:<br><\/p>\n\n\n\n<h2>Check Command<\/h2>\n\n\n\n<p>In der &#8222;commands.conf&#8220; erstellen wir einen neuen Befehl:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">object CheckCommand \"check_tcp\" {\n    import \"plugin-check-command\"\n    command = [ PluginDir + \"\/check_tcp\" ]\n    \n    arguments = {\n        \"-p\" = \"$tcp_port$\"\n        \"-H\" = \"$tcp_address$\"\n    }\n}<\/pre>\n\n\n\n<p>Der Befehl benutzt die &#8222;check_tcp&#8220; aus den Nagios Plugins und erwartet, dass im Host die Variablen &#8222;tcp_port&#8220; und &#8222;tcp_address&#8220; definiert wurden.<\/p>\n\n\n\n<h2>Anpassungen im Host Object<\/h2>\n\n\n\n<p>Damit anstatt des &#8222;hostalive&#8220; jetzt der neue Befehl verwendet wird, muss im&nbsp; Host Object der &#8222;check_command&#8220; von &#8222;hostalive&#8220; auf &#8222;check_tcp&#8220; ge\u00e4ndert werden und zus\u00e4tzlich die beiden o.g. Variablen definiert werden. Vollst\u00e4ndig sieht das dann so aus:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">object Host \"www.domain.de\" {\n    import \"generic-host\"\n    \n    check_command = \"check_tcp\"\n    vars.tcp_address = \"www.domain.de\"\n    vars.tcp_port = \"80\"\n    address = \"1.2.3.4\"\n    \n    vars.os = \"Linux\"\n    \n    [...]\n}<\/pre>\n\n\n\n<p>Nach einem Reload sollte der neue &#8222;check_command&#8220; verwendet werden. Trotzdem erscheint unser Host weiterhin als &#8222;Critical&#8220; weil nicht erreichbar. Das liegt daran, dass Icinga trotzdem einen Ping an den Host sendet und keine Antwort zur\u00fcckbekommt. Um den Ping komplett abzuschalten, muss eine Anpassung vorgenommen werden, die in folgendem Artikel erkl\u00e4rt wird:&nbsp;<a href=\"https:\/\/www.xcep.net\/blog\/icinga-ping-check-deaktivieren\/\"><\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.xcep.net\/blog\/icinga-ping-check-deaktivieren\/\">Icinga Ping-Check deaktivieren<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.xcep.net\/blog\/icinga-ping-check-deaktivieren\/\"><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Um einen Host bei Amazon Web Services per Icinga zu \u00fcberwachen, kann man leider nicht auf den normalen &#8222;hostalive&#8220; von Icinga zur\u00fcckgreifen. Dieser &#8222;pingt&#8220; den Server regelm\u00e4\u00dfig an und meldet sich entsprechend, wenn der Server nicht erwartungsgem\u00e4\u00df antwortet. Auf Amazon EC2 oder auch Lightsail Servern werden Ping-Anfragen erstmal grunds\u00e4tzlich aus Sicherheitsgr\u00fcnden geblockt. Auf EC2 Servern [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,3,410,5],"tags":[538,539,535,534,540,537],"_links":{"self":[{"href":"https:\/\/www.xcep.net\/blog\/wp-json\/wp\/v2\/posts\/1030"}],"collection":[{"href":"https:\/\/www.xcep.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xcep.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xcep.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xcep.net\/blog\/wp-json\/wp\/v2\/comments?post=1030"}],"version-history":[{"count":5,"href":"https:\/\/www.xcep.net\/blog\/wp-json\/wp\/v2\/posts\/1030\/revisions"}],"predecessor-version":[{"id":1072,"href":"https:\/\/www.xcep.net\/blog\/wp-json\/wp\/v2\/posts\/1030\/revisions\/1072"}],"wp:attachment":[{"href":"https:\/\/www.xcep.net\/blog\/wp-json\/wp\/v2\/media?parent=1030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xcep.net\/blog\/wp-json\/wp\/v2\/categories?post=1030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xcep.net\/blog\/wp-json\/wp\/v2\/tags?post=1030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}