[tmux] config complexe, automatique (résolu)

Applications, problèmes de configuration réseau
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

[tmux] config complexe, automatique (résolu)

Message par Moviuro »

Plop,

Alors je suis admin de quelques serveurs loin de moi, et j'aimerais garder un œil dessus (genre comprendre pourquoi mon bouncer IRC se viande, par exemple). De plus, j'aimerais garder un oeil sur ma machine avec un journalctl -f qui tourne dans un terminal "drop-down", nommément yakuake.

L'idée serait d'avoir des sessions tmux empilées : chaque niveau de la liste suivante représente un niveau d'empilage.
  • $ journalctl -f sur mon arch à moi
  • tmux sur mon cœur de réseau (ssh 10.3.14.15 puis tmux) :
    • un onglet pour le cœur de réseau (splitté en 3 pour pouvoir # tail -f /var/log/messages et # tail -f /var/log/daemon et # tcpdump -ttt -i pflog0)
    • un onglet semblable par serveur
    • ...
Seulement, je ne veux rien installer sur mes serveurs (ils ont tmux et basta) et j'aimerais que ça soit complètement fail-safe :
  • Mon ordi passe en veille et se réveille souvent : il ne faudrait pas démarrer un tmux sur mon cœur de réseau à chaque fois ;
  • Il se peut que mes serveurs redémarrent et il ne faudrait pas pour autant que leur onglet reste vide : il faut tenter en boucle d'atteindre les machines ;
  • Il se peut que mon cœur de réseau redémarre (bah oui, il a un RAID dégradé en ce moment même) : il faudrait pouvoir relancer le tmux là-bas si besoin était ;
  • J'aimerais faire ça depuis mes 2 PCs portables mais chacun avec leur tmux sur le cœur de réseau (il y a des soucis de taille sinon, puisque j'ai un 18.4" et un 14") ;
  • Il ne faut rien installer sur les serveurs (qui sont sous *BSD) (pas de nouveau soft, je n'ai rien contre quelques fichiers de conf) ;
  • Ça m'arrangerait que mon cœur de réseau ait tout le temps disponible les tmux de statut des serveurs (et donc que moi, depuis mes portables, je ne fasse que me connecter à un tmux existant).
Des idées ?

Déjà, j'ai trouvé :

Code : Tout sélectionner

tmux new-session -d 'journalctl -f'
tmux new-window 'ssh root@10.3.14.15' # adresse du cœur de réseau
tmux -2 attach-session -d
Qui crée un tmux local avec 2 onglets : un qui lance journalctl et l'autre, ssh.

Donc il me manque toute la partie "fail-safe" : prévoir les moments où les machines sont down et ne pas planter.
Voilà :) Maintenant, dodo :dodo:
Dernière modification par Moviuro le mar. 08 juil. 2014, 19:30, modifié 1 fois.
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

Re: [tmux] config complexe, automatique

Message par Moviuro »

Voilà, j'ai trouvé :
~/.tmux.conf

Code : Tout sélectionner

new     -s schizo       -n journal      'sudo journalctl -f'
neww    -n ginfo                        'while true; do ssh odin -t "tmux a -d -t schizo"; sleep 2; done'
selectw -t journal
sur "odin" :

Code : Tout sélectionner

# session for schizophrenia
new     -s schizo       -n odin         'tcpdump -ttt -i pflog0'
splitw  -v              -p 50           'tail -f /var/log/daemon'
splitw  -h              -p 50           'tail -f /var/log/messages'
neww                    -n frigg        'while true; do ssh frigg    "tail -f /var/log/messages"; sleep 2; done'
neww                    -n heimdall     'while true; do ssh heimdall "tail -f /var/log/messages"; sleep 2; done'
neww                    -n grydur       'while true; do ssh grydur   "tail -f /var/log/messages"; sleep 2; done'
neww                    -n hel          'while true; do ssh hel      "tcpdump -ttt -i pflog0";    sleep 2; done'
splitw  -v              -p 50           'while true; do ssh hel      "tail -f /var/log/daemon";   sleep 2; done'
splitw  -h              -p 50           'while true; do ssh hel      "tail -f /var/log/messages"; sleep 2; done'
selectw -t odin
selectp -t 0
TADA !
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Répondre