Sunday, October 29, 2017

Monitor The Arbiter Server With Foxhound

Question: How do I monitor a SQL Anywhere High Availability Arbiter server with Foxhound 4?

Answer: Gosh, how hard can that be?

After all, dbping has no problem connecting to an arbiter server:

"%SQLANY17%\bin64\dbping.exe" -c "SERVER=ARBITER_PROD; HOST=localhost:55501;"

SQL Anywhere Server Ping Utility Version 17.0.7.3399
Ping server successful.
Foxhound 4 uses ODBC to connect, so all we have to do is add a DRIVER= to the connection string, right?
SERVER=ARBITER_PROD; HOST=localhost:55501; DRIVER=SQL Anywhere Native; 

2:10:36 PM  2m 21s  -- Invalid user ID or password -- 
2:09:11 PM          Alert #1: Database unresponsive.  Foxhound has been unable to gather samples for 1m or longer. Email not sent because Alert Emails were disabled. 
2:08:15 PM    5.2s  -- Invalid user ID or password at -- 
OK, so Foxhound can't just ping a server, it needs a database, so let's specify DBN=utility_db in the connection string.
Tip: You have to specify the -su option when starting the arbiter server if you want to connection via the utility database: e.g., dbsrv16 -su sql or dbsrv17 -su sqlsql. Why sqlsql? Because passwords have to be 6 characters long in SQL Anywhere 17.
But! ... it still doesn't work!
SERVER=ARBITER_PROD; DBN=utility_db; UID=DBA; PWD=sqlsql; HOST=localhost:55501; DRIVER=SQL Anywhere Native; 

2:19:13 PM  1m .2s  -- Permission denied: you do not have permission to execute a statement of this type -- 
2:19:09 PM          Alert #1: Database unresponsive.  Foxhound has been unable to gather samples for 1m or longer. Email not sent because Alert Emails were disabled. 
2:18:13 PM    5.1s  -- Permission denied: you do not have permission to execute a statement of this type at -- 
One last change is needed: Use the Monitor Options page to tell Foxhound to use the new Ping-Only Sampling feature:
Finally! Foxhound connects to the arbiter server and displays "Ping OK":
SERVER=ARBITER_PROD; DBN=utility_db; UID=DBA; PWD=sqlsql; HOST=localhost:55501; DRIVER=SQL Anywhere Native; 

2:32:53 PM  20.2s  -- Ping-only sampling -- Ping OK 
2:32:33 PM            All Clear  - Alert #1: Database unresponsive. Foxhound has been unable to gather samples for 1m or longer. Email not sent because Alert Emails were disabled. 
2:32:33 PM    10s  -- Ping-only sampling at -- 
When you directly monitor the arbiter server with a separate Foxhound sampling session, you can get Alert #1 messages sent to you when the arbiter goes down:
The other High Availability sampling sessions (primary, secondary, partner) also tell you about troubles with the arbiter, but that's not the same as Alert #1:

Overview - How To Monitor The Arbiter Server With Foxhound

  • Start the arbiter server with the -su option to enable connections via the utility database; e.g., dbsrv16 -su sql or dbsrv17 -su sqlsql

  • Specify the utility database in the Foxhound connection string; e.g., SERVER=ARBITER_PROD; DBN=utility_db; UID=DBA; PWD=sqlsql; HOST=localhost:55501; DRIVER=SQL Anywhere Native;

  • Check Perform Ping-Only Sampling on the Foxhound Monitor Options page for the arbiter server.
Tip: If you are using the original Foxhound 4 build 4729, consider upgrading to build 4740, or at least applying Patch 8 to build 4728, in order to fix problems affecting Ping-Only Sampling.


No comments: