Script : Ajout de hosts dans Zabbix

Si vous souhaitez ajouter des hosts dans Zabbix il n’y a pas trente six solutions :

  • A la mano
  • Le mode discovery (onglet configuration dans Zabbix)
  • Injection dans la base mysql
  • Import via un fichier de type XML (ou JSON)

L’import via un fichier XML ressort comme la plus rapide, simple et pratique des solutions à mettre en place, c’est pourquoi nous avons donc écrit un script PowerShell permettant de générer un fichier XML issu d’une liste de Hosts préalablement renseignés au sein d’un fichier à plat.

Prérequis :

  • Décompressez le fichier “Zabbix_Import_Host.rar”
  • Renseignez le fichier “Servers_Import.txt” avec le nom des Hosts au format FDQN (exemple : Server1.domain.local), un serveur par ligne.
  • Modifier le script “Zabbix_Import_Host.ps1”
    • renseignez la variable $ZabbixGrp (indiquez le nom du groupe auquel vos Hosts devront appartenir)
    • renseignez la variable $ZabbixTpl (indiquez le nom du template auquel vos  Hosts seront associés)
    • Modifiez la variable $AgentConnect (0 = Use DNS  – 1 = Use IP ; par défaut la valeur est à 0)

Le script va récupérer l’IP de chaque Host (les hosts n’ayant pas d’IP sont exclus volontairement), afin de permettre une fois les Hosts importés d’interroger les clients Zabbix via leurs IP ou leur nom DNS.

 

Zabbix_Import_srv1Une fois le script exécuté, un fichier “Zabbix_Import_Srv.xml” est créé à la racine du dossier où se trouve le script “Zabbix_Import_Host.ps1”.

 

Il ne reste plus qu’à importer dans Zabbix (et aussi dans MonitorX 😉 ) vos Hosts (le script a été testé avec Zabbix ver 2.4).

 

Zabbix_Import_srv2
Dans Zabbix allez dans l’onglet Configuration, puis cliquez sur Host et cliquez sur le bouton Import.

 

Zabbix_Import_srv3
Cliquez sur le bouton Choisissez un fichier
Sélectionnez le fichier “Zabbix_Import_Srv.xml” précédemment créé
Cliquez sur le bouton Import

 

Zabbix_Import_srv4Un bandeau sur fond vert confirme le succès de l’import

 

Download_2Zabbix_Import_Host.rar

Post to Twitter

Zabbix : Template XenApp 7.x

Cela faisait longtemps qu’on en parlait, cette fois on s’y est collé 🙂 .

Nous avons donc mis en place un template Zabbix orienté XenApp 7.x permettant une supervision et un monitoring de base (comprenant les parties OS et Citrix)

Le template regroupe trois templates :

  • Template Windows 2012
  • Template DDC
  • Template Worker

 

Zab_Temp-XA7x-6Les graphs cpu, mémoire, swap et disque sont disponibles via l’écran screen de chaque host

Items Template Windows 2012 :

  • Agent ping
  • Free disk space %
  • Free swap space
  • Incoming network traffic (sur toutes les cartes)
  • Outgoing network traffic (sur toutes les cartes)
  • Memory_usage
  • Memory_usage %
  • Port 135MSRPC
  • Port 139NetBIOS-ssn
  • Port 445NetBIOS-ssn
  • Processor % Load
  • Service DNS Client
  • Service Group Policy Client
  • Service Local Session Manager
  • Service Netlogon
  • Service Print Spooler
  • Service Remote Procedure Call (RPC)
  • Service RPC Endpoint Mapper
  • Service Security Accounts Manager
  • Service Server
  • Service User Profile Service
  • Service Windows Event Log
  • Service Windows Management Instrumentation
  • Service Windows Time
  • Service Workstation
  • Swap space (total)
  • Swap space used
  • System uptime
  • Total disk space
  • Total memory
  • Used disk space

 

Items Citrix XA_XD 7.x Worker :

  • Service Citrix Stack Control Service
  • Service Citrix Smart Card Service
  • Service Citrix Services Manager
  • Service Citrix Pvs for VMs agent
  • Service Citrix Profile Management
  • Service Citrix Print Manager Service
  • Service Citrix MultiTouch Redirection Service
  • Service Citrix Mobile Receiver Virtual Channel
  • Service Citrix Location and Sensor Virtual Channel Service
  • Service Citrix HDX MediaStream for Flash Service
  • Service Citrix Group Policy Engine
  • Service Citrix End User Experiencing Monitoring
  • Service Citrix Encryption Service
  • Service Citrix Diagnostic Facility COM Server
  • Service Citrix Device Redirector Service
  • Service Citrix Desktop Service
  • VDA Total sessions
  • VDA Total Desktop sessions
  • VDA Total App sessions

 

Items Citrix XA_XD 7.x DDC :

  • Citrix Database connected
  • Service Citrix Storefront Service
  • Service Citrix Storefront Privileged Administration Service
  • Service Citrix Monitor Service
  • Service Citrix Machine Creation Service
  • Service Citrix Host Service
  • Service Citrix Environment Test Service
  • Service Citrix Diagnostic Facility COM Server
  • Service Citrix Delegated Administration Service
  • Service Citrix Configuration Service
  • Service Citrix Configuration Logging Service
  • Service Citrix Broker Service
  • Service Citrix Analytics
  • Service Citrix AD Identity Service

Vous pouvez aussi importer ce template dans MonitorX .

 

Download_2Zabbix_Template_XaXd_7x.xml

Post to Twitter

Zabbix : erreur “Zabbix unreachable poller processes more than 75 % busy”

Sur un de nos serveurs Zabbix de prod (pas encore migré sous MonitorX 🙂 ) nous avons rencontré l’erreur :

Zabbix unreachable poller processes more than 75 % busy

Zabbix_Error

 

En effet, plusieurs hosts ne répondaient plus en SNMP, afin de supprimer ce message direction le fichier “zabbix_server.conf” afin de modifier le “StartPollersUnreachable” et de le passer à 20 (StartPollersUnreachable=20)

“C’est quoi le StartPollersUnreachable” 😉 .

Error1
Plus d’info chez Zabbix

Post to Twitter

MonitorX (us version)

MonitorX is a Zabbix non-official appliance dedicated to “XenApp” (which uses the XenApp 6.5 template). It allows you to monitor your XenApp 6.5 environment, including your Web Interface/StoreFront/NetScaler 10.x.

The appliance runs on a Debian Wheezy 7.8 (2 vCPU, 4Gb RAM and 40Gb thin provisioned disk), configured to use DHCP with the following modules:

  • apache2
  • mysql-server + mysql-client
  • php5-mysql libapache2-mod-php5
  • phpmyadmin
  • zabbix 2.4.4
  • zabbix agent 2.2.7

Continue reading “MonitorX (us version)”

Post to Twitter

MonitorX (fr version)

MonitorX est une appliance non officielle ZABBIX dédiée “XenApp” (qui reprend notamment le template XenApp 6.5), permettant rapidement et simplement de superviser/Monitorer un environnement XenApp 6.5 (avec ses Webi /StoreFront/Netscaler 10x. ).

L’appliance repose sur une Debian Wheezy 7.8, (2 Vcpu, 4Go de ram et 40 Go de DD en thin) en DHCP (le mot de passe root est “password!01” on vous conseille fortement de le changer) avec les modules ci-dessous :

  • apache2
  • mysql-server + mysql-client
  • php5-mysql libapache2-mod-php5
  • phpmyadmin
  • zabbix 2.4.4
  • zabbix agent 2.2.7

 

Au préalable, si vous ne connaissez pas ZABBIX , nous vous conseillons d’aller faire un tour sur http://www.zabbix.com et http://www.monitoring-fr.org/solutions/zabbix/.

Dans un premier temps, veuillez décompacter le fichier MonitorX.rar (607 Mo), une fois décompacté vous obtenez deux dossiers :

  • Le dossier OVA qui contient l’ova à importer
  • Le dossier Zabbix_agent qui contient l’agent zabbix windows (avec le script permettant l’installation de l’agent et le service associé)

 

Installation de l’appliance :

  1. Importez dans votre hyperviseur favori l’ova “MonitorX.ova” (dans notre cas Esxi 5.5)
  2. Configurez la partie IP si vous ne souhaitez pas rester en DHCP (attention si vous changez le nom du Hostname (ZAB01 par défaut), pensez à changer aussi le nom du hostname dans Zabbix, voir en fin de billet)
    1. Connectez-vous en SSH (via PuTTY par exemple et choisissez le menu 5) via le compte root (mot de passe : password!01)

Menu-MonitorX
Les fans de Sexilog auront reconnu le SexiMenu que nous avons adapté à MonitorX 🙂

 

Lancez dans un navigateur l’url “http://IpMonitorX”

MonitorX_acceuile_ZabbixRenseignez les champs Username (admin) et Password (zabbix)

 

Activation du serveur Zabbix :

  1. Allez dans Configuration-Host

MonitorX_EnableSrv_ZabbixCliquez sur Disabled afin d’activer la supervision/monitoring serveur Zabbix

Ajout des hosts :

  1. Déploiement de l’agent Zabbix  sur vos serveurs XenApp
    1. Copiez le répertoire  “Zabbix_Agent_Install” sur un serveur d’administration de votre ferme XenApp.
    2. Exécutez dans une console PowerShell le script “Zabbix_Agent_Install.ps1”.
    3. Via le menu vous pourrez :
      – Modifiez l’IP du server Zabbix (renseigné dans le fichier zabbix_agentd.win.conf)
      – Déployez l’agent Zabbix sur tous les serveurs membres de la ferme XenApp en cours
      – Ouvrir et modifiez le fichier contenant la liste des serveurs sur lesquels vous souhaitez déployer l’agent Zabbix ( si vous ne souhaitez pas déployer    l’agent Zabbix sur tous les serveurs membres de la ferme XenApp en cours)
      – Déployez l’agent Zabbix sur les serveurs inscrits dans le fichier Servers.txt

MonitorXMenuLa première étape est de changer l’IP du serveur Zabbix configuré par l’IP de votre serveur MonitorX (menu 1)
Une fois le déploiement terminé, un fichier de log (StatutAgentInstall.txt) est disponible dans le dossier Zabbix_Agent_Install.

  1. Ajoutez vos hosts dans Zabbix
    1. Via le discovery rule “XenApp_Discover” (allez dans Configuration-Discovery, modifiez le range IP de la règle “XenApp_Discover”, activez la règle et cliquez sur Update).
    2. Ajoutez les hosts manuellement (pour les courageux 🙂  )
      • Ajoutez les  hosts XenApp dans le groupe “GRP_Citrix_XenApp_6.5”
      • Associez les hosts XenApp au template “TPL_Citrix_XenApp_6.5”
      • Associez les hosts de type Webi/StoreFront (Windows 2008 R2) au template “TPL_Windows_IIS_7.5”

 

Si vous utilisez Edgesight (plus pour très longtemps 😉 ) ou UPM il vous faudra activez les items dans le template “TPL_Citrix_XenApp_6.5”.
Allez Dans l’onglet Configuration-Template , puis cliquez sur TPL_Citrix_XenApp_6.5 et allez dans Items.

MonitorXTemplate_ItemsDisabledCliquez sur Disabled afin d’activer les items

 

Renommez le serveur dans Zabbix (Si vous avez renommé le serveur MonitorX):

  • Connectez-vous en SSH sur le serveur MonitorX
  • Lancez la commande “vi /etc/zabbix/web/zabbix.conf.php”

MonitorX_ZabbixHostnameVi
Modifiez le nom du serveur Zabbix ($ZBX_SERVER = ‘ZAB01’; et $ZBX_SERVER_NAME = ‘ZAB01’; ) et enregistrez le fichier (commande vi “:wq”), pour les réfractaires au “vi” vous pouvez passer par WinSCP.

Si vous ne renommez pas le Hostname dans Zabbix vous obtiendrez l’erreur ci-dessous :

Zabbix server is not running: the information displayed may not be current

ZabbisErrorPas d’inquiétude cependant, ce message dans le cas présent n’a pas d’impact sur les mises à jour des hosts ou autres

 

 

Administrer la base Zabbix
http://IpMonitorX/phpmyadmin ( root/password!01)

 

Et voila ce que ça donne 🙂 .

MonitorXSrvLes graphiques par host (onglet screen de chaque host)

 

 MonitorXAllSrv
Le graphique des CCU de la ferme XenApp (Onglet Monitoring-Screens)

 

Download_2MonitorX.rar

Post to Twitter

Zabbix : remplacer l’unité K dans les graphiques

Cela faisait quelques temps que nous souhaitions changer l’affichage des valeurs de nos graphiques de CCU, en effet par défaut Zabbix affiche les valeurs égales ou supérieures à 1000 dans un format “multiplicateur” (exemple 1500 = 1.50 K) si vous ne spécifiez pas une unité de mesure (‘%’, ‘ms’, ‘rpm’, ‘RPM’).

 

Grp01Avec les fameux K

 

Afin de pouvoir afficher les valeurs dans leur format d’origine il faut rajouter dans la blacklist de Zabbix un caractère (ou symbole) qui une fois inséré dans le champ “Unit” des hosts permettra d’afficher la valeur dans son format initial accompagné du caractère (ou symbole) rajouté dans la blacklist (on vous déconseille de rentrer une valeur null 😉 ).

Pour insérer un caractère (ou symbole) dans la blacklist il faut modifier le fichier  “func.inc.php” situé dans votre server Zabbix (usr/share/zabbix/include) et rajouter dans la variable $blacklist votre caractère (ou symbole).

Exemple : $blackList = array(‘%’, ‘ms’, ‘rpm’, ‘RPM’, ‘c’);

 

Grp02Sans les K c’est mieux 🙂

 

Quelques liens où on parle de blacklist Zabbix :

Post to Twitter

Template Zabbix XenApp 6.5

Cela faisait quelque temps que nous souhaitions mettre en place un template Zabbix dédié XenApp 6.5 (pas de monitoring de type ZDC/XML broker ou Webi, ça fera l’objet d’un prochain billet 😉 ), au passage ce template a été réalisé sous Zabbix 2.4.

Afin que ce  template XenApp 6.5  puisse être le plus compatible tout langage, nous avons utilisé les “ID” des compteurs perfmon (ce que permet facilement Zabbix, concernant les compteurs perfmon propre à XenApp ils ne sont pas concernés car nous avons constaté qu’entre un 2008 Fr et un 2008 Us les “ID” ne correspondaient pas, mais comme on est sympa on vous a mis dans le champ description des items XenApp la version perfmon US).

 

Le template comprend 30 items (certains items sont liés afin de permettre des valeurs calculées), 21 trigers, un screen avec cinq graphiques (afin de pouvoir rapidement lors d’une recherche sur un host de pouvoir visualiser graphiquement.


Zabbix_TemplateItems
Bien sur ces items correspondent à un monitoring et une supervision globale (si vous avez d’autres items à rajouter n’hésitez pas à les partager)

 

Le template comprend cinq graphiques et un screen (le screen reprenant les cinq graphiques afin de permettre un affichage rapide des graphiques).

  • Cpu load
  • Disk usage
  • Load server
  • Memory usage
  • Total Session (moins les deux connections des listeners RDP/ICA)

 

 Zabbix_TemplateItems2
Ok notre labs est par hyper sollicité 🙂


Download_2
zbx_template_XenApp_65.xml


La page des templates Zabbix de zabbix.org est ici (elle comprend notamment un template XenApp regroupant les parties Web Interface, ZDC etc..).
La page des templates officiels de zabbix.com est ici.

Post to Twitter

Changer le fuseau horaire dans Zabbix

Voici l’exemple type du billet memo/post it, on vous prévient à l’avance.

Sur un Zabbix 2.4 installé sur une Debian 7.7 (weezy) nous avions un problème de fuseau horaire (time zone), en effet toutes les données remontées dans zabbix avaient une heure d’avance par rapport au fuseau horaire du serveur zabbix. En regardant dans notre Debian l’heure était bien la bonne (avec le bon fuseau horaire), direction donc le php.ini (/etc/php5/apache2/) que nous modifions afin de mettre le fuseau horaire “Europe/Paris” accompagné d’un restart d’apache2.

Après cette modification le problème de fuseau horaire était toujours présent, afin de retrouver le fuseau horaire utilisé dans zabbix nous avons simulé une ré-installation de zabbix sur notre serveur zabbix via l’onglet Administration-Installation.

Zabbix_Timezone1On constate que la partie PHP time zone est sur Europe/Riga

 

En regardant de plus près Zabbix gère son fuseau horaire directement via le fichier apache.conf situé dans /etc/zabbix/apache.conf.

 

Zabbix_Timezone2Effectivement nous ne sommes pas dans le bon fuseau horaire

 

 

Zabbix_Timezone3Une fois le date.timezone renseigné correctement notre zabbix affichait bien la bonne heure

 

Post to Twitter

Erreur HTTP : Error 503 sur Web Interface

Suite à une mise à jour sur nos Web Interface (5.4 us /2008 R2 us) de prod (suppression de sites XenApp Web) nous avons rencontré sur deux Web Interface une erreur HTTP 503 (Service Unavailable).


Http503_1

 

Vu que seuls les sites XenApp Web étaient impactés (IIS était ok, la création d’un site et son accès répondait bien), nous avons regardé du coté de IIS, et en cliquant sur l’application Pools (bien sur nous ne sommes pas tombés directement dessus 😉 ), nous avons constaté que “CitrixWebInterface5.4.0AppPool” était arrêté.

 

Http503_2C’est sûr que ça risquait de marcher la

 

Une fois l’application pool “CitrixWebInterface5.4.0AppPool” démarrée, l’erreur HTTP 503  n’apparaissait plus.

Afin de checker les sites XenApp Web de nos différentes Web Interface, nous avons mis en place un script PowerShell permettant de vérifier si les différentes url répondent bien.  Dans un second temps  en parcourant l’outil de supervision (Zabbix) de notre client actuel,  nous avons remarqué que le check d’URL est possible via un scénario web qui lui même va checker les différentes url de nos sites Web Interface (avec un trigger afin de générer une alerte dans Zabbix).

 

Zabbix_WebuiDans notre cas nous avons créé le scénario web dans un template que nous appliquons à nos Web Interface

 

Zabbix01
Une fois l’étape du scénario créée le check d’url est réalisé

 

Zabbix_Webui_XenApp_triggerLe trigger que nous avons associé à notre scénario Web, si le dernier check est différent de 0 (check ok) alors une alerte avec un statut haut remontera dans Zabbix

 

Http503_3
Le résultat de la supervision Web dans Zabbix

 

Concernant le script Powershell, il faut au préalable :

  1. Modifier en ligne 2 du script les Web Interface à checker
  2. Modifier l’url à checker en ligne 7 du script

 

WebiCheckPour la partie PowerShell, si vous avez pas d’outil de surpervision ou autres solution alors à l’ancienne une tache planifiée (en dernier recours)

 

Download_2
Check_Url_Webi.ps1

Post to Twitter