Not a customer? Click the 'Start a free trial' link to begin a 30-day SaaS trial of our product and to join our community.
Existing Cisco AppDynamics customers should click the 'Sign In' button to authenticate to access the community
09-20-2018 02:01 AM
Hi all.
I've setup a "demo-App" consisting of a Apache-PHP based app ("front app"), against MySQL DB Server, and a Java-MicroService based app ("backend app"), against MS SQL DB Server, for AppDynamics testing purposes only.
In order to "see" database's activity, I tried to setup both database controllers, one for MS SQL Server and other for MySQL Server, and I've found a problem... After "first run" (and, probably, some others), both agents start showing the same error:
INFO [<AGM-DB-MSSQLServer-Collector>-Scheduler-1] Agent:180 - Starting DB Collector Agent....
INFO [<AGM-DB-MSSQLServer-Collector>-Scheduler-1] Agent:245 - Configuration manager successfully configured
INFO [<AGM-DB-MSSQLServer-Collector>-Scheduler-1] EventService:39 - Event Generation Service is : enabled
INFO [<AGM-DB-MSSQLServer-Collector>-Scheduler-1] MetricService:46 - Metric Service is : [enabled].
INFO [<AGM-DB-MSSQLServer-Collector>-Scheduler-1] MetricService:94 - Metric Generation Service is : enabled
INFO [<AGM-DB-MSSQLServer-Collector>-Scheduler-1] ADBCollector:68 - Create new DB collector for: AGM-DB-MSSQLServer-Collector
INFO [<AGM-DB-MSSQLServer-Collector>-Scheduler-1] ADBAvailabilityCollector:63 - Create new db availability Metrics collector for: AGM-DB-MSSQLServer-Collector
INFO [<AGM-DB-MSSQLServer-Collector>-Scheduler-1] AServerCollector:90 - Create new hardware metric collector for: AGM-DB-MSSQLServer-Collector
INFO [<AGM-DB-MSSQLServer-Collector>-Scheduler-1] DBAgentMonitor:35 - DBAgentMonitor started
INFO [<AGM-DB-MSSQLServer-Collector>-Scheduler-1] Agent:193 - Started DB Collector Agent successfully
INFO [<AGM-DB-MySQL-Collector>-Scheduler-2] ARelationalDBCollector:29 - (Re)initialize the DB collector 'AGM-DB-MySQL-Collector'.
INFO [<AGM-DB-MSSQLServer-Collector>-Scheduler-2] ARelationalDBCollector:29 - (Re)initialize the DB collector 'AGM-DB-MSSQLServer-Collector'.
ERROR [<AGM-DB-MySQL-Collector>-Scheduler-2] ADBCollector:208 - Error collecting data for database 'AGM-DB-MySQL-Collector'
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Client does not support authentication protocol requested by server; consider upgrading MySQL client
INFO [-Scheduler-2] MSSqlCollector:82 - SQL Server Version = 14.0.2002.14 ( 2014.0 )
INFO [-Scheduler-3] AServerCollector:180 - (Re)initialize the hardware metric collector 'AGM-DB-MySQL-Collector'.
INFO [-Scheduler-2] AServerCollector:180 - (Re)initialize the hardware metric collector 'AGM-DB-MSSQLServer-Collector'.
INFO [-Scheduler-3] AServerCollector:274 - Locale requested of 'en-US' and set to 'en_US'.
INFO [-Scheduler-2] AServerCollector:274 - Locale requested of 'en-US' and set to 'en_US'.
INFO [-Scheduler-1] RelationalDBAvailabilityCollector:51 - (Re)initialize the DB Availability collector 'AGM-DB-MySQL-Collector'.
ERROR [-Scheduler-1] ADBAvailabilityCollector:119 - Error collecting data for database 'AGM-DB-MySQL-Collector'
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Client does not support authentication protocol requested by server; consider upgrading MySQL client
INFO [-Scheduler-1] DBCollectorAgentMonitorDelegate:171 - Stopping DB collector agent 'AGM-DB-MySQL-Collector''s delegate...
INFO [Thread-2] ADBCollector:110 - DB collector [AGM-DB-MySQL-Collector] shut down!
INFO [Thread-4] ADBAvailabilityCollector:92 - DB Availability Metrics collector [AGM-DB-MySQL-Collector] shut down!
INFO [-Scheduler-1] RelationalDBAvailabilityCollector:51 - (Re)initialize the DB Availability collector 'AGM-DB-MSSQLServer-Collector'.
Maybe, this is due to something related with "both agents colliding"? I've seen that starting ONLY ONE AGENT (for instance, MS SQL Server), the MS SQLServer agent works fine, but the other (MySQL) does NOT work; and I want to monitor both databases... In the case I start the MySQL agent, curiously only MS SQLServer agent is active, and MySQL agent also crashes.
And... what about that "MySQLNonTransientConnectionException" exception?
Any help is appretiated. :)
PS: By the way, why agents take so long to "stop" when pressing Ctrl-C?
Solved! Go to Solution.
09-24-2018 10:25 AM
Greetings!
Thank you for posting the question on the AppDynamics Community.
I see that you are using multiple Database Agents on the same machine and by looking at the documentation, what I understand is specific system settings are required in order to bring them up correctly.
Please refer to the Multiple Agent Environment Properties Documentation and check your system configuration.
Please let us know if the problem still persists.
Thank You
Radhika
09-24-2018 10:32 AM - edited 09-24-2018 10:33 AM
Hi, Radhika.
First of all, thanks for the comment.
The problem is now over.
1.- To connect to two different databases, I had to define two Collectors. Both are now working.
2.- To connect to MySQL I've had to declare the "custom Connection string", adding a custom "...&characterEncoding=latin1" parameter, since from "some given MySQL server version", the default database encoding has changed. That was the "MySQLNonTransientConnectionException" that raised.
3.- I can "connect" the database calls, from within an application to a given Collector by using the "Details" page, and mapping the "database server" in the app to the Collector.
Regards.
01-17-2019 07:38 PM
So if I need to monitor two different databases, say one is PostgreSQL and the other one is MYSQL, do I need to download two database agents and run them separately? Or I can do it using one database agent only with two separately defined database collectors?
Thanks
01-18-2019 02:48 AM
One database agent hosting 2 configured collectors is the expected deployment model.
The documentation describes this here.
Warm regards,
Peter
Thank you! Your submission has been received!
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form