Bye Bye bm-stats, bmSearch, bmTraces. Il faut évoluer dans la vie.

Bonjour tout le monde,

voilà, ça va faire quelques années que j’ai proposé bm-stats, d’abord pour BM2, puis pour BM3 et maintenant BM3.5.
Le code a très peu évolué. Il est en PERL, et en PHP, ce qui me/nous pose quelques problèmes de maintenance.

J’ai par ailleurs 2 autres contributions en ligne, un outil graphique de recherche dans les logs postfix, et une autre qui renvoie les éléments d’un message vers une plate-forme ELK.

Je vais fusionner le tout pour qu’au final, on ai :

  • une stack ELK qui permettra de monitorer votre infra BM, mais aussi vos autres machines (Linux ou Windows) Je vous invite à faire un tour sur “elastic.co” pour avoir la capacité du produit.
  • un service qui parse les fichiers de log en temps réel, et stocke le rendu dans ELK
  • une interface web fournissant :
    [list=]
    ]les mêmes items que bm-stats (domaine, utilisateur…)./]
    [/list]
    [list=
    ]
    ]un module de recherche dans les traces. On a tous été confronté au “j’ai pas reçu le message” d’un utilisateur. Et bien là, vous pourrez faire vos recherches en lignes sans passer la commande ‘grep’./]
    [/list]
    [list=*]
    ]une interface de monitoring (un export de KIBANA)./]
    [/list]

Le tout sera écrit en Python (3.x), en m’appuyant sur le framework django.

J’en ai pour 6 mois de travail (DEV + UAT + PROD).

Bien sûr, je vous ferai des points réguliers quant à l’avancement.

N’hésitez pas à me faire vos remarques.

Pascal

Hello Pascal,

même si tu m’as mis au courant ses derniers jours au salon (http://www.opensourcesummit.paris/),

c’est avec un grand plaisir que je vais creuser ton ingénierie.

Comme j’ai pu te l’indiquer, il va me falloir re-developper le monitoring et surtout les rapports de stat pour mon futur serveur Zabbix.

Ami du libre, je vais sûrement reprendre des briques de ton boulot.

Je te tiendrais aux jus.

Crdt
Poustiquet

Salut Poustiquet,

j’ai commencé le portage sur Django ce qui va mettre un peu de temps.
Ne connaissant pas ce framework, je dois presque tout apprendre.
Je connais déjà Python, et le principe de micro-applications :slight_smile: .

Pour les sources, le projet sera accessible sur mon Giltab.

Pascal

Ah mon cher ami ,
un gros snifff , je ne connais pas non plus… .
Et mon temps en 2018 va s’orienter vers le Collectif des Hébergeurs Alternatifs,Transparents, Ouverts, Neutres et Solidaires. ( chatons.org )

Par contre, je vais suivre ton GIT :wink:

L’un des premiers services qui sera ouvert et qui sera la base des autres, ce sera un service BlueMind … (étonnant , non :wink: )

Bonne soirée
Poustiquet

Salut Pascal,

Super initiative, je ne trouve pas l’url de ton gitlab, il est accessible ?

Hello Pascal,

comment vas tu ?
As tu passé un bon Noël ?

je suis entrain de migrer mon vieux serveur (2.0.17, si si , cela existe encore)
Et j’en ai profité pour faire un rapide template Zabbix pour les stats de mes flux mail …

Je vais attaquer l’installation de plusieurs autres serveurs web, mais je vais revenir en début d’année sur le dev d’un script de supervision de process de BlueMind dans Zabbix, et intégration de stats diverse.

Du coup, étant donnée que tu es la référence dans ce domaine, j’aimerai reprendre tes grands lignes pour faire mon intégration.

Ton Git est-il public ?

( J’aimerai m’en monter un, qu’utilises tu ? )

Crdt
Poustiquet

Template App Postfix: Postfix Log authentication failed	 	postfix[log,authenticationfailed]	60	90d	365d	agent Zabbix	Postfix	Activé	
Template App Postfix: Postfix Log Connection refused	 	postfix[log,refused]	60	90d	365d	agent Zabbix	Postfix	Activé	
Template App Postfix: Postfix Log Connection timed out	 	postfix[log,timeout]	60	90d	365d	agent Zabbix	Postfix	Activé	
Template App Postfix: Postfix Log Delivered	 	postfix[log,delivered]	60	90d	365d	agent Zabbix	Postfix	Activé	
Template App Postfix: Postfix Log Network is unreachable	 	postfix[log,unreachable]	60	90d	365d	agent Zabbix	Postfix	Activé	
Template App Postfix: Postfix Log User logged	 	postfix[log,Userlogged]	60	90d	365d	agent Zabbix	Postfix	Activé	
Template App Postfix: Postfix Mail active	 	postfix[status,active]	60	90d	365d	agent Zabbix	Postfix	Activé	
Template App Postfix: Postfix Mail bounced	 	postfix[status,bounced]	60	90d	365d	agent Zabbix	Postfix	Activé	
Template App Postfix: Postfix Mail deferred	 	postfix[status,deferred]	60	90d	365d	agent Zabbix	Postfix	Activé	
Template App Postfix: Postfix Mail expired	 	postfix[status,expired]	60	90d	365d	agent Zabbix	Postfix	Activé	
Template App Postfix: Postfix Mail sent	 	postfix[status,sent]	60	90d	365d	agent Zabbix	Postfix	Activé	
Template App Postfix: Postfix Queue active	 	postfix[queue,active]	60	90d	365d	agent Zabbix	Postfix	Activé	
Template App Postfix: Postfix Queue deferred	 	postfix[queue,deferred]	60	90d	365d	agent Zabbix	Postfix	Activé	

Salut Poustiquet,

et bien après la fête, la petite défaite (j’ai la crève) :frowning:

Pour ce qui est de Zabbix, j’ai un peu de mal avec le mode de stockage des données. Le rrd lisse trop les courbes dans le temps, amha.
En revanche, on n’est pas surpris par la taille du/des fichier(s).
Enfin, pour ce qui est de la métrologie des messages, les chiffres seront peut être faux. La plupart des scripts que j’ai trouvés se contentent de parser chaque ligne
sans se soucier de savoir si ce n’est pas la 2nde fois qu’il traite le message. Le cas classique est le serveur qui intègre Postfix et un antivirus/spam (amavis/clamav/postgrey).
On va retrouver dans la log postfix 2 blocs de lignes pour le même message, le 1er concernant la gestion par Postfix sur l’IP publique, et le second est relatif au renvoi vers la chaine locale de sécu. Mais, bon, une fois qu’on le sait :wink:

Concernant mon GIT, j’utilise GitLab. Il a l’avantage de fournir les mécanismes d’Intégration Continue (CI).
Il n’est pas encore ouvert au publique. Mais je te pousse un compte pour t’y connecter.

Bon courage pour ta migration.

Pascal

Hello Pascal,

Bonne crève , remet-toi s’en bien surtout … . ma fille m’a refilé la sienne, elle est partageuse :wink:
Vu ton mail ;-), merci, je regarderai ce soir.

Pour Zabbix, à moins que tu spécifies dans les règles que tu gardes X jours les données (365 j par exemple), tu lui donnes les règles pour garder les tendances … .
Pour ma part, c’est une valeur toutes les 60 secondes, pour les retenir sur 90jours et avec après une tendance sur 365 jours ;-).
Cela soulage fortement la base de donnée, et zabbix construit des tables temporaires pour l’affichage des tendances :wink:

Pour le moment, j’utilise logcheck, et je retiens dans des fichiers sous /var les offsets des logs lus … .
Et j’aimerai exécuter un tas de requêtes , et ton travail y en est très riche …

PS:
Migration fini :wink:

Poustiquet

Bonsoir tout le monde,

un petit bilan de ce qui a été fait depuis 3 mois, et en image

[list=]
[
]Les infos de base d’un compte :
[/]
[
]La page supervision :
[/]
[
]La recherche dans les traces de messages :
[/]
[
]Le détail d’une trace :
[/*]
[/list]

Il me reste encore quelques bricoles (graphes, export pdf)

Normalement, je mettrai en ligne la maquette pour fin juin 2018, histoire d’avoir votre retour.

Pascal

Oups, j’oubliais,
le portail sera accessible pour n’importe quel utilisateur BM.
Un lambda aura le droit à ses stats ainsi qu’à la recherche dans ses traces.

Pascal

Alors là, il y a du tafff :wink:
Chapeau Pascal … … (mais normal, cher ami, c’est ta signature, c’est bien toi …)

Moi beaucoup de boulot dans mon activité principale,
et je suis entrain de faire la E-reputation de la FFMC50
Snniffffff, pas assez de temps pour m’y mettre …

Crdt
Poustiquet

Bonjour tout le monde,

allez, promis, l’équipe de France perdra en 8ème. =D

Bon, sinon, j’ai mis en ligne une démo du machin.
Les éléments de connexion sont :

URL : https://demo.bm-monitor.org/

Logins & mots de passe :
[list=*]
]admin0@global.virt / admin /]
]admin@bm35-deb8.intra / admin /]
]pascal.salaun@bm35-deb8.intra / Toto1234! /]
[/list]

Je vous invite aussi à changer les dates.
Commencez au 01/05/2018, vous verrez plus de choses.

Pascal

NB: Désolé si ça rame, mais je n’habite pas dans le DSLAM :wink:

Bonjour Pascal,

ça a l’air super ! (y)

Le site de démo n’est déjà plus en ligne ou maintenance ?

Bonne journée
Alban

Salut Alban,

c’est juste l’orage ce matin.
J’ai une VM qui n’a pas redémarrée.

Sinon, c’est à nouveau en ligne.

Pascal

Merci Pascal.
Pas trop dépaysant par rapport à bmStats !
Question: il est prévu que cela utilise l’instance elasticsearch de l’installation BlueMind ou bien il faut une instance à part ?
Concernant la recherche, il serait pratique d’avoir une interface permettant d’ajouter des critères en fonction des besoins.
Par exemple, il est utile de pouvoir rechercher un message dont l’adresse d’expéditeur est … et dont l’un des destinataire est …
Sans doute plus compliqué au niveau interface.
Après, s’il s’agit d’un elasticsearch à part, il est toujours possible d’utiliser kibana pour rechercher.
Mais je confirme, les recherche dans les logs à coup de grep, c’est pénible !!
Beau travail en tout cas !
Alban

Je relativise quant à la recherche et d’après la capture d’écran dans un post plus haut.
Une fois qu’on a une liste de résultats, on peut les parcourir assez simplement (beaucoup plus qu’avec grep !)

Salut Alban,

  1. Il s’agit bien d’une infra Elastic à part. Je fournirai pour chaque élément de la stack ELK un paquet pour la configuration (les .yml, jvm.* …), et toute la doc qui va avec pour l’install.
    Cette nouvelle version

  2. Pour les critères de recherche, c’est vrai que ça va complexifier les requêtes (AND, OR, NOR, NAND…). Je préfère commencer simplement :wink:

Je vais ouvrir un Kibana sur la demo. Vous pourrez voir le schéma (template) pour les messages.

Pour les plus curieux https://gitlab.bm-stats/org/explore/projects

Pascal

Re-,

voilà le kibana de demo est en ligne :
https://kibana.bm-monitor.org

Login : administrator
Pwd : kiban@!

Pascal

Bonjour,

tout le monde, un petit point sur ce projet :

  • bm-monitor est en phase UAT (User Acceptance Tests), en clair l’installation est validée, et là, je (re)teste les fonctionnalités
  • un repo Debian sera proposé. il me faut juste un VPS chez un hébergeur Pro.
  • la doc d’install est déjà faite, en anglais, avec 2 exemples d’infra.
  • il y a même des scripts (import massif de comptes, synchro en tout genre)

Il me reste une fonction dont je ne sais pas si elle est utile voire utilisée : l’envoi par messagerie des stats mensuelles.
Ces rapports peuvent être générés à la demande, pour un domaine, ou pour un compte, sur une période déterminée.
J’ai juste un souhait, pour ma part, éviter de stocker des données sur le serveur “bm-monitor”.

Enfin, je ferai en sorte que tout soit accessible pour le POSS2018, en espérant vous y voir ( au stand BM bien sûr :smiley: )

Bonne journée,

Pascal

Bonjour tout le monde,

voilà le projet bmSearch / bmMonitor est maintenant documenté.
Toutes les (3) docs sont accessible sur mon GitLab

Je mettrai le repo de Prod à jour ce soir.
En attendant, bonne lecture.

Pascal