Compare commits

..

27 Commits

Author SHA1 Message Date
d0e4c0b794 Merge branch 'develop' into dist/eole/2.7.0/develop 2019-03-08 14:49:27 +01:00
50f865a635 Ajout d'un répertoire de définition des dashboards 2019-03-08 14:49:15 +01:00
b2caec4f54 Merge branch 'develop' into dist/eole/2.7.0/develop 2019-03-08 13:39:09 +01:00
2de2f9480b Merge branch 'dist/eole/2.6.2/master' into dist/eole/2.7.0/develop 2019-03-08 12:08:16 +01:00
eb7b7e48df Merge branch 'master' into dist/eole/2.6.2/master 2018-06-25 11:08:09 +02:00
a5347e4168 Merge branch 'master' into dist/eole/2.6.2/master 2018-06-19 17:41:34 +02:00
ee26997348 Merge branch 'master' into dist/eole/2.6.2/master 2018-06-19 17:35:10 +02:00
7f9d0d252d Merge branch 'master' into dist/eole/2.6.2/master 2018-06-13 10:40:22 +02:00
16da5b91fa Merge branch 'master' into dist/eole/2.6.2/master 2018-06-13 10:35:02 +02:00
24332a98c8 Merge branch 'master' into dist/eole/2.6.2/master 2018-06-11 15:45:40 +02:00
37d0dee412 Merge branch 'master' into dist/eole/2.6.2/master 2018-06-11 09:36:47 +02:00
be23766fc2 Merge branch 'master' into dist/eole/2.6.2/master 2018-06-06 16:47:31 +02:00
1f6a18a14b We need curl 2018-06-06 14:45:27 +02:00
c0b430ec2c Adding missing depend 2018-06-06 14:42:11 +02:00
39e1ed720d Merge branch 'master' into dist/eole/2.6.2/master 2018-06-06 14:39:46 +02:00
d5fe43fc05 Merge branch 'master' into dist/eole/2.6.2/master 2018-06-06 09:26:34 +02:00
d154fcd94e Merge branch 'master' into dist/eole/2.6.2/master 2018-06-06 09:11:03 +02:00
fb6ee11d7a Merge branch 'master' into dist/eole/2.6.2/master 2018-06-05 17:18:54 +02:00
0614d2863a Merge branch 'master' into dist/eole/2.6.2/master 2018-06-05 14:32:12 +02:00
0bfbcc71ab Adding debian depends 2018-06-01 11:41:59 +02:00
cbf8d62cdc Merge branch 'dist/eole/2.6.2/master' of https://forge.cadoles.com/Cadoles/eole-prometheus into dist/eole/2.6.2/master 2018-06-01 11:32:05 +02:00
2af543c34e Revert "Adding debian packaging files"
This reverts commit 2da03082ec.
2018-06-01 11:32:00 +02:00
2da03082ec Adding debian packaging files 2018-06-01 11:30:56 +02:00
290231b394 Merge branch 'master' into dist/eole/2.6.2/master 2018-05-25 17:24:38 +02:00
4c6d88bae2 Merge branch 'master' into dist/eole/2.6.2/master 2018-05-25 16:01:35 +02:00
0a656de9e6 oubli du dossier debian ... 2018-05-25 15:56:49 +02:00
d1e5392a9a paquet debian 2018-05-25 13:32:18 +02:00
11 changed files with 114 additions and 19572 deletions

View File

@ -1,9 +1,9 @@
################################
# Makefile pour XXX-XXX
# Makefile pour eole-prometheus
################################
SOURCE=eole-prometheus
VERSION=0.1
VERSION=0.0.1
EOLE_VERSION=2.7
EOLE_RELEASE=2.7.0
PKGAPPS=non

View File

@ -14,7 +14,7 @@ L'exporter système (node-exporter) est dans la configuration par défaut (Prome
```
Mode expert > Dépot tiers > Ajouter un dépot
Dépôt officiel Grafana
Libellé du dépot = Dépôt officiel Grafana
Libellé du dépot = Cadoles
Déclaration du dépôt = deb https://packages.grafana.com/oss/deb stable main
Méthode de récupération de la clé = URL de la clé
URL de la clé = https://packages.grafana.com/gpg.key

1
debian/dirs vendored
View File

@ -1 +0,0 @@
/var/lib/grafana/dashboards

7
debian/postinst vendored
View File

@ -1,7 +0,0 @@
#!/bin/bash
case "$1" in
configure)
chown grafana:grafana /var/lib/grafana/dashboards
;;
esac

2
debian/rules vendored
View File

@ -5,4 +5,4 @@
# export DH_VERBOSE=1
%:
dh $@
dh $@

View File

@ -7,9 +7,7 @@
<file filelist='prometheus-alertmanager' name='/etc/prometheus/rules.d/alert-rules.yml' mkdir='True' rm='True'/>
<file filelist='prometheus-alertmanager' name='/etc/prometheus/rules.d/predict-rules.yml' mkdir='True' rm='True'/>
<file filelist='grafana' name='/etc/grafana/grafana.ini' mkdir='True' rm='True'/>
<file filelist='grafana' name='/etc/grafana/provisioning/dashboards/eole.yml' source='grafana-dashboards.yml' mkdir='True' rm='True'/>
<file filelist='grafana' name='/etc/grafana/provisioning/datasources/eole.yml' source='grafana-datasources.yml' mkdir='True' rm='True'/>
<file filelist='grafana' name='/var/lib/grafana/dashboards/eole.json' source='grafana-node-dashboard.json' mkdir='True' rm='True'/>
<file filelist='grafana' name='/etc/grafana/grafana-dashboards.yml' mkdir='True' rm='True'/>
<service>prometheus</service>
<service>prometheus-alertmanager</service>
@ -96,23 +94,23 @@
</family>
<family name="grafana">
<variable name='grafana_domain' type='string' description="Nom de Domaine ou IP pour accèder à l'interface Grafana" mandatory='True'>
<value>localhost</value>
</variable>
<variable name='grafana_session_max_lifetime' type='string' description="Durée avant déconnexion de l'interface Grafana (en seconde)">
<value>86400</value>
</variable>
<variable name='grafana_admin_passwd' type='string' description="Mot de passe admin pour la première connexion">
<value>admin</value>
</variable>
<variable name='grafana_sign_up' type='string' description="Activer l'enregistrement automatique">
<value>false</value>
</variable>
<variable name='grafana_auth_anonymous' type='string' description="Activer l'accès aux utilisateurs non enregistrés">
<value>false</value>
</variable>
<variable name='grafanaRootURL' type='string' description='Url publique de grafana (avec http:// ou https://)' mode='expert'/>
</family>
<variable name='grafana_domain' type='string' description="Nom de Domaine ou IP pour accèder à l'interface Grafana" mandatory='True'>
<value>localhost</value>
</variable>
<variable name='grafana_session_max_lifetime' type='string' description="Durée avant déconnexion de l'interface Grafana (en seconde)">
<value>86400</value>
</variable>
<variable name='grafana_admin_passwd' type='string' description="Mot de passe admin pour la première connexion">
<value>admin</value>
</variable>
<variable name='grafana_sign_up' type='string' description="Activer l'enregistrement automatique">
<value>false</value>
</variable>
<variable name='grafana_auth_anonymous' type='string' description="Activer l'accès aux utilisateurs non enregistrés">
<value>false</value>
</variable>
<variable name='grafanaRootURL' type='string' description='Url publique de grafana (avec http:// ou https://)' mode='expert'/>
</family>
<family name="alertes prometheus">
<variable name='alSMTPUseSys' type='oui/non' description="Utiliser la passerelle SMTP du système ?">

91
postservice/88_grafana Executable file
View File

@ -0,0 +1,91 @@
#!/usr/bin/env bash
function importDataSource()
{
local grURL="${1}/api/datasources" # Grafana API URL
local dsName=${2} # Datasource Name
local dsURL="${3}" # Datasource URL
local dsType="prometheus" # Datasource type
cmd="curl"
data=$(cat <<__EOF__
{"name":"${dsName}","type":"${dsType}","url":"${dsURL}","access":"direct"}
__EOF__
)
echo -ne "\tCreating datasource for Prometheus "
res=$(${cmd} "${grURL}" -H "Content-Type: application-json" --data-binary "${data}" 2>&1 )
excode=${?}
case $res in
*"already exists"*)
echo " ... [Exists]"
;;
*"Datasource added"*)
echo " ... [OK]"
;;
*)
echo " ... Ooops ${res}"
;;
esac
}
function importDashboardFromMarket()
{
local grURL="${1}/api/dashboards/import" # API URL to create new Dashboard
local dsName="${2}" # Datasource name (to link dashboard to data)
local dhID="${3}" # Dashboard ID in the market
local dhRev="${4}" # Dashboard Revision to download
local tmpFile=$(mktemp)
local dhFile=$(mktemp)
# URL To download the json file for dashboard
local pubDashBoardURL="https://grafana.com/api/dashboards/${dhID}/revisions/${dhRev}/download"
local cmd="curl"
local dh=$(${cmd} --silent ${pubDashBoardURL} 2>&1)
cat <<_EOF_ > ${tmpFile}
{
"inputs": [ { "name":"DS_LOCALHOST", "type":"datasource", "pluginId":"prometheus", "value":"${dsName}" } ],
"dashboard": { "title": "Surveillance Système", ${dh:1:-1} },
"folderId": 0,
"overwrite": true
}
_EOF_
res=$(${cmd} "${grURL}" -H "Content-Type: application-json" --data-binary "@${tmpFile}" 2>&1 )
excode=${?}
case $res in
*"\"imported\":true"*)
echo " ... [Overwrited]"
;;
*"Datasource added"*)
echo " ... [OK]"
;;
*)
echo " ... Ooops ${res}"
;;
esac
# rm -rf ${tmpFile}
}
grafanaHost=$(CreoleGet srvGrafanaIP 127.0.0.1)
grafanaPort=$(CreoleGet srvGrafanaPort 3000)
grafanaUser="admin"
grafanaPasswd=$(CreoleGet grafana_admin_passwd admin)
grafanaURL="http://${grafanaUser}:${grafanaPasswd}@${grafanaHost}:${grafanaPort}"
datasource_name=$(CreoleGet promDataSource "prometheus")
promHost=$(CreoleGet adresse_ip_eth0)
promPort='9090'
datasourceURL="http://${promHost}:${promPort}"
importDataSource ${grafanaURL} ${datasource_name} ${datasourceURL}
echo
echo -ne "\tImporting Node Exporter Full Dashboard "
importDashboardFromMarket ${grafanaURL} ${datasource_name} 1860 11
rm -rf ${dashBoardFile}

View File

@ -39,12 +39,3 @@ groups:
a value of {{ $value }}.
summary: Instance {{ $labels.instance }} filesystem usage is dangerously high
# Heavy CPU temperature
- alert: cpu_temp_threshold_exceeded
expr: avg(node_hwmon_temp_celsius{job="node"}) BY (instance)
> 50
annotations:
description: This device's cpu temperature has exceeded the threshold with a value
of {{ $value }}.
summary: Instance {{ $labels.instance }} CPU temperature is dangerously high

View File

@ -1,11 +0,0 @@
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
orgId: 1
url: http://%%adresse_ip_eth0:9090
isDefault: true
version: 1
editable: false

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,7 @@
;plugins = /var/lib/grafana/plugins
# folder that contains provisioning config files that grafana will apply on startup and while running.
provisioning = /etc/grafana/provisioning
provisioning = conf/provisioning
#################################### Server ####################################
[server]