Files
vps-docs/06-monitoring.md
2026-04-08 16:15:11 +02:00

4.0 KiB

6. Monitoring

Munin

Installation

apt install libcgi-fast-perl libapache2-mod-fcgid
a2enmod fcgid
apt install munin munin-node munin-plugins-extra logtail libcache-cache-perl

Plugins MySQL

cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/mysql_ mysql_
ln -s /usr/share/munin/plugins/mysql_bytes mysql_bytes
ln -s /usr/share/munin/plugins/mysql_innodb mysql_innodb
ln -s /usr/share/munin/plugins/mysql_isam_space_ mysql_isam_space_
ln -s /usr/share/munin/plugins/mysql_queries mysql_queries
ln -s /usr/share/munin/plugins/mysql_slowqueries mysql_slowqueries
ln -s /usr/share/munin/plugins/mysql_threads mysql_threads

Base de donnees Munin

CREATE SCHEMA munin_innodb;
USE munin_innodb;
CREATE TABLE something (anything int) ENGINE=InnoDB;
GRANT SELECT ON munin_innodb.* TO 'munin'@'localhost' IDENTIFIED BY 'munin';
FLUSH PRIVILEGES;

Configuration

Editer /etc/munin/munin.conf :

  • Decommenter dbdir, htmldir, logdir, rundir, tmpldir
  • Remplacer [localhost.localdomain] par [munin.<DOMAINE>]

Apache auth

a2enconf munin
htpasswd -c /etc/munin/munin-htpasswd admin

Editer /etc/apache2/conf-enabled/munin.conf avec auth basic (voir scripts/setup_munin_config.py).

Auto-configure plugins

cd /etc/munin/plugins
munin-node-configure --shell --families=contrib,auto | sh -x
service munin-node restart
service apache2 restart

Monit

Installation

apt install monit

Configuration

Creer /etc/monit/conf.d/monitrc.local :

set daemon 60
set logfile syslog facility log_daemon
set mailserver localhost
set mail-format { from: monit@<DOMAINE> }
set alert <EMAIL>
set httpd port 2812 and
 SSL ENABLE
 PEMFILE /usr/local/ispconfig/interface/ssl/ispserver.pem
 allow admin:"<MOT_DE_PASSE>"

Fichiers de monitoring

Creer dans /etc/monit/conf-enabled/ les fichiers pour : mariadb, pureftpd, named, sshd, apache2, memcached, ntpd, dovecot, postfix, redis.

Voir scripts/setup_monit.py pour le script complet.

mkdir /var/www/html/monit
echo "hello" > /var/www/html/monit/token
service apache2 restart
service monit restart

Ajouter port 2812 au firewall ISPConfig.

Grafana + Prometheus

Installation

echo "deb https://packages.grafana.com/oss/deb stable main" >> /etc/apt/sources.list.d/grafana.list
cd /etc/apt/trusted.gpg.d && wget https://packages.grafana.com/gpg.key -O grafana.asc
apt update
apt install grafana prometheus prometheus-mysqld-exporter prometheus-apache-exporter prometheus-bind-exporter prometheus-process-exporter

Configurer Grafana sur port 3100

Editer /etc/grafana/grafana.ini :

http_port = 3100

Configurer Prometheus

Editer /etc/prometheus/prometheus.yml — ajouter les jobs : prometheus, node, dns-master, apache, process, mysql.

Piege : Ne pas dupliquer les jobs (erreur "found multiple scrape configs with job name").

Sous-domaine Grafana

DNS A grafana -> <IP>, puis sous-domaine ISPConfig avec proxy vers http://localhost:3100/.

Demarrer

systemctl enable grafana-server && systemctl start grafana-server
service prometheus restart

Login par defaut : admin / admin

Loki + Promtail

Loki

cd /usr/local/bin
# Telecharger la derniere version depuis https://github.com/grafana/loki/releases/
wget <URL_LOKI_LINUX_AMD64> -O loki.zip
unzip loki.zip && mv loki-linux-amd64 loki && chmod 755 loki && rm loki.zip

Creer /etc/config-loki.yml et /etc/systemd/system/loki.service.

Piege : Loki v3 a un format de config different de v2. Utiliser schema: v13 et store: tsdb.

Promtail

# Promtail n'existe plus dans Loki v3, utiliser la derniere v2
wget https://github.com/grafana/loki/releases/download/v2.9.10/promtail-linux-amd64.zip -O promtail.zip
unzip promtail.zip && mv promtail-linux-amd64 promtail && chmod 755 promtail && rm promtail.zip

Creer /etc/config-promtail.yml et /etc/systemd/system/promtail.service.

Ajouter Loki dans Grafana

Configuration > Data Sources > Add > Loki > URL : http://127.0.0.1:3101