[Debian/Ubuntu] Health Check de services grâce aux conkys
-
Sommaire
- Liste
- Health check d’un service web ou de l’IOT (camera, etc)
- Health check d’un service web à travers Tor
- Health check d’un serveur VPN ou des machines connectées à votre sous réseau
- Health check d’un serveur SSH
- Health check d’un serveur DNS
- Health check d’un serveur MariaDB/MySQL
- Health check d’un serveur NTP
- Lister l’ensemble des machines connectées au sous-réseau
- Exemples
Liste
Health check d’un service web ou de l’IOT (camera, etc)
camera : ${alignr}${execp curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s http://192.168.42.42 >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
Remplacez http://192.168.42.42 par l’adresse de la WEBUI de votre caméra. Certaines caméra utilisent https à la place d’http (il n’y a pas vraiment de différence mais il faut l’indiquer dans l’URL)
Health check d’un service web à travers Tor
Pratique pour vérifier la présence en ligne depuis internet de votre serveur web sur votre réseau LAN ou depuis un autre pays. Vous devez avoir installé tor (apt install tor)
WebServer via tor : ${alignr}${execp torsocks curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s http://7j3ncmar4jm2r3e7.onion >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
Health check d’un serveur VPN ou des machines connectées à votre sous réseau
VPN :${alignr}${execp ping -c 1 -W 5 10.8.42.42 >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
Remplacez _10.8.42.4_2 par l’adresse de votre VPN à l’intérieur du sous réseau VPN.
Health check d’un serveur SSH
SSH_Server1 :${alignr}${execp ssh fake_user@192.168.42.42 -o "BatchMode=yes" 2>&1 | grep -Eo "Permission denied" >/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
Health check d’un serveur DNS
DNS_Server1 :${alignr}${execp host -t A linuxfr.org 192.168.1.42 >/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
Remplacez 192.168.42.42 par l’adresse de votre serveur DNS.
Health check d’un serveur MariaDB/MySQL
Installation des pré-requis
Sur votre ordinateur de bureau, vous devez avoir installé mysql-client.
apt install mysql-client
Sur votre serveur de base de données, vous devez créer un utilisateur avec le moins de permissions possible. Ici nous créons l’utilisateur “healtcheck”
mysql -u root -p -e "CREATE USER 'healtcheck'@'10.8.42.%';"
Le code pour conky
MariaDB : ${alignr}${execp mysql -s --connect-timeout=5 -u healtcheck -h 10.8.42.42 -P 3306 -e "quit" >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
Remplacez 10.8.42.42 par l’adresse de votre serveur M%MySQL/MariaDB. Si vous utilisez un autre serveur que celui par défaut (3306), remplacez la valeur indiquée dans la commande.
Health check d’un serveur NTP
NTP_Server1 :${alignr}${execp ntpdate -t 5 -q 192.168.42.42 >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
Remplacez 192.168.42.42 par l’adresse de votre serveur NTP.
Lister l’ensemble des machines connectées au sous-réseau
Vous devez avoir installé nmap sur votre machine (apt install nmap). sudo n’est pas requis pour les scans aux ping avec nmap.
${color yellow}Network List${color} ${execp nmap -sn 192.168.42.1-254 | grep -Eo "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))" | sed 's/^/${alignc}/' & }
Remplacez 192.168.42.42 par la première adresse de votre sous réseau. Fonctionne aussi sur les réseaux VPN et en IPv6.
Exemples
L’exemple suivant est celui qui a permis de faire le screenshot en début d’article.
# INFOS : https://wiki.0rion.netlib.re/doku.php?id=documentation_en:debian_ubuntu_health_check_service_via_conky # http://conky.sourceforge.net/config_settings.html # Use Xft? use_xft yes xftfont Ubuntu Beta:size=8 xftalpha 0.8 text_buffer_size 2048 # Update interval in seconds update_interval 10 # This is the number of times Conky will update before quitting. # Set to zero to run forever. total_run_times 0 # Create own window instead of using desktop (required in nautilus) own_window yes own_window_transparent no own_window_argb_visual yes own_window_argb_value 210 # semi-transparent own_window_type normal own_window_class conky own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager background no # Use double buffering (reduces flicker, may not work for everyone) double_buffer yes # Minimum size of text area minimum_size 200 40 maximum_width 200 maximum_height 500 # Draw shades? draw_shades no # Draw outlines? draw_outline no # Draw borders around text draw_borders no # Stippled borders? stippled_borders 0 # border margins border_inner_margin 2 # border width border_width 1 # Default colors and also border colors default_color beige default_shade_color black default_outline_color white own_window_colour black # Text alignment, other possible values are commented #alignment top_left alignment tm #alignment bottom_left #alignment bottom_right # Gap between borders of screen and text # same thing as passing -x at command line gap_x -25 gap_y 330 # Subtract file system buffers from usedmemory? no_buffers yes # set to yes if you want all text to be in uppercase uppercase no # Force UTF8? note that UTF8 support required XFT override_utf8_locale yes # Add spaces to keep things from moving about? This only affects certain objects. use_spacer none TEXT ${font :style=Bold}${color yellow} ${alignc}~ Check Services ~ $color${font} #${color yellow}CAMERAS${color} caméra 1 :${alignr}${execp curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s captive.apple.com >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } caméra 2 : ${alignr}${execp curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s captive.apple.com >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } caméra 3 : ${alignr}${execp curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s captive.apple.com >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } caméra 4 : ${alignr}${execp curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s captive.apple.com >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } caméra 5 : ${alignr}${execp curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s captive.apple.com >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } ${color yellow}INFRASTRUCTURE${color} NTP_1 :${alignr}${execp ntpdate -t 5 -q 192.168.42.42 >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } NTP_2 :${alignr}${execp ntpdate -t 5 -q 192.168.42.43 >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } VPN_1 :${alignr}${execp ping -c 1 -W 5 10.8.42.1 >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } VPN_2 :${alignr}${execp ping -c 1 -W 5 10.8.43.1 >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } DNS_1 :${alignr}${execp host -t A test.test.test 8.8.8.8 >/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } DNS_2 :${alignr}${execp host -t A wiki.0rion.netlib.re 80.67.169.40 >/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } MariaDB : ${alignr}${execp mysql -s --connect-timeout=5 -u healthcheck -h 10.8.42.42 -P 3306 -e "quit" >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } ${goto 20}${color cyan}Blog Stephane Bortzmeyer${color} www.bortzmeyer.org :${alignr}${execp torsocks curl --connect-timeout 5 --user-agent "Conky HealthCheck" -s www.bortzmeyer.org >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } 7j3ncmar4jm2r3e7.onion :${alignr}${execp torsocks curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s http://7j3ncmar4jm2r3e7.onion >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } ${goto 20}${color cyan}Facebook${color} www.facebook.com :${alignr}${execp torsocks curl --connect-timeout 5 --user-agent "Conky HealthCheck" -s https://www.facebook.com >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } facebookcorewwwi.onion :${alignr}${execp torsocks curl --connect-timeout 5 --user-agent "Conky HealthCheck" -s https://www.facebookcorewwwi.onion/ >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' } ${color yellow}Network List${color} ${execp nmap -sn 192.168.42.1-254 | grep -Eo "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))" | sed 's/^/${alignc}/' & } ${execp nmap -sn 10.8.42.1-254 | grep -Eo "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))" | sed 's/^/${alignc}/' & }
Télécharger ce contenu au format Epub
Commentaires : voir le flux atom ouvrir dans le navigateur
https://linuxfr.org/wiki/debian-ubuntu-health-check-de-services-grace-aux-conkys
- Liste
Sauf mention contraire, le site est placé sous double licence Creative Commons BY-SA et GNU Free Documentation License propulsé par NodeBB