diff --git a/dicos/70_prometheus.xml b/dicos/70_prometheus.xml
index 384aa48..edc0de9 100644
--- a/dicos/70_prometheus.xml
+++ b/dicos/70_prometheus.xml
@@ -36,10 +36,6 @@
10s
-
- non
-
-
node
@@ -47,6 +43,25 @@
/etc/prometheus/nodes
+
+
+ non
+
+
+
+
+
+ Node Exporter
+
+
+
+ non
+
+
+
+
+
+
localhost
@@ -66,6 +81,20 @@
+
+ prCliIP
+ prCliSonde
+
+
+
+ prOpenCliIP
+ prOpenCliPort
+
+
+
+ ['Node Exporter','Port']
+
+
non
prometheus
@@ -79,8 +108,16 @@
non
- nouveau_node_exporter
+ prCli
+ prCliIP
+ prCliSonde
+
+ non
+ prOpenCli
+ prOpenCliIP
+ prOpenCliPort
+
diff --git a/init/prometheus.service b/init/prometheus.service
deleted file mode 100644
index b7f3eee..0000000
--- a/init/prometheus.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=Prometheus Server
-Documentation=https://prometheus.io/docs/introduction/overview/
-After=network-online.target
-
-[Service]
-User=root
-Restart=on-failure
-ExecStart=/usr/bin/prometheus --config.file=/etc/prometheus/prometheus.yml
-
-[Install]
-WantedBy=multi-user.target
diff --git a/postservice/88_grafana b/postservice/88_grafana
new file mode 100755
index 0000000..3459bcd
--- /dev/null
+++ b/postservice/88_grafana
@@ -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 192.168.30.57)
+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}
diff --git a/tmpl/prometheus.yml b/tmpl/prometheus.yml
index a2034bc..59363ed 100644
--- a/tmpl/prometheus.yml
+++ b/tmpl/prometheus.yml
@@ -8,27 +8,38 @@ rule_files:
- "/etc/prometheus/rules.d/*.yml"
scrape_configs:
- - job_name: %%prometheusJobName
+ - job_name: %%prometheusJobName
honor_labels: true
static_configs:
- - targets: ['%%nom_domaine_machine:9090']
+ - targets: ['%%nom_domaine_machine:9090'%slurp
%if %%getVar('activerSndNodeExpoter','non') == 'oui'
- - targets: ['%%nom_domaine_machine:9100']
+, '%%nom_domaine_machine:9100'%slurp
%end if
+]
- job_name: '%%job_name_node'
file_sd_configs:
- files: [ "%%job_file_config/*.yml" ]
+%if %%is_empty('ajout_client_prometheus') or %%is_empty('addPrOpenCli')
+# Nothing to configure
+%else
static_configs:
-%if %%getVar('ajout_client_prometheus','non') == 'oui'
- %if not %%is_empty(%%nouveau_node_exporter)
- %for %%client_prometheus in %%nouveau_node_exporter
- - targets: ['%%client_prometheus:9100']
- %end for
- %end if
+ - targets: [ "%%adresse_ip_eth0:9100"%slurp
+ %if %%getVar('ajout_client_prometheus','non') == 'oui'
+ %for %%cliPr in %%getVar('prCli',[])
+ %if %%cliPr.prCliSonde == 'Node Exporter'
+, '%%cliPr.prCliIP:9100'%slurp
+ %end if
+ %end for
+ %end if
+ %if %%getVar('addPrOpenCli','non') == 'oui'
+ %for %%cliOpen in %%getVar('prOpenCli',[])
+, '%%cliOpen.prOpenCliIP:%%cliOpen.prOpenCliPort'%slurp
+ %end for
+ %end if
+]
%end if
-
#alerting:
# alertmanagers:
# - scheme: https