Plugin Munin: open table by database
0 Comments Published août 22nd, 2009 in Administation serveur, Munin, MySQLSuite au précédent plugin munin pour Mysql qui indique les ouvertures de table, il manquait une information pour aider à l’optimisation de mysql: Savoir quelle table provoque les ouvertures: voila le code qui donne ces informations:
#!/bin/sh
#
# Plugin to monitor the number of opened tables on a mysql-server.
#
# Parameters:
#
# config
# autoconf
#
# Configuration variables
#
# mysqlopts - Options to pass to mysql
#
# $Log$
# Revision 1.0 2009/05/1 1:04 ffwill
#
#%# family=auto
#%# capabilities=autoconf
MYSQLOPTS="$mysqlopts"
MYSQL=${mysql:-mysql}
BDD="database list you want monitoring"
TMPFILE="/tmp/munin.mysql_open_tables_by_database"
if [ "$1" = "autoconf" ]; then
$MYSQL --version 2>/dev/null >/dev/null
if [ $? -eq 0 ]
then
$MYSQL $MYSQLOPTS -e 'show open tables' 2>/dev/null >/dev/null
if [ $? -eq 0 ]
then
echo yes
exit 0
else
echo "no (could not connect to mysql)"
fi
else
echo "no (mysqladmin not found)"
fi
exit 1
fi
if [ "$1" = "config" ]; then
echo 'graph_title MySQL Open table by database'
echo 'graph_vlabel Open Tables'
echo 'graph_category mysql'
echo 'graph_args --base 1000'
num=0;
for i in $BDD; do
echo 'opentables_'$i'.label '$i
echo 'opentables_'$i'.min 0'
# echo 'opentables'$i'.type DERIVE'
if [ $num = "0" ]
then
echo 'opentables_'$i'.draw AREA'
else
echo 'opentables_'$i'.draw STACK'
fi
num=1;
done
exit 0
fi
$MYSQL $MYSQLOPTS -e 'show open tables' 2>/dev/null 1>$TMPFILE
echo $result
for i in $BDD; do
res=`grep $i $TMPFILE | wc -l`
echo 'opentables_'$i'.value '$res
done
Vous en avez marre que quand vous ouvrez un pop up, une image,… dans un onglet de firefox celui-ci est redimensionné à la taille de cette image, alors:
- aller dans About:config
- je ferai attention promis
- filtrer avec dom.disable_window_move_resize
- double-cliquer sur la variable afin de la passer a true.
Lors de la mise en place d’un serveur, il peut arriver que certains outils nécessitent obligatoirement un environnement graphique pour s’exécuter, par exemple la partie administration de [search]Funambol[/search].
Sur un serveur classique, il n’y a pas de serveur graphique, et surtout le serveur n’est pas forcement au même endroit que vous…
On va donc installé un système d’affichage distant grâce à X11.
Coté serveur:
Pour rediriger les commandes vers un serveur X11 distant, on va installer un serveur X11 virtuel xvfb, et un gestionnaire de terminal X11 xdm
Ensuite éditer /etc/X11/xdm/Xservers . Remplacer la ligne
:0 local /usr/X11R6/bin/X vt7 -dpi 100 -nolisten tcp
par
:0 local /usr/X11R6/bin
et faites:
pour lancer le gestionaire de terminaux.
coté client:
Si votre poste client est sous linux taper simplement dans un ligne de commande:
-Y permet de valider le transfer X11.
sous windows avec Putty aller dans les option et valider le forward X11
Migration sous linux: problème de résolution d’ écran sous nvidia.
0 Comments Published juin 13th, 2009 in Ubuntu tous les joursLors de migration sous linux il peut apparaitre des problèmes pour reconnaitre la bonne résolution de l’écran. Cela est peut être du à la reconnaissance des fréquences de rafraichissement. Suite à une migration de mon ordinateur principal sous ubuntu j’ai eu quelques problème pour régler la résolution d’un de mes écran IISonic, Je partage ici le méthode de résolution. si un réglage avec l’outil fournit par nVidia:
ne résout pas le problème, alors régler l’écran mal reconnut au plus proche de la résolution souhaité, dans mon cas 1024×768:

réglage résolution d'un ecran sous Ubuntu-linux avec les drivers Nvidia
Le plus simple pour avoir ces valeur est de faire un petit retour sous Windows, et de récupérer ces valeurs dans le menu de votre écran. Il y’en a deux: rafraichissement vertical et rafraichissement horizontal. (il existe bien sur un petit programme sous linux ddcprobe pour les obtenir sous linux, mais il ne donnait aucun résultat dans mon cas). Retourner sous linux et éditer le fichier /etc/X11/xorgf.conf, vous trouverez une section Monitor qui ressemble à cela, par écran installé sur votre système: le premier écran bien reconnut: Section « Monitor » Identifier « Configured Monitor » EndSection et le second le IISOnic
Identifier "Monitor0"
VendorName "Unknown"
ModelName "CRT-0"
HorizSync 28.0 – 85.0
VertRefresh 43.0 – 85.0
EndSection
Vérifier que les deux intervalles HorizSync 28.0 – 85.0 et et VertRefresh 43.0 – 85.0 contiennent bien les valeurs relevées sous Windows. Ensuite dans la section screen qui ressemble à cela:
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "1"
Option "TwinViewXineramaInfoOrder" "DFP-1"
Option "metamodes" "CRT: 1024×768 +1680+0, DFP: nvidia-auto-select +0+0; CRT: NULL, DFP: nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Sur la ligne « metamodes » modifier les informations de votre écran mal reconnut sous la forme x_
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "1"
Option "TwinViewXineramaInfoOrder" "DFP-1"
Option "metamodes" "CRT: <strong>10280×1024_75</strong> +1680+0, DFP: nvidia-auto-select +0+0; CRT: NULL, DFP: nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Filtrage des robots sur Apache et Fail2ban
0 Comments Published juin 11th, 2009 in Apache, SécurisationCe tuto s’inspire fortement de la discutions de ce thread des forums d’OVH. Après quelques passages de robots sur le serveur dont les intentions sont mauvaise; Il recherche sur le serveur des scripts qui possèdent des failles afin d’être exploité par le propriétaire du robot.
L’idéal est de ne pas avoir de scripts avec des failles connu, donc complètement à jours… utopique n’est-ce pas…
Une première méthode pour conter ces recherches est de supprimer tous les accès à [search]apache[/search] sans non de domaine ou mauvais nom de domaine: (cas des wildcard avec [search]dyndns[/search] par exemple). En effet aucun utilisateur arriveront sur votre sites en utilisant l’IP de votre machine…. Par contre il peut arriver que des utilisateurs se trompent de nom de domaine donc faites attention…
Commencer par faire un dossier vide:
Maintenant on va créer un serveur virtuel qui récupère tous les nom de domaine qui ne sont pas déclaré. Dans /etc/apache2/sites-avaible/default, mettre:
DocumentRoot /var/empty/
<Directory /var/empty>
Order Deny,
Allow Deny from All
</Directory>
</VirtualHost>
tous les autre sites garde la forme:
ServerAdmin webmaster@localhost
ServerName ffwill.homelinux.com
……
</VirtualHost>
recharger apache:
Maintenant tous les robots qui accèdent à votre serveur n’utilisant pas un bon nom de domaine ou votre adresse IP se verra refoulé.
Une autre étape est de rajouter ces « attaques » dans le système de détection de [search]fail2ban[/search].
Pour cela on va rajouter une section dans /etc/fail2ban/jail.conf:
enabled = true
port = http,https
filter = apache-nodnsuse
logpath = /var/log/apache*/*error.log
maxretry = 1
dans le cas de DNS avec wildcard, éviter de mettre « maxretry » à 1.
puis on rajoute le filtre correspondant /etc/fail2ban/filter.d/apache_nodnsuse.conf qui contiendra:
failregex = [[]client []] client denied by server configuration: /var/empty/.*
ignoreregex=
En vue d’optimiser mon serveur MySql j’ai réalisé un nouveau plugin. Affin d’optimiser les requêtes sql, MySQL garde ouvert toutes les dernière tables utilisées. Ceci permet d’éviter d’ouvrir et de fermer continuellement une table qui fait l’objet de requêtes régulières. Afin de savoir si le nombre de table qui restent ouvertes est suffisant j’ai fait un petit script qui affiche le nombre d’ouverture de nouvelle table. Ces chiffres sont disponibles dans phpmyadmin dans l’onglet Etat Opened_tables, cependant ce chiffre il représente l’ensemble des ouvertures depuis le démarrage du serveur: pas trèsparlant! Le code s’inspire fortement des autres plugins munin pour mysql voici le code:
#!/bin/sh
#
# Plugin to monitor the number of opened tables on a mysql-server.
#
# Parameters:
#
# config
# autoconf
#
# Configuration variables
#
# mysqlopts - Options to pass to mysql
#
# $Log$
# Revision 1.0 2009/05/1 1:04 ffwill
#
#%# family=auto
#%# capabilities=autoconf
MYSQLOPTS="$mysqlopts"
MYSQLADMIN=${mysqladmin:-mysqladmin}
if [ "$1" = "autoconf" ]; then
$MYSQLADMIN --version 2>/dev/null >/dev/null
if [ $? -eq 0 ]
then
$MYSQLADMIN $MYSQLOPTS status 2>/dev/null >/dev/null
if [ $? -eq 0 ]
then
echo yes
exit 0
else
echo "no (could not connect to mysql)"
fi
else
echo "no (mysqladmin not found)"
fi
exit 1
fi
if [ "$1" = "config" ]; then
echo 'graph_title MySQL Open table'
echo 'graph_vlabel Open Tables/s'
echo 'graph_category mysql'
echo 'opentables.label mysql open tables'
echo 'opentables.min 0'
echo 'opentables.type DERIVE'
echo 'graph_args --base 1000'
exit 0
fi
/usr/bin/printf "opentables.value "
($MYSQLADMIN $MYSQLOPTS status 2>/dev/null || echo 'a a a U') | awk '{print $11}'
le résultat:

Plugin munin: L'ouverture de table mysql

Plugin munin: L'ouverture de table mysql
Installer Qt 4.5 sous Ubutnu
0 Comments Published avril 26th, 2009 in Devellopement sous Ubuntu, Qt4J’ai tenté d’utiliser QTCreator à partir des dépôts mais il manque les sources de QT et est donc non utilisable directement….
J’ai donc téléchargé QtCreator avec la librairie Qt pré-compilé directement sur le site de QtSoftware
comme indiqué sur le site l’installation se fait facilement avec:
puis
ensuite si vous chercher directement à compiler un projet d’exemple vous risquer de tomber sur une erreur du type:
/usr/bin/ld: cannot find -lfreetype
ou encore
/usr/bin/ld: cannot find -lgobject-2.0 /usr/bin/ld: cannot find -lSM /usr/bin/ld: cannot find -lrender
c’est qu’il manque des librairies de développement sur votre système, dans mon cas il a fallut installer en plus (cela dépend de ce que vous avez installer auparavant…):
libfreetyper6-dev libglib2.0-dev libsm-dev libXrender-dev libfontconfig-dev
donc un
vous pouvez utiliser le gestionnaire de paquets,
ou cliquer simplement sur ce lien: apt://libfreetype6-dev,libglib2.0-dev,libsm-dev,libxrender-dev,libfontconfig-dev, qui installera tous ce qu’il faut.
(testé et fonctionnel sous Ubuntu Linux Jaunty Jackalope 9.04)
Édit: 7/08/2009: pour compiler les projets contenant de l’OpenGl vous aurez besoin de: mesa-common-dev, pour vous éviter:
erreur: GL/gl.h : Aucun fichier ou dossier de ce type
Après avoir bidouiller mon serveur sous Ubuntu-Server depuis plus d’un an, J’ai eu envie de passer mon ordinateur principal sous Linux cette ordinateur servant principalement d’ordinateur de loisir multimédia et de développement (faut bien assumer son status de geek…)
Mes billets trouverons leurs places dans deux nouvelles catégories: Ubuntu tous les jours et Développement sous Ubuntu
Plugin munin pour monitoring de NeufBox V4: le nombre d’utilisateur
0 Comments Published avril 20th, 2009 in Administation serveur, Munin, Neuf-BoxVoila un nouveau script pour le [search]monitoring de Neuf Box[/search] avec munin: J’ai mis quelques temps avant de le diffuser. En effet il y’ avait un problème de détection de client non connecté qui se remarque par le nombre de client total qui ne vaut pas la somme des clients sur les différents réseau lan2 lan3 lan4 et Wifi (wlan0). Mais depuis quelques temps plus aucun bug… A vérifier….
Voila le plus important le code du script:
##############################################################################
## DESCRIPTION ##
##############################################################################
#
# Ce script reupère les donnée sur la page "detecttion des intrusions" et
#formate ces donnée pour munin
#utilise XMLStarlet
#apt-get install xmlstarlet
#
#le script comprent les commandes:
# -> autoconf
# -> config
# -> <vide>
##############################################################################
## Variable de configuration ##
##############################################################################
#l‘adresse ip du modem routeur TELE2
IP_NEUFBOX="192.168.1.1"
#############################################################################
## CONSTANTE POUR FACILITE L’EVOLUTION DU SCRIPT ##
#############################################################################
#
#ces constantes sont là pour s‘adapter à d’eventuelles modifications
#du firmware du modem ou pour permetre au script d‘évoluer
#
#page de l’interface WEB qui liste les info de la neuf
PAGE_INFO="/stb/info"
#fichier temporaire ou sera stocké cette page pour faire les traitements
PAGE_FILE="/tmp/temp.munin.neufboxV4.stb.info"
# PORTS diponible sur la neufbox
PORTS="lan2 lan3 lan4 wlan0"
#############################################################################
## SCRIPT ##
#############################################################################
getfile()
{
wget -q -O"$PAGE_FILE" "http://$IP_NEUFBOX$PAGE_INFO"
}
if [ "$1" = "autoconf" ]; then
#on recupère la page
getfile
#on verifie que c‘est la bonne page avec son titre
ret=$(grep "<lan>" "$PAGE_FILE" | wc -l)
if [ "$ret" > "0" ] ; then
echo yes
exit 0
else
echo no
exit 1
fi
fi
if [ "$1" = "config" ]; then
echo ‘graph_title NeufBox Clients Counts‘
echo ‘graph_args –base 1000 -l 0 -u 1‘
echo ‘graph_vlabel Clients Count‘
echo ‘graph_category NEUFBOXV4‘
for s in $PORTS
do
echo "$s"’.label ‘"$s"
if [ "$s" = "lan2" ]; then
echo "$s"’.draw AREA‘
else
echo "$s"’.draw STACK‘
fi
done
echo ‘total.label total‘
echo ‘total.draw LINE1‘
exit 0
fi
if ! [ -f $PAGE_FILE ]; then
getfile
elif [ $(expr `date '+%s'` - `date -r $PAGE_FILE '+%s'`) -ge 250 ]; then
getfile
fi
#repartition des ports
port_used=$(xmlstarlet sel -T -t -m /info/lan/client -v "port" -n $PAGE_FILE)
#echo $port_used
for s in $PORTS
do
ret=$(echo $port_used | grep -o $s | wc -l)
echo "$s"’.value ‘$ret
done
#nombre de clients total
nbclient=$(xmlstarlet sel -t -v "count(//info/lan/client)" $PAGE_FILE)
echo ‘total.value ‘$nbclient
Et pour télécharger le plugin c’est ici ou ici.
Le résultat en image:
Le resultat en temps réel c’est ici.
Plugins Munin pour monitoring de Neuf Box: Les status
0 Comments Published avril 6th, 2009 in Munin, Neuf-BoxVoici le deuxième plugins pour le [search]monitoring de Neuf Box[/search]: celui-ci consulte les status des différents éléments de la neuf box: la ligne DSL, le PPP ( »connexion avec internet »), et la VOIP (le téléphone), Ce plugin marche comme le précédent basé sur la page: http://192.168.1.1/stb/info.
Voici le code du plugin:
(sous license GNU-GPL)
##############################################################################
## DESCRIPTION ##
##############################################################################
#
# Ce script reupère les donnée sur la page "detecttion des intrusions" et
#formate ces donnée pour munin
#utilise XMLStarlet
#apt-get install xmlstarlet
#
#le script comprent les commandes:
# -> autoconf
# -> config
# -> <vide>
##############################################################################
## Variable de configuration ##
##############################################################################
#l‘adresse ip du modem routeur TELE2
IP_NEUFBOX="192.168.1.1"
#############################################################################
## CONSTANTE POUR FACILITE L’EVOLUTION DU SCRIPT ##
#############################################################################
#
#ces constantes sont là pour s‘adapter à d’eventuelles modifications
#du firmware du modem ou pour permetre au script d‘évoluer
#
#page de l’interface WEB qui liste les info de la neuf
PAGE_INFO="/stb/info"
#fichier temporaire ou sera stocké cette page pour faire les traitements
PAGE_FILE="/tmp/temp.munin.neufboxV4.stb.info"
#services suportant le champ status
# la voip est traité part
SERVICES="dsl ppp voip"
#############################################################################
## SCRIPT ##
#############################################################################
getfile()
{
wget -q -O"$PAGE_FILE" "http://$IP_NEUFBOX$PAGE_INFO"
}
if [ "$1" = "autoconf" ]; then
#on recupère la page
getfile
#on verifie que c‘est la bonne page avec son titre
ret=$(grep "status" "$PAGE_FILE" | wc -l)
if [ "$ret" > "0" ] ; then
echo yes
exit 0
else
echo no
exit 1
fi
fi
if [ "$1" = "config" ]; then
echo ‘graph_title NeufBox Status‘
echo ‘graph_args –base 1000 -l 0 -u 1‘
echo ‘graph_vlabel Status 1:up 0:down‘
echo ‘graph_category NEUFBOXV4‘
for s in $SERVICES
do
echo "$s"’_status.label ‘"$s"
echo "$s"’_status.min 0‘
echo "$s"’_status.max 1‘
done
exit 0
fi
if ! [ -f $PAGE_FILE ]; then
getfile
elif [ $(expr `date '+%s'` - `date -r $PAGE_FILE '+%s'`) -ge 250 ]; then
getfile
fi
for s in $SERVICES
do
if [ "$s" = "voip" ]; then
ret=$(xmlstarlet sel -t -v "/info/voip/linestatus" $PAGE_FILE)
else
ret=$(xmlstarlet sel -t -v "/info/$s/status" $PAGE_FILE)
fi
if [ "$ret" = "up" ]; then
echo "$s"’_status.value 1‘
else
echo "$s"’_status.value 0‘
fi
done
Et pour télécharger le plugin c’est ici ou ici.
Et le resultat en image:
(rien de pertinent: y’a pas de problème donc tous les status restent à UP=1)

et le resultat en temps réel.

