Surveillance de serveur simple avec Java [fermé]


J'essaie de trouver une solution qui me permet de surveiller la consommation de ressources d'un serveur. De préférence, les métriques que je veux obtenir sont les E/S d'utilisation du réseau, et si possible l'utilisation du PROCESSEUR / la moyenne de charge et les E / S de disque.

La seule autre exigence que j'ai est que cette information puisse être obtenue par Java afin qu'elle puisse être manipulée, et au moins fonctionner sur Linux (Fedora).

J'ai entendu parler de quelques outils de surveillance mais je ne suis tout simplement pas sûr de la meilleure façon de procéder. Je voudrais je veux probablement recueillir les informations toutes les 30 secondes.

Merci

Mise à jour: Juste pour ré-itérer, je fais référence à la surveillance à l'échelle du système ET NON à la surveillance spécifique à Java. Je veux juste utiliser Java pour accéder à ces métriques

Author: MSR, 2009-09-10

7 answers

, Vous pouvez choisir de déléguer la surveillance d'un outil dédié comme Cactus, Centreon, ou Zenoss mais c'est peut-être un peu trop pour une seule application.

Pour une solution simple, JMX pourrait en effet être une meilleure solution. Comme point de départ, je suggère de lire l'article suivant: Surveillance des applications locales et distantes à l'aide de JMX 1.2 et JConsole. Ensuite, jetez un oeil à En utilisant JConsole pour surveiller les applications, un très détaillé article qui montre comment utiliser JConsole pour accéder à plusieurs fonctionnalités de gestion fournies par la plateforme Java, notamment:

  • Détecter une faible mémoire
  • Activer ou désactiver le GC et le traçage verbeux de chargement de classe
  • Détecter les blocages
  • Contrôler le niveau de journalisation de tous les enregistreurs dans une application
  • Accès aux ressources du système d'exploitation-Extension de plate-forme de Sun
  • Gérer les Beans gérés d'une application (MBeans)

Mais, AFAIK, JMX ne vous donnera pas accès aux E / S réseau, vous pourriez donc avoir besoin d'une combinaison de ces outils. Heureusement, de nombreux outils (par exemple Cacti, SmokePing) utilisent le format RDD que vous pouvez facilement manipuler avec des API Java comme Jrobine ou rdd4j.

 3
Author: Pascal Thivent, 2009-09-10 14:06:16

Je veux juste lancer RHQ (http://rhq-project.org/) dans le mélange: -)

 2
Author: Heiko Rupp, 2011-01-26 14:28:59

Vous pouvez envisager d'utiliser l'outil de surveillance Ganglia. Il utilise XML pour sa représentation des données et j'imagine donc qu'il serait assez simple d'accéder aux données à partir de Java, et il y a les avantages supplémentaires qu'il a été conçu pour être très évolutif, avec le potentiel d'enregistrer des métriques de serveur sur un grand nombre de machines.

 1
Author: Adamski, 2009-09-10 13:53:31

Je suis de plus en plus friand de collectd, un démon C modulaire axé sur la surveillance (plutôt que sur le graphique) avec une multitude de plugins:

Il semblerait y avoir plusieurs options pour obtenir des métriques dans votre code Java:

  • en cours de processus, en utilisant le plugin Java susmentionné pour enregistrer un rappel d'écriture pour recevoir des données des différents autres plugins
  • sur le réseau, en intégrant jcollectd (une implémentation Java du protocole collectd) dans votre application
  • indirectement, en écrivant dans un fichier CSV ou RRD et en utilisant l'une des différentes implémentations RRD pour Java
 1
Author: SimonJ, 2010-10-26 20:53:24

Votre meilleur pari serait probablement regarder dans /proc pour tous vos systèmes d'utilisation des ressources /proc/cpuinfo et /proc/net/ sont un bon endroit pour commencer.

 0
Author: nelsonslament, 2009-09-10 12:35:14

Quel est le problème avec l'exécution.exec ("une commande")?

 0
Author: Eamorr, 2010-10-25 23:50:33

Je ne sais pas si cela aiderait votre requête. IMHO Cactus et Centreon semblent être trop complexes pour investir du temps dans une exigence aussi simple que la vôtre. Il existe des outils plus simples pour la surveillance du serveur tels que New Relic et SeaLion. SeaLion est mon favori actuel. Il donne des commandes par défaut simples qui couvrent la plupart des exigences de base(couvrira probablement le vôtre aussi). Il est également extrêmement simple à configurer et est gratuit. Vous pouvez essayer ces.

 -1
Author: Kevin, 2013-11-27 06:09:07