We have our application server in cluster mode with 4 tomcats running parallelly in our production environment. I would like to know how many users have logged in a particular server at a given time. No HTTP Listener configuration has been done in the production tomcat server sofar to achieve this. Now, without doing any new configuration to the existing tomcat server, is it possible to find this out by using any tool or any external java program. As I cannot stop the production server at the moment, I want to achieve this with any external program. Please help me with this.
You don't "log in" to Tomcat. What we normally refer to as logging in is done to applications, not to the application container. Depending on which security Realm is used and how they are configured. Each app may have its own login environment or multiple apps may share an environment (Realm).
That's assuming that all the apps are using the J2EE standard container-managed security subsystem. Apps that use propriety login schemes are a different bucket of worms entirely, and anything done to track those kinds of apps has to be done on a custom basis.
Often - especially in a cluster - what's more important than how many people are logged in is how many people have active sessions. You can have a session without being logged in, and it's worth knowing about sessions, because they can give an indication of how much memory resources are in use, overhead in session propagation in a cluster, and whether it's safe to shutdown an app where there might me non-secured users who would be annoyed if the app dropped out from under them.
Customer surveys are for companies who didn't pay proper attention to begin with.