Monitoring serveur et activités du disque dur avec Raspberry Pi

Pour illustrer le fait qu'un son peut altérer l'écriture sur un disque ou plus globalement pour monitorer l'activité d'un serveur, on va utiliser la combinaison de collectd, influxdb et grafana à installer sur une raspberry pi

Cette illustration est notamment faite pour l'exposition “go cany go” pour laquelle un dispositif est créé afin d'illustrer le phénomène vu dans cette vidéo :

Un outil simple, joli et facile à installer https://github.com/firehol/netdata

Installer netdata :

bash <(curl -Ss https://my-netdata.io/kickstart.sh)
sudo apt install sox openvpn

Ajouter config file openvpn dans le home, créer le fichier datacrash.sh dans le home, chmod +x

Mettre le son par défaut sur Analog + volume max + sudo alsactl store

datacrash.sh
#!/bin/bash
# en bas du fichier
# sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
# @chromium-browser --kiosk http://localhost:19999/#menu_disk_submenu_sda;theme=slate;help=true;update_always=true
# mount external hdd via fstab /dev/sda1         /media/usbhdd     ext4    defaults           0       0
# python off-button.py &
sleep 10
while true
do
sudo dd if=/dev/zero of=/media/usbhdd/oo bs=512 count=500M &
sleep 120
play -n synth 20 sin 300 gain -15 &
sleep 6
play -n synth 8 sin 295 gain -15 &
sleep 2
play -n synth 4 sin 290 gain -15
sleep 180
sudo killall dd
sudo rm /media/usbhdd/oo
sleep 3
done
 
/etc/rc.local
 
openvpn --config /home/pi/install3.ovpn &
 
python /home/pi/pioff.py &
 
cd /home/pi/
sudo ./datacrash.sh
 
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
 
ou plutot
 
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
 
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
@point-rpi
@xset s off
@xset -dpms
@xset s noblank
@chromium-browser --kiosk http://localhost:19999/#menu_disk_submenu_sda;theme=slate;help=true;update_always=true

Script pour extinction propre de la pi avec bouton externe

pioff.py

#!/bin/python
#This script was authored by AndrewH7 and belongs to him (www.instructables.com/member/AndrewH7)
#You have permission to modify and use this script only for your own personal usage
#You do not have permission to redistribute this script as your own work
#Use this script at your own risk
 
import RPi.GPIO as GPIO
import os
 
gpio_pin_number=21
#Replace YOUR_CHOSEN_GPIO_NUMBER_HERE with the GPIO pin number you wish to use
#Make sure you know which rapsberry pi revision you are using first
#The line should look something like this e.g. "gpio_pin_number=7"
 
GPIO.setmode(GPIO.BCM)
#Use BCM pin numbering (i.e. the GPIO number, not pin number)
#WARNING: this will change between Pi versions
#Check yours first and adjust accordingly
 
GPIO.setup(gpio_pin_number, GPIO.IN, pull_up_down=GPIO.PUD_UP)
#It's very important the pin is an input to avoid short-circuits
#The pull-up resistor means the pin is high by default
 
try:
    GPIO.wait_for_edge(gpio_pin_number, GPIO.FALLING)
    #Use falling edge detection to see if pin is pulled 
    #low to avoid repeated polling
    os.system("sudo shutdown -h now")
    #Send command to system to shutdown
except:
    pass
 
GPIO.cleanup()
#Revert all GPIO pins to their normal states (i.e. input = safe)
  • monitoring_serveur_et_activites_du_disque_dur_avec_raspberry_pi.txt
  • Dernière modification: 2019/05/13 00:34
  • par Benjamin Labomedia