• Installation d’un cluster elasticsearch 8.x (et...
    le 22 novembre 2023

    Dans cet article nous abordons l’installation sous Linux d’un cluster elasticsearch et non pas d’une infrastructure ELK complète. L’installation de Kibana qui est néanmoins indispensable pour à minima l’administration du cluster sera décrite dans un autre article. La procédure d’installation d’un cluster elasticsearch 8.x n’a pas fondamentalement changée comparée à la procédure pour une version 7.x. Cependant, il y a quelques nouveautés et un piège à éviter.  Les nouveautés sont les suivantes : Dans cette procédure basée sur les packages officiels, nous indiquons les étapes communes de l’installation des différents nœuds, puis les procédures spécifiques pour le premier nœud et

  • Export Solr avec les streaming expressions
    le 22 novembre 2020

    Un de nos clients manipule des collections de plus ou moins 1 milliards de documents. Ces documents sont constitués principalement de méta-données. Ces volumes commencent à devenir conséquents pour des recherches et du facetting mais également pour des exports massifs de plusieurs millions de documents. Pour ces exports, même l’usage du deep paging n’est pas optimum. Il est nécessaire d’utiliser les streaming expressions. Dans cet article, nous allons comparer ces deux méthodes d’export Solr des documents d’un résultat de recherche. Nous fournissons des exemples de code Java qui utilisent la librairie SolrJ. Deep Paging Le deep paging (pagination en profondeur)

  • SolrCloud – Recherches NRT avec des replicas...
    le 16 novembre 2020

    Réaliser des recherches NRT (Near Real Time Search) dans une collection SolrCloud constituée uniquement de replicas TLOG

  • Solrcloud Disaster Recovery – Alternative à...
    le 16 novembre 2020

    Le CDCR disparaît dans la version 9 de Solr. Dans cet article, nous proposons une solution alternative afin de permettre la gestion des Disaster Recovery

  • Kubernetes – Déploiement de Solrcloud
    le 6 janvier 2020

    Dans le premier article de cette série dédiée à Kubernetes, nous avons installé un Cluster Kubernetes privé. Dans le second article, nous avons proposé une introduction à l’architecture d’un cluster Kubernetes et nous en avons présenté les principaux concepts. Nous sommes donc en mesure dans cet article de décrire le déploiement Statefulset de Solrcloud dans Kubernetes. Les points suivants vont être couverts : Choix du positionnement des pods Zookeeper et Solr sur les différents serveurs labels pod affinity Mise en place de pods (containers) avec persistance des données Storage classe Persistent volume Service Configmap StatefulSet et volumeClaimTemplates Redémarrage automatique des

  • Kubernetes – Introduction à l’architecture...
    le 6 janvier 2020

    Dans cet article, nous présentons l’architecture et les composants de Kubernetes (serveur Master, serveur Node, Pod, …) et plus particulièrement la mise en place de pods (containers) avec persistance des données. Il fait suite à un premier article dans lequel est décrit l’installation d’un cluster Kubernetes privé. Architecture Kubernetes Kubernetes ( « k8s ») est un système d’automatisation et d’orchestration du déploiement et de la montée en charge de conteneurs d’applications. Il est souvent utilisé avec Docker. Kubernetes est une solution open-source conçu à l’origine par Google. Un cluster Kubernetes est constitué de deux types de serveurs. Les serveurs « Master »

  • Kubernetes – Installation d’un cluster privé
    le 5 décembre 2019

    Dans cet article, je décris l’installation d’un cluster Kubernetes privé constitué d’un master, de trois workers et d’un poste client d’administration. Le but est de réaliser un déploiement de Solrcloud dans Kubernetes. J’ai choisi une installation totalement autonome plutôt qu’une solution Google (GKE), Amazon (EKS) ou Azure (AKS) afin d’avoir accès aux couches les plus basses et comprendre le partage des ressources (CPU, mémoire, disque). La procédure d’installation se fait au moyen de kubeadm et est bien documentée sur le site kubernates.io et sur de nombreux blogs. Cet article n’a pas vocation à expliquer les concepts de Kubernetes. J’aborderai certains

  • Mettre en place un monitoring de Zookeeper
    le 20 novembre 2019

    Dans un article précédent « Zookeeper : Installation et bonnes pratiques« , j’ai indiqué comment installer et configurer Zookeeper. J’ai également indiqué quelques bonnes pratiques afin d’obtenir un ensemble Zookeeper stable et performant. Un rappel du fonctionnement et du rôle de Zookeeper dans un environnement SolrCloud aurait été judicieux. Je vais donc commencer par rattraper cette lacune avant d’aborder le sujet du monitoring de Zookeeper. Rôle de Zookeeper dans un environnement SolrCloud Zookeeper est un projet open-source de la fondation Apache qui a pour rôle de permettre aux composants d’un système distribué (les nœuds Solr pour SolrCloud) de se synchroniser. Il s’agit

  • Gestion des documents supprimés dans Solr
    le 12 novembre 2019

    Une des questions les plus fréquentes concernant la gestion au quotidien des index Solr est le traitement des documents supprimés. En effet, certains cas d’usages qui nécessitent des suppressions ou des modifications régulières ou massives de documents peuvent amener à des index avec un fort taux de documents supprimés. Pour le constater, il faut aller dans l’onglet « Overview » des cores. L’image suivante indique un core contenant 8.815.000 documents au total répartis en 5.582.000 documents « visibles » et 3.233.000 document supprimés, soit un taux de 37% de documents supprimés. Ces documents supprimés restent en fait présents dans les fichiers index durant un

  • Monitoring SolrCloud avec Prometheus et Grafana
    le 7 novembre 2019

    Le monitoring d’un environnement SolrCloud en production est essentiel afin d’anticiper les problèmes de performances et le cas échéant en comprendre l’origine. Cet article décrit comment mettre en place un monitoring de SolrCloud au moyen de Prometheus et Grafana.  Principe et architecture de Prometheus Prometheus est un logiciel open source (https://prometheus.io/). Il collecte des métriques auprès de tous logiciels pouvant les fournir via des exporters (et la liste est longue https://prometheus.io/docs/instrumenting/exporters/), afin de surveiller le fonctionnement des applications et mettre en place une gestion d’alerte selon des seuils.  Les tâches principales de Prometheus sont: Collecter des métriques fournis par des