<html><head><meta http-equiv="Content-Type" content="text/html charset=UTF-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Setting up my first pacemaker cluster, I’m trying to grasp howto make ocf:heartbeat:nginx monitor with check levels > 0.<div class=""><br class=""></div><div class="">Got this so far:</div><div class=""><br class=""></div><div class=""><div class="">[root@afnA ~]# pcs resource</div><div class=""> Resource Group: afnGroup</div><div class="">     afnVIP     (ocf::heartbeat:IPaddr2):       Started afnA </div><div class="">     afnNGinx   (ocf::heartbeat:nginx): Started afnA </div><div class=""><br class=""></div><div class="">[root@afnA ~]# pcs resource describe ocf:heartbeat:nginx</div><div class="">ocf:heartbeat:nginx - Manages an Nginx web/proxy server instance</div><div class=""><br class=""></div><div class="">This is the resource agent for the Nginx web/proxy server.</div><div class="">This resource agent does not monitor POP or IMAP servers, as</div><div class="">we don't know how to determine meaningful status for them.</div><div class=""><br class=""></div><div class="">The start operation ends with a loop in which monitor is</div><div class="">repeatedly called to make sure that the server started and that</div><div class="">it is operational. Hence, if the monitor operation does not</div><div class="">succeed within the start operation timeout, the nginx resource</div><div class="">will end with an error status.</div><div class=""><br class=""></div><div class="">The default monitor operation will verify that nginx is running.</div><div class=""><br class=""></div><div class="">The level 10 monitor operation by default will try and fetch the /nginx_status</div><div class="">page - which is commented out in sample nginx configurations.</div><div class="">Make sure that the /nginx_status page works and that the access</div><div class="">is restricted to localhost (address 127.0.0.1) plus whatever</div><div class="">places _outside the cluster_ you want to monitor the server from.</div><div class="">See the status10url and status10regex attributes for more details.</div><div class=""><br class=""></div><div class="">The level 20 monitor operation will perform a more complex set of tests</div><div class="">from a configuration file.</div><div class=""><br class=""></div><div class="">The level 30 monitor operation will run an external command to perform</div><div class="">an arbitrary monitoring operation.</div><div class=""><br class=""></div><div class="">Resource options:</div><div class="">  configfile: The full pathname of the Nginx configuration file.This file is parsed to provide defaults for various otherresource agent parameters.</div><div class="">  httpd: The full pathname of the httpd binary (optional).</div><div class="">  port: A port number that we can probe for status informationusing the statusurl.This will default to the port number found in theconfiguration file, or 80, if none can be foundin the configuration file.</div><div class="">  status10url: The URL to monitor (the nginx server status page by default) when given a level 10 monitor operation.If left unspecified, it will be inferred fromthe nginx configuration file, or defaulted to /nginx_status.If you set this, make sure that</div><div class="">               it succeeds *only* from thelocalhost (127.0.0.1) and no other cluster nodes.Otherwise, the cluster software may complainabout it being active on multiple nodes.</div><div class="">  status10regex: Regular expression to match in the output of status10url.Case insensitive.</div><div class="">  testclient: Client to use to query to Nginx for level 10 and level 20 tests.If not specified, the RA will try to find one on the system.Currently, wget and curl are supported, with curl being preferred.For example, you can set this paramter to "wget"</div><div class="">              if you prefer that to curl.</div><div class="">  test20url: URL to test. If it does not start with "http", then it'sconsidered to be relative to the document root address.</div><div class="">  test20regex: Regular expression to match in the output of test20url.Case insensitive.</div><div class="">  test20conffile: A file which contains a more complex test configuration. Could be useful ifyou have to check more than one web application or in case sensitiveinfo should be passed as arguments (passwords). Furthermore,using a config file is the only</div><div class="">                  way to specify certain parameters.Please see README.webapps for examples and file description.</div><div class="">  test20name: Name of the test within the test configuration file.</div><div class="">  external_monitor30_cmd: Command string to run which implements level 30 monitoring.</div><div class="">  options: Extra options to apply when starting nginx.</div><div class=""><br class=""></div><div class="">[root@afnA ~]# pcs resource show afnNGinx</div><div class=""> Resource: afnNGinx (class=ocf provider=heartbeat type=nginx)</div><div class="">  Attributes: configfile=/opt/imail/nginx/conf/nginx.conf port=8080 httpd=/opt/imail/nginx/sbin/nginx options="-p /opt/imail/nginx" status10url=/ping status10regex=".+ is alive\." </div><div class="">  Operations: start interval=0s timeout=60s (afnNGinx-start-interval-0s)</div><div class="">              stop interval=0s timeout=60s (afnNGinx-stop-interval-0s)</div><div class="">              monitor interval=10s timeout=20s (afnNGinx-monitor-interval-10s)</div><div class="">              monitor interval=60s timeout=20s (afnNGinx-monitor-interval-60s)</div><div class="">[root@afnA ~]# </div></div><div class=""><br class=""></div><div class="">but I cant verify that pacemaker RA ever calls <a href="http://localhost:8080/ping" class="">http://localhost:8080/ping</a>, why not?</div><div class=""><br class=""></div><div class="">Any pointers to info source(s) for better understanding RA configuration and maybe specially check levels?</div><div class=""><br class=""></div><div class="">TIA</div><div class=""><br class=""></div><div class="">/Steffen</div><div class=""><br class=""></div><div class="">Manual pinging shows in nginx log but never sees RA monitoring from check level 10:</div><div class=""><br class=""></div><div class=""><div class="">[root@afnA ~]# wget -q -O - <a href="http://127.0.0.1:8080/ping" class="">http://127.0.0.1:8080/ping</a></div><div class="">mss3 is alive.</div><div class="">[root@afnA ~]# sleep 60; wget -q -O - <a href="http://127.0.0.1:8080/ping" class="">http://127.0.0.1:8080/ping</a></div><div class="">mss3 is alive.</div><div class="">[root@afnA ~]# tail -2 /opt/imail/nginx/logs/access.log</div><div class="">127.0.0.1 - - [08/Nov/2015:10:21:43 +0100] "GET /ping HTTP/1.0" 200 16 "-" "Wget/1.12 (linux-gnu)"</div><div class="">127.0.0.1 - - [08/Nov/2015:10:22:56 +0100] "GET /ping HTTP/1.0" 200 16 "-" "Wget/1.12 (linux-gnu)”</div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div></body></html>