Personaliser Adminer

Rédigé par gorki - - Aucun commentaire

Le problème :

Personnaliser l'interface d'Adminer avec du SQLite.
La documentation sur les extensions n'est pas tout à fait assez explicite : si elle indique bien des méthodes à utiliser, la configuration de la base n'est pas clair.

Par défaut si rien n'est configuré une page de login est affichée. Dans mon cas, le login est géré ailleurs dans mon application.

Solution :

Il suffit de suivre les requêtes faites par le login et au final on passe en $_GET les paramètres utilisés.

<?php 
include("../../includes/init.php");

function adminer_object() {

    class AdminerSoftware extends Adminer {

        function name() {
            // custom name in title and heading
            return 'MystoreAdmin';
        }

        function selectLimitProcess() {
            return '250';
        }
    }

    return new AdminerSoftware;
}


$_GET["sqlite"]="";
$_GET["username"]="";
$_GET['db']="../../databases/mystore.db";

session_start();
include("adminer-4.2.5.php");
session_write_close();

?>

Pour la description des fonctions et leur utilisation, un petit tour dans les sources n'est jamais inutile.

datapump (expdp) et virtualbox répertoire partagé

Rédigé par gorki - - Aucun commentaire

Le problème :

Utiliser expdp (export Oracle) pour dumper une base sur un répertoire partagé VirtualBox

 

Solution :

 

ça ne marche pas.

J'ai testé plusieurs choses :

ça ne marche pas sous l'OS

  • mettre les droits du répertoire partagé à l'utilisateur oracle via chown/chmod. Ce n'est pas possible (même dans les sous-répertoires)

ça marche sous l'OS (je peux créer des répertoires/fichier), ça ne marche pas avec expdp :

  • ajouter l'utilisateur oracle au groupe vboxsf.  (ORA-39070)
  • monter le répertoire partagé pour l'utilisateur oracle (cf ce lien). (ORA-39070)
  • utiliser un répertoire local pour le LOG et le partagé pour le dump (cf ce lien). (ORA-27054)

Au final je dump en local sur ma VM après avoir fait de la place.

Les commandes utiles :

  • pour remonter le disque partager pour un autre user que root
mount -t vboxsf -o uid=1000,gid=1000 <folder name given in VirtualBox> /home/<user>/where/ever/you/want

 

Centos 6.3 en mode Guest Virtualbox

Rédigé par gorki - - Aucun commentaire

Le problème :

Plusieurs problèmes :

  • Impossible d'installer les Virtualbox guest additions
  • Impossible d'installer le repository EPEL
  • Impossible d'installer telnet, bash-completion

Solution :

Normalement pour installer Virtualbox guest additions, il faut installer dkms via EPEL or je n'y arrivais pas.

Donc :

yum install gcc make kernel kernel-devel kernel-headers bzip2 

Et puis dans les logs d'installation on trouve la réponse :

export KERN_DIR=/usr/src/kernels/x.x.x/
cd /media/VBOX_ADDITIONS...
./VBoxLinuxAdditions.run

et ça marche.

Attention à avoir la dernière version du kernel pour être cohérent avec les yum install précédent.

Sinon

yum update kernel

 

Pour le EPEL, j'avais un message d'erreur résolu ici.

  • Editer /etc/yum.repos.d/epel.repo
  • Décommenter les baseurl
  • Commenter les mirrorslist

 

 

Monitoring des processus

Rédigé par gorki - - Aucun commentaire

Le problème :

Légèrement décrit ici : http://hoab.fr/shaarli/?TrwlkA

En réalité suivant le mode de protection, la solution ci-dessus ne marche pas.

Solution :

Si on a un noyau normal, alors hidepid n'est pas *encore* activé par défaut. Dans ce cas, tous les utilisateurs voient les processus et le problème n'existe pas.

Si le mode hidepid a été activé, l'activation de l'option gid permet d'avoir un groupe priviligé qui permet ceci.

Si le patch grsecurity est activé (si on trouve un -grs dans le nom du noyau "uname -a") c'est plus compliqué :

  • si le noyau a été compilé avec un groupe priviligié : retrouver ce groupe et on a le même comportement que le hidepid
  • sinon :
    • recompiler le noyau pour l'ajouter
    • changer de noyau pour avoir une version sans grs
    • utiliser les mécanismes des sudoers (http://hoab.fr/shaarli/?qBeGWA)

J'ai choisi la dernière solution dans un premier temps, le problème étant de reprendre un noyau avec les mêmes options que celui qui existe...

 

Zabbix et monitoring - configurer le monitoring

Rédigé par gorki - - Aucun commentaire

Le problème :

La suite de cet article : http://hoab.fr/zabbix-et-monitoring-installation

Solution :

On a zabbix qui tourne et ensuite ?

Astuce générale : le bouton Refresh / Actualiser = Sauvegarder la configuration...

Plein de petites choses :

  • ajouter un agent sur une machine (la même ou une distante)
  • créer un serveur à monitorer : Configuration > Hôtes
  • lui ajouter des templates (des listes de choses à surveiller) Hôte > monHôteAMoi > Templates
  • pour mysql, vérifier que les métriques remontent bien depuis l'agent. Sur la machine qui héberge l'agent :
    • créer le user zabbix qui peut observer la base :
mysql -uroot -p -e"GRANT USAGE ON *.* TO 'zabbix'@'127.0.0.1' IDENTIFIED BY '123456'";
mysql -uroot -p -e"GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY '123456'";
mysql -uroot -p -e"flush privileges"
mysql -uzabbix -p123456 -e"status"
  • continuer sur la machine qui héberge l'agent :
    • vérifier qu'il y a un fichier : /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
    • pour ajouter des choses spéciques à la connexion au serveur mysql, ce que j'ai trouvé le mieux c'est un script spécifique
    • dans le userparameter_mysql.conf
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | /home/admin/monitortools/zabbix/mysql_zabbix.sh -N | awk '{print $$2}'
  • toujours pour mysql, sur le serveur qui héberge l'agent
    • dans le fichier /home/admin/monitortools/zabbix/mysql_zabbix.sh
      #/bin/bash
      mysql --defaults-extra-file=/home/admin/monitortools/zabbix/.my1.cnf -S /var/run/mysqld/mysqld1.sock $*

       

  • cela peut se tester avec (http://hoab.fr/shaarli/?aPEmew) : zabbix_agentd -t mysql.status[Com_begin]
  • vérifier que les métriques remontent dans Monitoring > Latest Data
    • choisir le serveur configuré plus haut dans les filtres, appliquer
  • si les métriques remontent bien, vous pouvez créer des graphiques et des écrans Monitoring > Ecran
  • maintenant il reste à configurer les alertes
    • Administration > Type de Media : configurer comment vous voulez être notifié
      • pour les emails, cette page configure l'email émetteur ainsi que le serveur SMTP qui accepte d'émettre des emails pour cette adresse. Moi j'avais un serveur SMTP sur mon serveur, je me suis créé un compte et voilà. Sinon utiliser un email et un compte ailleurs. Attention pour les versions Zabbix 2.x c'est un peu galère, il n'y a pas beaucoup d'options
    • Administration > User > myUser > Media
      • c'est là où vous configurer le ou les adresses destinatrices qui vont recevoir les alertes
    • Configuration > Action : les actions à réaliser lorsque les triggers se déclenchent. L'action par défaut prévient l'administrateur de tout, après on peut réaliser des filtres assez avancé suivant les triggers
  • Ajouter des alertes personnalisées
    • Configuration > Template > leTemplateQuiContientLaMétrique > Triggers > Create Trigger (en haut à droite)
    • Les expressions de triggers ne sont pas simples, heureusement il y a un éditeur ! (qui s'ouvre d'une popup à côté)
    • Exemple : dans Configuration > Template > Template OS Linux > Triggers > Create Trigger
      • Déclenchement si CPU Idle < 20% pendant 5 secondes : {Template OS Linux:system.cpu.util[,idle].avg(5s)}<20
      • Qui peut se faire via le bouton "constructeur d'expression"

 

Voilà mes notes pour un début. Ca l'air bien complet avec des triggers de type "tendance" et c'est ce que je cherchais.

Pas très compliqué à mettre en place, j'ai un peu galéré pour les triggers mysql parce que j'ai deux instances de bases sur mon serveur, mais avec l'astuce du shell tout va bien. Et puis surtout ce p*#! de bouton "Actualiser" qui veut dire "Sauvegarder"....

 

Fil RSS des articles