Quelle serait la base de données appropriée pour suivre? Je suis particulièrement intéressé par vos expériences avec les systèmes non relationnels NoSQL. Sont-ils utiles pour ce type d'utilisation, quel système vous avez utilisé et que vous recommanderiez, ou devrais-je utiliser une base de données relationnelle normale (DB2)? J'ai besoin de collecter des informations de piste d'audit/type de journalisation à partir d'un tas de sources vers un serveur centralisé où je pourrais générer des rapports efficacement et examiner ce qui se passe dans le système.Quelles sont les bonnes solutions de base de données NoSQL et non-relationnelles pour la base de données d'audit/d'enregistrement
En général, un événement d'audit/exploitation forestière consisterait toujours de certains champs obligatoires, par exemple
- id unique au monde (certains comment généré par le programme qui a généré cet événement)
- horodatage type d'événement
- (par exemple l'utilisateur connecté, etc erreur est survenue)
- quelques informations sur la source (server1, server2)
En outre, l'événement peut contenir des paires valeur/clé 0-N, où la valeur peut aller jusqu'à quelques kilo-octets de texte.
- Il doit fonctionner sur le serveur Linux
- Il devrait fonctionner avec une grande quantité de données (100 Go par exemple)
- il devrait soutenir une sorte de recherche de texte intégral efficace
- Il devrait permettre la lecture simultanée et écriture
- Il devrait être flexible pour ajouter de nouveaux types d'événements et ajouter/supprimer des paires clé-valeur à de nouveaux événements. Flexible = aucun changement ne doit être requis dans le schéma de la base de données, l'application générant les événements peut simplement ajouter de nouveaux types d'événements/nouveaux champs si nécessaire.
- Il devrait être efficace de faire des requêtes sur la base de données. Pour signaler et explorer ce qui s'est passé. Par exemple:
- Combien d'événements avec type = X sont apparus au cours d'une période donnée.
- Obtenez tous les événements où le champ A a une valeur Y.
- Obtenez tous les événements de type X et le champ A a la valeur 1 et le champ B n'est pas 2 et événement a eu lieu dans le dernier 24h
Voulez-vous dire MongoDB? –
MongoDB est fantastique pour la journalisation: http://blog.mongodb.org/post/172254834/mongodb-is-fantastic-for-logging – kristina