Nous avons PostgreSQL là-bas, mais je ne sais pas quoi en faire (c)

C'est une citation d'un de mes amis qui, il y a longtemps, m'a posé une question sur Postgres. À l'époque, nous avons résolu son problème en quelques jours, et après m'avoir remercié, il a ajouté : « C'est bien d'avoir un DBA qui connaît ».

Mais que faire s'il n'y a pas de DBA connu ? Les réponses peuvent être nombreuses, allant de la recherche parmi les amis des amis à l'étude du sujet par soi-même. Mais quelle que soit la réponse qui vous vient à l'esprit, j'ai une bonne nouvelle pour vous. Nous avons lancé en mode test un service de recommandations pour Postgres et tout ce qui l'entoure. Qu'est-ce que c'est et comment en sommes-nous arrivés là ?

Pourquoi tout cela ?

Postgres n'est pas seulement compliqué, parfois c'est même très difficile. Cela dépend du niveau d'implication et de responsabilité.

Pour ceux qui sont en opérations, il est nécessaire de s'assurer que Postgres en tant que service fonctionne de manière correcte et stable : surveiller l'utilisation des ressources, la disponibilité, la pertinence des configurations, effectuer périodiquement des mises à jour et des vérifications de santé. Pour ceux qui développent et écrivent des applications, il est généralement important de surveiller les interactions entre l'application et la base de données afin de ne pas créer de situations critiques pouvant faire tomber la base. Si une personne a la malchance d'être tech lead/tech dir, il est important que Postgres fonctionne de manière fiable, prévisible et sans problème, tout en évitant de devenir trop impliqué dans Postgres.

Dans tous ces cas, vous êtes là avec Postgres. Pour bien gérer Postgres, il faudrait avoir une bonne compréhension de son fonctionnement. Si Postgres n’est pas une spécialité directe, on peut y consacrer beaucoup de temps. Idéalement, lorsqu'il y a du temps et de l'envie, il n'est pas toujours évident de savoir par où commencer et quelle direction suivre.

Même si vous êtes entouré de systèmes de surveillance, qui devraient théoriquement simplifier l'exploitation, la question des connaissances expertes reste d'actualité. Pour savoir lire et comprendre des graphiques, il faut également avoir une bonne compréhension de la façon dont Postgres fonctionne. Sinon, toute surveillance se transforme en graphiques déprimants et en spam d'alerte à des moments aléatoires de la journée.

Weaponry est conçu pour faciliter l'exploitation de Postgres. Ce service collecte et analyse des données sur Postgres et fournit des recommandations sur ce qui peut être amélioré.

L'objectif principal du service est de fournir des recommandations claires qui donnent une idée de ce qui se passe et de ce qu'il faut faire ensuite.

Pour les spécialistes sans connaissances expertes, les recommandations offrent un point de départ pour améliorer leurs compétences. Pour les professionnels avancés, ces recommandations soulignent les éléments sur lesquels prêter attention. Dans ce contexte, Weaponry agit comme un assistant réalisant des tâches routinières de détection de problèmes ou de lacunes nécessitant une attention particulière. Weaponry peut être comparé à un linter qui vérifie Postgres et souligne ses défauts.

Où en est-on maintenant

À l'heure actuelle Weaponry le service est en phase de test et gratuit, l'inscription est temporairement limitée. En collaboration avec plusieurs bénévoles, nous perfectionnons le moteur de recommandations sur des bases pseudo-combat, identifions les faux positifs et travaillons sur le texte des recommandations.

À propos, les recommandations sont pour l'instant plutôt directes — elles indiquent simplement quoi faire et comment le faire, sans détails supplémentaires — donc dans un premier temps, il faudra suivre les liens associés ou rechercher davantage. Les vérifications et recommandations couvrent les configurations système et matérielles, la configuration de Postgres lui-même, la structure interne et les ressources utilisées. De nombreux ajouts sont encore prévus.

Nous sommes également à la recherche de bénévoles prêts à essayer le service et à donner un retour. Nous avons aussi une démo, vous pouvez y accéder et jeter un œil. Si vous avez compris que cela vous intéresse et que vous êtes prêt à essayer, écrivez-nous à notre adresse e-mail.

Mis à jour le 2020-09-16. Pour commencer.

Après l'inscription, l'utilisateur est invité à créer un projet — qui permet de regrouper les instances de base de données. Après avoir créé le projet, l'utilisateur est dirigé vers les instructions de configuration et d'installation de l'agent. En résumé, il faut créer des utilisateurs pour l'agent, puis télécharger le script d'installation de l'agent et l'exécuter. Dans les commandes shell, cela ressemble à ceci :

psql -c "CREATE ROLE pgscv WITH LOGIN SUPERUSER PASSWORD 'A7H8Wz6XFMh21pwA'"
export PGSCV_PG_PASSWORD=A7H8Wz6XFMh21pwA
curl -s https://dist.weaponry.io/pgscv/install.sh |sudo -E sh -s - 1 6ada7a04-a798-4415-9427-da23f72c14a5

Si un pgbouncer est présent sur l'hôte, il sera également nécessaire de créer un utilisateur pour connecter l'agent. La méthode spécifique de configuration de l’utilisateur dans pgbouncer peut varier considérablement et dépend fortement de la configuration utilisée. En termes généraux, la configuration consiste à ajouter l’utilisateur à stats_users le fichier de configuration (généralement pgbouncer.ini) et d'indiquer le mot de passe (ou son hachage) dans le fichier indiqué par le paramètre auth_file. Lors de la modification de stats_users, un redémarrage du pgbouncer sera requis.

Le script install.sh prend un certain nombre d'arguments obligatoires qui sont uniques à chaque projet et accepte les identifiants des utilisateurs créés via des variables d'environnement. Ensuite, le script lance l'agent en mode bootstrap — l'agent se copie dans le PATH, crée une configuration avec les identifiants, une unité systemd et se lance en tant que service systemd.
L'installation se termine ici. Dans quelques minutes, l'instance de la base de données apparaîtra dans la liste des hôtes dans l'interface et vous pourrez déjà voir les premières recommandations. Mais un point important, de nombreuses recommandations nécessitent un grand nombre de métriques accumulées (au moins pendant une journée).

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster