Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

ZABBIX – Script – Tout les hosts, leur status et leurs templates liés

Le script ci-dessous affiche tout les hosts avec leur status et les templates associés

 

GetZabbixAlIHostsAndTemplates(Native_API).ps1 (2,46 kb)

 

### GET ALL ZABBIX HOSTS WITH THEIR STATUS AND TEMPLATES LINKED


Param(
[Parameter(Mandatory=$false)] $baseurl='https://MyZabbixSrv.My.domain/zabbix',
$credential = (Get-Credential -Credential "MyAccount"),
)

 
$global:JsonParams = @{}
     
# 
Function ConnectZabbix($cred,$baseurl)
{
$JsonParams.body =  @{
        "jsonrpc"= "2.0"
        "method"= "user.login"
        "params"= @{
            "user"= $cred.UserName
            "password"= $cred.GetNetworkCredential().Password
        }
        "id"= 1
        "auth"= $null
    } | ConvertTo-Json
    $JsonParams.uri = "$baseurl/api_jsonrpc.php"
    $JsonParams.headers = @{"Content-Type" = "application/json"}
    $JsonParams.method = "Post"
 
 
[System.Net.ServicePointManager]::SecurityProtocol = 'tls12'
[Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
 
$global:Connresult = Invoke-WebRequest @JsonParams -UseBasicParsing
 
}
 
# Invoke ConnectZabbix
ConnectZabbix -cred $credential -baseurl $baseurl
 
 
 
## GET HOSTS ##
$JsonParams.body = @{
    "jsonrpc"= "2.0"
    "method"= "host.get"
    "params"= @{
        output = "hostid","name","available","status"
        selectParentTemplates = "templateid","name"
        }

    auth = ($Connresult.Content | ConvertFrom-Json).result
    id = 2
} | ConvertTo-Json

$ZabbixHosts = Invoke-WebRequest @JsonParams -UseBasicParsing
$ZabbixHosts = $ZabbixHosts.Content | ConvertFrom-Json



## CREATE EMPTY TABLEAU THAT WILL STORE HOSTS AND TEMPLATES
$HostsAndTemp = @()

foreach ($Zabbhost in $ZabbixHosts.result)
{

$obj = New-Object psobject

$obj | Add-Member -Name "HOSTNAME" -membertype Noteproperty -Value $Zabbhost.name
$obj | Add-Member -Name "ZBX AGENT STATUS" -membertype Noteproperty -Value `
    $( 
      switch ($Zabbhost.status)
      {
      0 {"ENABLED"}
      1 {"DISABLED"}
      }
     )

$obj | Add-Member -Name "ZBX AGENT AVAILABLE" -membertype Noteproperty -Value `
    $( 
      switch ($Zabbhost.available)
      {
      1 {"AVAILABLE"}
      2 {"UNAVAILABLE"}
      0 {"UNKNOWN"}
      }
     )

$obj | Add-Member -Name "ZABBIX TEMPLATES LINKED" -membertype Noteproperty -Value $Zabbhost.parentTemplates.name


$HostsAndTemp += $obj

}


# TABLEAU FINAL
write-host "`n---- $($ZabbixHosts.result.Count) HOSTS ---`n"
write-host "HOSTNAME - ZBX AGENT STATUS - ZBX AGENT AVAILABLE - ZABBIX TEMPLATES LINKED`n"


$HostsAndTemp | sort hostname | ft -AutoSize


 

Zabbix – Supervision basique d’une URL

Zabbix propose plusieurs manière de superviser des URL. L’exemple ci-dessous propose d’utiliser un ‘Web Scenario’ pour la supervision d’une URL simple (ici www.google.fr).

on commence par créer un template vide qui contiendra la configuration:

image

image

image

NB: Le nom du Host group associé est arbitraire.

Cliquer Add.

image

Le template vide est crée.

image

Cliquer “Create Web Scenario”

image

Name: Check Google

Agent: On positionne Zabbix. ce champs permet de selectionner plusieurs type de client http/navigateur.

Cliquer Steps.


image

Dans la zone Steps, cliquer sur Add.

image

name: Google base page

URL: http://www.google.fr

Required Status codes: 200

image

image

Cliquer Add

image

Le Web scenario est crée.

image

On applique (Link) le template au host devant effectuer le check de supervision.

image

image

Apres quelques minutes les données remonte dans la liste des “Latest data” du host concerné. on voit ici que le code HTTP renvoyé est bien 200 (OK)

On crée a présent un trigger (alerte) en charge declencher une alerte sur le cas ou le code HTTP serait different de 200.

image

image

Dans les propriétés du template, cliquer Triggers

image

cliquer en haut a droite Create Trigger

image

Name: Google Site KO

Clquer sur Add a coté de la zone Expression pour construire la condition de declenchement.

image

Cliquer sur Select pour aller rechercher l’item crée precedemment.

image

Selectionner “Response code for step “Google base page”…”

image

Laisser selectionné la fonction “last()”.

Result: <> 200

cliquer Insert.

image

A titre d’indication ajouter le nom de l’url surveillée dans le champ URL.

Cliquer Add.

image

Le trigger est maintenant actif.

Sharepoint Online : Windows Powershell ISE figé

Avez vous déjà rencontré l’expérience de la console Powershell ISE qui fige lorsque vous utilisez Sharepoint Online et le MFA ?

Je sais c’est désagréable, surtout quand un script tourne depuis un moment, voici donc un petit contournement pour corriger ce problème.

  1. Créez sur votre bureau un raccourcis de Powershell ISE.
  2. Sélectionnez le, faites un clic droit et enfin sélectionnez « Propriétés« .
  3. Dans le champs « Cible », ajoutez  » -Mta » à la fin.

Maintenant lorsque vous exécuterez la console, lancez la via ce raccourcis et les problèmes de console qui fige seront un mauvais souvenir.