• STATISTIQUES
  • Il y a eu un total de 3 membres et 6282 visiteurs sur le site dans les dernières 24h pour un total de 6 285 personnes!


    Membres: 2 606
    Discussions: 3 580
    Messages: 32 820
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Reddit
    Subreddit dédié à la sécurité informatique.
    Hacking
    [EN] This is legal
    Basic: 10, Realistic: 5, Programming: 1, Bonus: 11, SQL: 2, Encryption: 6, Application: 4, User Contributed: 3
    Challenges
    [EN] Astalavista
    Un site aux ressources incontournable depuis plusieurs années, Astalavista est réellement devenue un cl...
    Hacking
    [FR] Secuser
    Actualité de la sécurité informatique, fiches virus et hoax, alertes par email, antivirus gratui...
    Hacking
    [FR] NewbieContest
    Nous vous proposons une série de challenges regroupant plusieurs domaines allant de l'exploitation de fail...
    Hacking
    [FR] Le site du zero
    Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modé...
    Programmation
    [EN] xda-developers
    Très bon site pour les gros bidouilleurs de smartphone de windows à androïd et de Apple jusqu'...
    Phreaking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Widget] Nagios for Awesome
25-07-2014, 11h13 (Modification du message : 25-10-2016, 10h27 par Junky.)
Message : #1
Junky Hors ligne
Snorky Master
*



Messages : 228
Sujets : 35
Points: 203
Inscription : Mar 2013
[Widget] Nagios for Awesome
Bonjour,

Pour tout sys admin, il est toujours bien d'avoir son nagios à proximité. Voir ce que son parc va bien (ou mal) est le souci numéro un de l'admin (enfin normalement Smile )

Je me suis donc fait un widget nagios pour awesome.

Fonctionnement:

Le widget est codé en python. Il va simplement faire une requête sur le serveur nagios. Il faut donc renseigner dans le widget les champs suivants:

- user
- password
- URL

Pour le user/password rien d'extraordinnaire. Mais pour l'URL, il peut y avoir quelques subtilités.

Lorsque que nous faisons une requête nagios via un navigateur web, nous tapons sur un script cgi (status.cgi). Ce script peut prendre des options ce qui permet d'avoir réellement ce que nous voulons comme retour.

Par exemple il est possible d'avoir comme résultat:

- seulement les WARNING
- seulement les alertes non ACK
- toutes les alertes (ACK/non ACK)
ect...

Je vous laisse prendre connaissance des options possibles ici.

Ensuite toute les 120 sec (configuration dans le rc.lua on verra ca un peu plus loin) le script est lancé et son output est écrit dans un fichier tmp. Puis une fonction lua va chercher le résultat et l'affiche dans votre barre de status.

Alors oui c'est un peu bourrin. Y'a surement mieux a faire. Je le changerai car je désire mettre d'autre features sur le widget. La c'est la version (Alpha)\1{4} Smile

Conseil:

Plutôt que de "forger" la requête à la main pour avoir l'URL voulu, allez sur votre nagios, et copier l'URL des liens dans le menu de gauche. Par exemple si je désire seulement les alertes non ACK, il faut cliquer sur ce lien:

[Image: nagios_service.png]

Ensuite mettre le lien dans la variable URL du widget.

Installation:

Il suffit de télécharger le widget ici et le mettre dans votre dossier awesome. Moi il se trouve dans le "vicious/widget". N'oubliez de vérifier le +x sur le widget.


Configuration:

Il vous faut rajouter le widget dans votre rc.lua. Voici la configuration:

Code LUA :

mynagios = widget({ type = "textbox" })
mynagios.text = "  ?  "
awful.hooks.timer.register(120, function()
        os.execute("/PATH/TO/nagwidget.py > /tmp/tmp_nagioschecker")
        local l = nil
        local f = io.open("/tmp/tmp_nagioschecker")
        l = f:read()
        f:close()
        mynagios.text = l
end)
 


On voit ici que toute les 120 sec, le script va être executé, la sortie est redirigé dans un fichier tmp, le contenu de celui-ci est lu puis affiché.

J'ai mis le code dans la section Wibox. Il vous faut aussi le rajouter dans les widget pour l'affichage. Toujours dans votre rc.lua:

Code LUA :

        mylayoutbox[s],
[...]
    net2widget, separator,
    cpuwidget, separator,
    mynagios,
    s == 1 and mysystray or nil,
[...]
 


Il ne vous reste plus qu'a redémarrer awesome et voici le résultat:

[Image: nagios_widget.png]

Bon ok mon nagios est tout rouge, mais j'ai une maj apache2 à faire, mais au moins on peut trés bien voir que celui-ci fonctionne à merveille. Smile

Conclusion:

Même si nous sommes pas sur un widget de ouf, ca permet d'avoir toujours un oeil sur son Nagios.
Je compte rajouter certaines choses:

- changement de l'affichage si aucun problème
- possibilité de cliquer dessus pour le refresh
- possibilité d'avoir un menu déroulant affichant les machines + services qui posent problèmes
- possibilité de cliquer sur une machine du menu déroulant afin d'ouvrir la page nagios
- et certainement d'autres choses ... Smile

PS: Vous avez les config de mon awesome sur mon git

Edit:
Si aucun souci, voici l'affichage:
[Image: nagios_ok.png]

Junky,
Pour la sécurité, sous linux, le principal soucis est l'interface chaise/clavier

+1 (3) -1 (0) Répondre
27-07-2014, 14h37
Message : #2
Junky Hors ligne
Snorky Master
*



Messages : 228
Sujets : 35
Points: 203
Inscription : Mar 2013
RE: [Widget] Nagios for Awesome
Bonjour,

Je viens de rajouter l'option afin de refresh le widget. Aucune modification sur le script a faire. Tout ce passe dans le rc.lua:

Code LUA :

mynagios:buttons(awful.util.table.join(awful.button({ }, 1, function()
    naughty.notify({text = "Refresh in progress..."})
    nagios()
end)))

 


Bon le code reste assez simple. On déclare un bouton sur le widget, si click gauche (1) on ouvre une notification, on lance la fonction nagios et on quitte.

J'ai aussi exporté la fonction nagios hors du block 'wibox'. Disons que ca fait plus propre.

Les conf sont tjs dispo sur le git.
Pour la sécurité, sous linux, le principal soucis est l'interface chaise/clavier

+1 (0) -1 (0) Répondre
27-07-2014, 21h06 (Modification du message : 25-10-2016, 10h28 par Junky.)
Message : #3
Junky Hors ligne
Snorky Master
*



Messages : 228
Sujets : 35
Points: 203
Inscription : Mar 2013
RE: [Widget] Nagios for Awesome
Rajout de l'option afin d'ouvrir la page des services dans firefox.

Il suffit de faire un click droit sur le widget. Celui-ci ouvre un menu:

[Image: go_service.png]

Clicker su "Go service" et votre firefox ouvre la page en question.

Configuration nécessaire:

modification dans la section wibox:

Code LUA :

-- création du menu mynagiosmenu
mynagiosmenu = awful.menu.new({ items = { { "Go Service", browser .. "URL DE VOTRE NAGIOS" },
                                        { "open terminal", terminal }
                                        }})

-- Si clic gauche on refresh, si clic droit on ouvre le menu
mynagios:buttons(awful.util.table.join(awful.button({ }, 1, function ()  
                naughty.notify({text = "Refresh in progress..."})
                nagios(1)
                end),
                awful.button({ }, 3, function ()
                nagios()
        end)))

 


Modification de la fonction nagios():

Code LUA :

-- function for nagios widget.
function nagios ( c )
        if c == 1 then
                os.execute("/home/silentd/.config/awesome/vicious/widgets/nagwidget.py > /tmp/nagioschecker")
                local l = nil
                local f = io.open("/tmp/nagioschecker")
                l = f:read()
                f:close()
                mynagios.text = l
        else
                mynagiosmenu:toggle()
        end
end
 


Junky,
Pour la sécurité, sous linux, le principal soucis est l'interface chaise/clavier

+1 (3) -1 (0) Répondre
28-07-2014, 17h44
Message : #4
thxer Hors ligne
:(){ :|:& };:
*



Messages : 382
Sujets : 60
Points: 162
Inscription : Feb 2013
RE: [Widget] Nagios for Awesome
Excellent , j'approuve, et merci
Thxer.com
Twitter Thxer_

Code BASH :
echo "JkZ Palx" | sed 'y/lPZaJxk/MG3@tEH/'




+1 (0) -1 (0) Répondre
28-07-2014, 17h58
Message : #5
Junky Hors ligne
Snorky Master
*



Messages : 228
Sujets : 35
Points: 203
Inscription : Mar 2013
RE: [Widget] Nagios for Awesome
Héhé merci Wink

J'ai oublié de rajouter une chose. Il faut déclarer dans ton rc.lua ton browser:

Code LUA :

-- firefox
browser="firefox"
-- uzbl
browser="uzbl-browser"
-- ect...
 


En tout cas si tu t'en sers et que tu as des soucis, n'hésites pas demander ici ou IRC. Smile

Junky,
Pour la sécurité, sous linux, le principal soucis est l'interface chaise/clavier

+1 (0) -1 (0) Répondre
30-07-2014, 11h49
Message : #6
thxer Hors ligne
:(){ :|:& };:
*



Messages : 382
Sujets : 60
Points: 162
Inscription : Feb 2013
RE: [Widget] Nagios for Awesome
Yep j'en aurai sûrement l'usage prochainement.
Mais l'idée sera de récup les infos à travers le wan via ssh
Thxer.com
Twitter Thxer_

Code BASH :
echo "JkZ Palx" | sed 'y/lPZaJxk/MG3@tEH/'




+1 (0) -1 (0) Répondre
30-07-2014, 11h54
Message : #7
Junky Hors ligne
Snorky Master
*



Messages : 228
Sujets : 35
Points: 203
Inscription : Mar 2013
RE: [Widget] Nagios for Awesome
Bonjour,

A ce moment la si tu passe par ssh, tu pourra aller taper directement dans le status.dat de nagios. b0th a justement fait un p'tit script sur le status.dat.


De mon côté je suis en train de travailler sur l'affichage des erreurs dans un menu. Je passe par BeautifulSoup pour parser ma page html et trier le résultat.
Le tri affichage en lui même est pratiquement fini, now il me faut l'implémenter dans awesome.

Junky
Pour la sécurité, sous linux, le principal soucis est l'interface chaise/clavier

+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [NAGIOS] - Sonde netstat Junky 4 200 15-05-2014, 16h16
Dernier message: thxer

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut