mercredi 4 novembre 2009

Utilisation des variables dans zabbix : "flexible user parameters"

J'ai découvert il y a très peu de temps qu'on pouvait utiliser des variables dans le fichier de configuration de l'agent zabbix. Avant cette découverte, je mettais en place un "User parameter" par test et ensuite au niveau de l'interface web, j'utilisais autant de clés qu'il y avait de tests définis dans le fichier de configuration. Cela donnait un fichier de ce type :

UserParameter=testPort1, script IP1 Port1
UserParameter=testPort2, script IP2 Port2

Or pour ces deux tests, j'utilise le même script, seuls les paramètres passés en entrée du script changent.

C'est là que les variables apparaissent ! Maintenant dans le fichier de configuration, j'ai quelque chose de ce genre :

UserParameter=testPort[*], script $1 $2

Et dans l'interface web, vous définissez autant d'items que vous avez d'URL à tester. Vous définissez votre item avec les paramètres suivants (partie key) :

Item 1 :
testPort[localhost,8080]

Item 2 :
testPort[localhost,9000]

Item3 :
testPort[localhost,3306]

C'est beaucoup plus rapide. Vous pouvez de ce fait mettre en place une multitude de tests génériques (Jonas, Oracle, MySQL, pages web, ...) sans modifier votre fichier de configuration.

Si vous souhaitez pousser la variabilisation à fond, vous pouvez mettre en place ce type de test dans le fichier de configuration de l'agent :

UserParameter=executeScript[*], $1 $2 $3

Et dans l'interface web :

key : executeScript[/cheminVersMonScript/Script.ksh,localhost,9000]

Vous n'aurez plus besoin d'indiquer les noms des scripts dans les fichiers de configuration des agents.

Pour retrouver toutes ces informations, allez à la page 120 du manuel zabbix, version 1.6.

Posté par fatihaelh - - zabbix - Commentaires [0] - Rétroliens [0] - Permalien [#]

lundi 2 novembre 2009

Copenhague 2009, ça vous dit quelque chose ?

Posté par fatihaelh - - Actualités - Commentaires [0] - Rétroliens [0] - Permalien [#]

mardi 27 octobre 2009

Récupérer la mémoire totale sous Solaris avec la commande prtconf

Quand je lance un vmstat, je n'ai pas accès à la mémoire totale sous Solaris. Je suis tombée sur un site qui m'a indiqué comment trouver cette précieuse information. Voilà ce que j'obtiens sous un solaris 10 :

bash-3.00$ prtconf | grep Memory
Memory size: 57344 Megabytes

Posté par fatihaelh - - Unix - Commentaires [0] - Rétroliens [0] - Permalien [#]

mardi 20 octobre 2009

Equivalent du wget sous solaris 10

Je souhaite tester l'accès à certaines pages web via l'outil très célèbre wget. J'utilise d'habitude la commande wget sous Linux. Et là, je suis surprise de voir que cela ne fonctionne pas sous Solaris 10. En effet, j'ai ce message d'erreur :

bash-3.00$ wget http://localhost:8080/
bash: wget: command not found

En fait, il faut indiquer ceci pour que ça fonctionne :
bash-3.00$ /usr/sfw/bin/wget http://localhost:8080/
--17:27:26--  http://localhost:8080/
           => `index.html'
Connecting to localhost:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]

    [ <=>                                                    ] 10,737        --.--K/s

17:27:26 (85.26 MB/s) - `index.html' saved [10737]

Vous pouvez maintenant utiliser la commande wget sous Solaris 10 avec toutes les options que j'avais citées dans un précédent post.

Merci à ce forum.

Posté par fatihaelh - - Unix - Commentaires [2] - Rétroliens [0] - Permalien [#]

dimanche 18 octobre 2009

Saas, ça veut dire quoi au juste ?

Aujourd'hui, j'ai appris un nouveau terme, très utilisé dans le monde de l'informatique en ce moment : Saas. C'est sur le site de l'APEC que j'ai enfin su ce que voulait dire cette abréviation : "S" pour Software, a pour "as", a pour "a" et "s" pour "service". En effet, c'est un terme anglais, alors on assemble le tout et cela donne "Software as a service" ou encore "logiciel en tant que service". 

Quelles en sont les principales utilisations ?

D'après le site de wikipedia Les principales applications actuelles de ce modèle sont la relation client (CRM), la vidéo conférence, la gestion des ressources humaines, les communications unifiées, le travail collaboratif, les courriels.

Pourquoi choisir Saas ?

Les entreprises choisissent ce système car il est moins coûteux, plus flexible étant donné que les entreprises paient non pas une licence mais une location en fonction du nombre d'utilisateurs.

Qui propose Saas ?

Pour cela, j'effectue une petite recherche sur mes flux Google Reader et je tombe sur 32 articles qui évoquent ce système. J'ai continué ensuite mes recherches sur le web et j'ai trouvé un certain nombre de sociétés positionnés sur cette "niche" :

Saas, secteur d'avenir pour les cadres ?

Oui, répond l'APEC, je vous invite à lire leur article.

Et vous, connaissiez-vous le Saas ?

Posté par fatihaelh - - Actualités - Commentaires [0] - Rétroliens [0] - Permalien [#]

vendredi 9 octobre 2009

Script perl : Tester une connexion via un telnet en perl

J'ai trouvé ce script sur un forum. Son but est d'effectuer un telnet en prenant comme paramètre une IP et un port. Ce qui est génial c'est qu'il gère les timeout, alors que si vous faîtes le test en ligne de commande vous pouvez attendre plusieurs minutes avant d'avoir une réponse.

Ce qui est intéressant c'est qu'en gérant les timeout, ce script perl peut être intégré dans un outil de monitoring comme zabbix. En effet, le serveur zabbix a un timeout de 30 secondes maximum, ce qui implique un problème de récupération des données sur le master.

Ci-dessous le script en question :

#!/bin/perl

use Net::Ping;

my ($host,$port)=(shift,shift);

my $timeout=5;

    $p = Net::Ping->new("tcp", $timeout);

    $p->{port_num} = $port;

    $ret=$p->ping($host);

    # 0=ok, 1=non joignable

    undef($p);

    exit($ret==0);

Appel du script :
testTelnet.pl IP Port



Posté par fatihaelh - - PERL - Commentaires [2] - Rétroliens [0] - Permalien [#]

mercredi 7 octobre 2009

Définir une variable d'environnement sous Windows

Alors quelle est la procédure à suivre pour définir une variable d'environnement sous Windows ?
1. Vous ouvrez le panneau de configuration
2. Vous choisissez l'icône système
3. Vous cliquez sur l'onglet avancé
4. Vous cliquez sur le bouton variables d'environnement
5. Au niveau des variables système, vous cliquez sur Nouveau
6. Saisissez la variable à définir, exemple : JAVA_HOME pour le nom de la variable et pour la valeur le chemin vers le répertoire

Si vous voulez juste faire un test, vous pouvez ouvrir une invite de commandes et saisir directement la valeur de la variable d'environnement :
1. cliquez sur Démarrer
2. cliquez sur Exécuter
3. Tapez cmd
4. Exemple avec la variable JAVA_HOME
set JAVA_HOME=..........
5. Vérifiez que la variable a bien été prise en compte :
echo %JAVA_HOME% doit vous afficher la valeur

N'étant pas une adepte de Windows, j'ai demandé de l'aide à mon collègue Ludovic ;)

Posté par fatihaelh - - Windows - Commentaires [1] - Rétroliens [0] - Permalien [#]

Commande tail sous Solaris, exemple d'une différence avec Linux

Vous pensez sûrement que la commande tail est identique quelque soit l'environnement ? Et bien, non ce n'est pas le cas.

Si vous avez l'erreur suivante sous Solaris :
bash-3.00$ tail -n 1 monfichier.log
usage: tail [+/-[n][lbc][f]] [file]
       tail [+/-[n][l][r|f]] [file]

Vous pouvez la corriger tout simplement en la remplaçant par la commande suivante :
bash-3.00$ tail -1 monfichier.log

En résumé, remplacez tail -n nombre_lignes monfichier par tail -nombre de lignes monfichier

Posté par fatihaelh - - Unix - Commentaires [0] - Rétroliens [0] - Permalien [#]

mardi 6 octobre 2009

error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory

Je souhaite exécuter une requête SQL dans une base de données Oracle, en utilisant sqlplus. Ma requête est dans un script ksh que je lance en crontab toutes les 10 minutes. Mon script ne fonctionne pas, pourquoi ?

J'ai cette erreur :
error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory

C'est une erreur classique, facile à contourner. En effet, dans le script ksh, il faut redéfinir toutes les variables nécessaires pour Oracle, à savoir :
- ORACLE_HOME
- ORACLE_SID
- LD_LIBRARY_PATH
- ORACLE_USER
- ORA_PASSWD
- NLS_LANG
- DATE_FORMAT
- PATH
- etc...

Puis vous devez intégrer la ligne suivante dans votre script :
export PATH NLS_LANG  ORA_USER ORACLE_SID ORA_PASSWD LD_LIBRARY_PATH

Posté par fatihaelh - - Oracle - Commentaires [2] - Rétroliens [0] - Permalien [#]

mardi 29 septembre 2009

Informations sur les tablespaces Oracle en un script

La question du jour est la suivante : comment savoir tout ce qu'il y a à savoir sur les tablespaces d'une base de données Oracle ?

Si comme moi, vous êtes plus MySQL qu'Oracle, plus Linux que Windows, ce script SQL est pour vous !

Vous devez d'abord vous connecter à la base de données Oracle avec sqlplus puis à lancer la requête suivante :

set echo off
set feedback off
set verify off
set linesize 512

set term off
COLUMN block_size NOPRINT new_value block_size
SELECT
   value block_size
FROM
   v$parameter
WHERE
   name='db_block_size';

set term on

prompt ------------------------------
prompt - Infos sur les tablespaces --
prompt ------------------------------

col Tablespace_name Heading 'Tablespace'
col Megs_Alloc      Heading 'Mo alloués'
col Megs_Free       Heading 'Mo libres'
col Megs_Used       Heading 'Mo utilisés'
col Pct_Free        Heading 'Pct Free'
col Pct_Used        Heading 'Pct Used'
col Init_Ext        Heading 'Init Ext'
col Next_Ext        Heading 'Next Ext'
col Min_Ext         Heading 'Min Ext'
col Max_Ext         Heading 'Max Ext'
col Num_Segs        Heading 'Nbre Segments'
col Num_Exts        Heading 'Nbre Extents'


SELECT
   c.tablespace_name,
   round(a.bytes/1048576) Megs_Alloc,
   round(b.bytes/1048576) Megs_Free,
   round((a.bytes-b.bytes)/1048576) Megs_Used,
   round(b.bytes/a.bytes * 100) Pct_Free,
   round((a.bytes-b.bytes)/a.bytes * 100) Pct_Used,
   round(c.initial_extent/1048576) Init_Ext,
   round(c.next_extent/1048576) Next_Ext,
   round(a.minbytes/1048576) Min_Ext,
   round(a.maxbytes/1048576) Max_Ext,
   nvl(d.num_segs,0) Num_segs,
   nvl(d.num_exts,0) Num_Exts
FROM
   ( SELECT
        tablespace_name,
        sum(a.bytes) bytes,
        min(a.bytes) minbytes,
        max(a.bytes) maxbytes
     FROM
        sys.dba_data_files a
     GROUP BY tablespace_name) a,
   ( SELECT
        a.tablespace_name,
        nvl(sum(b.bytes),0) bytes
     FROM
        sys.dba_data_files a,
        sys.dba_free_space b
     WHERE
        a.tablespace_name = b.tablespace_name (+)
     AND
        a.file_id = b.file_id (+)
     GROUP BY
        a.tablespace_name) b,
    sys.dba_tablespaces c,
    ( SELECT
        tablespace_name,
        count(distinct segment_name) num_segs,
        count(extent_id) num_exts
      FROM
        sys.dba_extents
      GROUP BY
      tablespace_name) d
WHERE
   a.tablespace_name = b.tablespace_name(+)
AND
   a.tablespace_name = c.tablespace_name
AND
   a.tablespace_name = d.tablespace_name(+)
ORDER BY
   c.tablespace_name;

Pour avoir quelque chose de plus propre, vous pouvez récupérer le résultat de la requête dans un fichier. Il vous suffit d'ajouter la commande :
spool votreFichier avant la requête SQL
puis :
spool off
exit

après la requête SQL


Merci au site developpez.com.

Posté par fatihaelh - - Oracle - Commentaires [2] - Rétroliens [0] - Permalien [#]



Page suivante »