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

De Centre de Ressources Numériques - Labomedia
Aller à : navigation, rechercher

Introduction

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 :

Installation

Netdata

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

C882bbf4-f554-11e5-8863-1788d643d2c0.gif

Installation deprecated

Au final netdata était plus adapté à ce projet ...

collectd

il faut installer la version backport

gpg --keyserver pgpkeys.mit.edu --recv-key  8B48AD6246925553      
gpg -a --export 8B48AD6246925553 | sudo apt-key add -
sudo nano /etc/apt/source.liste.d/backports.list
sudo apt-get install collectd

ajouter

deb http://ftp.debian.org/debian jessie-backports main
sudo apt-get update

installer version 5.7.0

sudo apt-get -t jessie-backports install collectd

voir les dépendances des plugins

nano /usr/share/doc/collectd-core/README.Debian.plugins

pour le faire fonctionnner

sudo nano /etc/collectd/collectd.conf
sudo systemctl restart collectd.service
sudo systemctl status collectd.service

Ajouter des plugins

Graph-cpu.png

InfluxDB

D'abord installer Go

Ensuite installer InfluxDB

wget https://dl.influxdata.com/influxdb/releases/influxdb_1.2.0_armhf.deb
sudo dpkg -i influxdb_1.2.0_armhf.deb

Après<avoir activé l'admin dans le fichier de conf

choisir la BDD dans la liste

SHOW MEASUREMENTS

ou

select * from /.*/ limit 1

liste les mesures dispos Influxdb.png

Grafana

Accéder à l'interface : log admin / admin

  1. créer un dashboard
  2. connecter à une base
  3. ajouter graph
  4. choisir parmis les paramètres

Lancer les scrips au démarrage de la Pi

Script pour générer le l'activité sur le dd et du son

On lance un script bash pour monter le disque, faire la copie de fichier sur disque externe et jouer du son

#!/bin/bash
sudo mount /dev/sda1 /media/usbhdd/
while true
do
sudo dd if=/dev/zero of=/media/usbhdd/oo bs=512 count=50M &
sleep 120 
play -n synth 60 sin 290 gain -20 &
play -n synth 60 sin 295 gain -20 &
play -n synth 60 sin 300 gain -20
sleep 120
sudo killall dd
sudo rm /media/usbhdd/oo
sleep 5
done

Lancer Midori ou chromium navigateur web en plein écran au démarrage

nano .config/lxsession/LXDE-pi/autostart

ajouter :

@midori -e Fullscreen

ou

@chromium-browser --kiosk URL

en désactivant la veille en plus, ça donne :

#@lxpanel --profile LXDE-pi
#@pcmanfm --desktop --profile LXDE-pi
#@xscreensaver -no-splash
@xset s off
@xset -dpms
@xset s noblank
@midori -e Fullscreen -a http://localhost:19999/#menu_disk_submenu_sda

Tests

sudo dd if=/dev/zero of=oo bs=512 count=50M
smartctl
sudo apt install smartmontools
smartmontools
smartctl
smartctl -h
smartctl -t /dev/sdb
smartctl -a /dev/sdb
sudo smartctl -a /dev/sdb
atop

sudo apt install atop


Utilisation pour monitorer des paramètres du disque dur

Références

Install brute

sudo apt-get update
sudo apt-get upgrade
sudo reboot
sudo apt-get install collectd
sudo cp /etc/collectd/collectd.conf /etc/collectd/collectd.conf.back
sudo nano /etc/collectd/collectd.conf
sudo systemctl start collectd.service
sudo systemctl status collectd.service
sudo nano /etc/collectd/collectd.conf
sudo systemctl restart collectd.service
sudo systemctl status collectd.service
sudo nano /etc/collectd/collectd.conf
sudo systemctl restart collectd.service
sudo systemctl status collectd.service
sudo apt-get install curl git mercurial make binutils bison gcc build-essential
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
exit
ps ax | grep collect
ps ax | grep influx
sudo systemctl status collectd
sudo systemctl status influxdb
sudo netsat -lpt
sudo netstat -lpt
sudo systemctl status collectd.service
cd Downloads/
ls
curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb"
curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
sudo apt-get install influxdb 
ls
sudo apt-get update
source /etc/os-release
test $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt-get update && sudo apt-get install influxdb
sudo apt-get install apt-transport-https
sudo apt-get update && sudo apt-get install influxdb
sudo systemctl start influxdb
sudo systemctl status influxdb
sudo systemctl status influxdb -l
influxd config
sudo  netstat -l
curl -i 'http://localhost:8086/ping'
influx
sudo ls /var/log/influxdb/
sudo nano /etc/influxdb/influxdb.conf
sudo systemctl stop influxdb
sudo systemctl start influxdb
sudo nano /etc/collectd/collectd.conf
sudo systemctl restart collectd.service 
sudo systemctl status collectd.service 
sudo nano /etc/collectd/collectd.conf
sudo systemctl restart collectd.service 
sudo systemctl status collectd.service 
sudo nano /etc/influxdb/influxdb.conf
influx
wget https://s3.eu-central-1.amazonaws.com/belodetech/grafana_3.0.4_armhf.deb
sudo dpkg -i grafana_3.0.4_armhf.deb
ps ax | grep graf
sudo nano /etc/grafana/grafana.ini 
sudo nano /etc/influxdb/influxdb.conf
free -m
sudo nano /etc/collectd/collectd.conf
sudo systemctl restart collectd.service 
sudo systemctl status collectd.service 
sudo nano /etc/collectd/collectd.conf
sudo systemctl restart collectd.service 
sudo systemctl status collectd.service 
sudo dd if=/dev/zero of=oo bs=512 count=50M
ls
ls -al
sudo apt-get install smartmontools 
mount
sudo smartctl -a /dev/mmcblk0p2
sudo smartctl -a /dev/mmcblk0p
sudo smartctl -a /dev/mmcblk0
man smartctl 
setxkbmap fr
sudo mkdir /media/usbhdd
sudo cat /var/log/syslog 
df -h
mount
sudo smartctl -a /dev/sda1
sudo smartctl -t /dev/sda
sudo apt-get install atop
sudo apt-get install dstat
sudo cat /proc/diskstats 
sudo tail -f  /proc/diskstats 
dstat -tdD sda 1
sudo apt-get install iotop
iotop 
sudo iotop 
atop
sudo apt-get install sysstat 
sar
sudo sar
iostat -x 1
sudo nano /etc/collectd/collectd.conf
sudo systemctl restart collectd.service 
sudo systemctl status collectd.service 
sudo nano /etc/collectd/collectd.conf
sudo systemctl restart collectd.service 
sudo systemctl status collectd.service 
sudo systemctl status collectd.service -l
sudo nano /etc/collectd/collectd.conf
sudo systemctl restart collectd.service 
sudo systemctl status collectd.service -l
sudo nano /etc/collectd/collectd.conf
sudo systemctl restart collectd.service 
sudo systemctl status collectd.service -l
cat ../.bash_history 
sudo apt-cache search collectd
cd /home/pi/
sudo dd if=/dev/zero of=oo bs=512 count=50M
cd /media/pi/90245b85-3442-4b81-bf93-786a9e7d3ca2/
ls
sudo dd if=/dev/zero of=oo bs=512 count=50M
rm oo 
sudo rm oo 
sudo ifconfig 
sudo dd if=/dev/zero of=oo bs=512 count=50M
collectd -v
collectd -t
collectd -T
pi@raspberrypi:~ $ http://localhost:3000/dashboard/db/disk-stats?var-datasource=collectd&var-host=localhost&var-device=sda
[1] 9270
[2] 9271
bash: http://localhost:3000/dashboard/db/disk-stats?var-datasource=collectd: No such file or directory
bash: var-host=localhost: command not found
bash: var-device=sda: command not found
[1]-  Exit 127                http://localhost:3000/dashboard/db/disk-stats?var-datasource=collectd
[2]+  Exit 127                var-host=localhost
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ man collectd
pi@raspberrypi:~ $ apt-cache policy collectd
collectd:
  Installed: 5.4.1-6+deb8u1
  Candidate: 5.4.1-6+deb8u1
  Version table:
 *** 5.4.1-6+deb8u1 0
        500 http://mirrordirector.raspbian.org/raspbian/ jessie/main armhf Packages
        100 /var/lib/dpkg/status