MODOP – Grafana/Promotheus pour DNS Primaire et Secondaire

La machine sera une Fedora 33 Server en installation minimale

1°) Prérequis

MODOP – Configurer un DNS Primaire et Secondaire – Centos7

Serveur DNS et Secondaire
dns-pri.house.cpb => IP : 172.16.185.1
dns-sec.house.cpb => IP : 172.16.185.2

Inscription de la machine cliente grafana04 sur les DNS P et S

2°) Spécification machine

Machine Grafana04
IP : 192.168.1.6 (vSwitch vmbr0)
Host : grafanad.house.cpb
IP : 172.16.185.23 (vSwitch vmbr1)
Disque 1 – Système 10Go
RAM 2G

3°) Installation de Middleware

[root@grafana04 ~]# dnf -y update
[root@grafana04 ~]# dnf -y install nmap net-tools wget

4°) Suppression du selinux

[root@grafana04 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@grafana04 ~]# reboot

5°) Désactivation IPv6

[root@grafana04 ~]# vi /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.default.autoconf = 0
[root@grafana04 ~]# sysctl -p

6°) Installation Promotheus

Création User Promotheus

[root@grafana04 chris]# useradd --no-create-home --shell /bin/false prometheus

Récupération de promotheus

[root@grafana04 ~]# cd /tmp
[root@grafana04 tmp]# wget https://github.com/prometheus/prometheus/releases/download/v2.8.1/prometheus-2.8.1.linux-amd64.tar.gz
[root@grafana04 tmp]# tar xzvf prometheus-2.8.1.linux-amd64.tar.gz
[root@grafana04 tmp]# mv prometheus-2.8.1.linux-amd64 prometheuspackage

Création structure Promotheus

[root@grafana04 tmp]# mkdir /etc/prometheus
[root@grafana04 tmp]# mkdir /var/lib/prometheus
[root@grafana04 tmp]# chown prometheus:prometheus /etc/prometheus
[root@grafana04 tmp]# chown prometheus:prometheus /var/lib/prometheus

Copier les binaires sur la structure Promotheus

[root@grafana04 tmp]# cp prometheuspackage/prometheus /usr/local/bin/
[root@grafana04 tmp]# cp prometheuspackage/promtool /usr/local/bin/
[root@grafana04 tmp]# chown prometheus:prometheus /usr/local/bin/prometheus
[root@grafana04 tmp]# chown prometheus:prometheus /usr/local/bin/promtool

Copier les fichiers conf sur la structure Promotheus

[root@grafana04 tmp]# cp -r prometheuspackage/consoles /etc/prometheus
[root@grafana04 tmp]# cp -r prometheuspackage/console_libraries /etc/prometheus
[root@grafana04 tmp]# chown -R prometheus:prometheus /etc/prometheus/consoles
[root@grafana04 tmp]# chown -R prometheus:prometheus /etc/prometheus/console_libraries

Création du service Promotheus

[root@grafana04 tmp]# vi /etc/systemd/system/prometheus.service

[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus 
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries

[Install]
WantedBy=multi-user.target

Configurer Promotheus

[root@grafana04 tmp]# vi /etc/prometheus/prometheus.yml

global:
 scrape_interval: 10s
scrape_configs:
 - job_name: dns
 scrape_interval: 5s
 static_configs:
 - targets: ['dns-pri.house.cpb:9153']
 - targets: ['dns-sec.house.cpb:9153']

Démarrage du service Promotheus

[root@grafana04 tmp]# systemctl daemon-reload
[root@grafana04 tmp]# systemctl start prometheus && systemctl enable prometheus
[root@grafana04 tmp]# systemctl status prometheus

Régle de Firewall – Promotheus /Exporter

[root@grafana04 ~]# firewall-cmd --zone=public --add-port={9090,9153}/tcp --permanent
[root@grafana04 ~]# firewall-cmd  --reload
  • http://grafana.house.cpb:9090

7°) Installation Grafana

[root@grafana04 ~]# vi /etc/yum.repos.d/grafana.repo

[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
[root@grafana04 ~]# dnf update
[root@grafana04 ~]# dnf install grafana

Installation de font du Supplémentaire

[root@grafana04 ~]# dnf install fontconfig freetype* urw-fonts

Activer Grafana

[root@grafana04 ~]# systemctl start grafana-server && systemctl enable grafana-server [root@grafana04 ~]# systemctl status grafana-server

Régle de Firewall – grafana

[root@grafana04 ~]# firewall-cmd --zone=public --add-port=3000/tcp --permanent
[root@grafana04 ~]# firewall-cmd --reload

http://grafanad.house.cpb:3000

8°) Installer l’exporter BIND sur les 2 DNS P et S

Installation de GO

[root@dns-pri tmp]# yum update -y
[root@dns-pri tmp]# yum groupinstall 'Development Tools'
[root@dns-pri tmp]# cd /tmp;wget https://golang.org/dl/go1.15.3.linux-amd64.tar.gz
[root@dns-pri tmp]# tar -zxvf go1.15.3.linux-amd64.tar.gz -C /usr/local
[root@dns-pri tmp]# echo 'export GOROOT=/usr/local/go' | sudo tee -a /etc/profile
export GOROOT=/usr/local/go
[root@dns-pri tmp]#echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee -a /etc/profile
export PATH=$PATH:/usr/local/go/bin
[root@dns-pri tmp]# source /etc/profile
[root@dns-pri tmp]# go version
go version go1.15.3 linux/amd64

Compilation et Installation de BIND exporter

[root@dns-pri tmp]# https://github.com/prometheus-community/bind_exporter.git
[root@dns-pri tmp]# cd bind_exporter/
make
[root@dns-pri bind_exporter]# mv bind_exporter /usr/local/bin

Création Group/User privilège

[root@dns-pri tmp]# groupadd --system prometheus
[root@dns-pri tmp]# useradd -s /sbin/nologin --system -g prometheus prometheus

Création du service exporter_Bind

[root@dns-pri tmp]# vi /etc/systemd/system/bind_exporter.service

[Unit]
Description=Prometheus
Documentation=https://github.com/digitalocean/bind_exporter
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/bind_exporter \
 --bind.pid-file=/var/run/named/named.pid \
 --bind.timeout=20s \
 --web.listen-address=0.0.0.0:9153 \
 --web.telemetry-path=/metrics \
 --bind.stats-url=http://localhost:8053/ \
 --bind.stats-groups=server,view,tasks
SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target
[root@dns-pri tmp]# systemctl enable bind_exporter.service
[root@dns-pri tmp]# systemctl start bind_exporter.service
[root@dns-pri tmp]# systemctl status bind_exporter.service

Régle de Firewall – exporter

[root@dns-pri tmp]# firewall-cmd --zone=public --add-port=9153/tcp --permanent
[root@dns-pri tmp]# firewall-cmd --reload

9°) Configurer Service BIND pour l’exporter

[root@dns-pri etc]# vi /etc/named.conf

Ajouter

statistics-channels {
 inet 127.0.0.1 port 8053 allow { 127.0.0.1; };
};

[root@dns-pri etc]# systemctl reload named

10°) Configurer Prometheus et Grafana


« Ajouter DATA source »


« Choisir la source »


« Inscrire l’adresse du serveur Promotheus »

Ajouter un Dasboard

« Import »


« Ajouter l’ID souhaité » puis « Load »


« Import »


« Arrivée des métriques »

11°) Ajouter le DNS Secondaire sur le DashBoard

Création Group/User privilège (Service)

[root@dns-sec ~]# groupadd --system prometheus
[root@dns-sec ~]# useradd -s /sbin/nologin --system -g prometheus prometheus

Copier l’exporter sur le DNS Secondaire

[root@dns-sec ~]# scp /usr/local/bin/bind_exporter root@dns-sec:/usr/local/bin/bind_exporter

Copier le service exporter Bind

[root@dns-sec bind_exporter]# scp/etc/systemd/system/bind_exporter.service root@dns-sec:/etc/systemd/system/bind_exporter.service

Activer les statistiques dans Bind

[root@dns-sec ~]# vi /etc/named.conf

Ajouter

statistics-channels {
 inet 127.0.0.1 port 8053 allow { 127.0.0.1; };
};

Lancer le service exporter

[root@dns-sec ~]# systemctl enable bind_exporter.service
[root@dns-sec ~]# systemctl start bind_exporter.service
[root@dns-sec ~]# systemctl status bind_exporter.service

Régle de Firewall – exporter sur le DNS Secondaire

[root@dns-pri tmp]# firewall-cmd --zone=public --add-port=9153/tcp --permanent
[root@dns-pri tmp]# firewall-cmd --reload

On récupère bien les deux DNS sur le Dasboard Grafana

Views: 18

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *