Skip to content

Commit

Permalink
20190218
Browse files Browse the repository at this point in the history
  • Loading branch information
lblanc committed Feb 18, 2019
1 parent 1cb4a46 commit 2e66311
Show file tree
Hide file tree
Showing 8 changed files with 236 additions and 7 deletions.
39 changes: 35 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
## Docker Image with Telegraf, InfluxDB and Grafana with dashboard & REST script included for [DataCore SANsymphony](http://www.datacore.com)


[![](https://dockerbuildbadges.quelltext.eu/status.svg?organization=lblanc&repository=docker-influxdb-grafana-datacore)](https://hub.docker.com/r/lblanc/docker-influxdb-grafana-datacore/builds/)

[![License](http://img.shields.io/:license-mit-blue.svg)](http://octopress.mit-license.org)


Expand Down Expand Up @@ -28,9 +30,34 @@ docker run --ulimit nofile=66000:66000 \
-e "DCSREST=X.X.X.X" \
-e "DCSUNAME=administrator" \
-e "DCSPWORD=password" \
lblanc/grafana-integration
lblanc/docker-influxdb-grafana-datacore:latest
```

If you want to monitor also vSphere you can add this variables:
* VSPHERE_USER -> vSphere user
* VSPHERE_PASS -> vSphere password
* VSPHERE_VCENTER -> vSphere vCenter (IP or hostname)
* VSPHERE_DOM -> vSphere domain

```sh
docker run --ulimit nofile=66000:66000 \
-d \
--name grafana-datacore \
-p 3000:3000 \
-p 8888:8888 \
-p 8086:8086 \
-p 22022:22 \
-p 8125:8125/udp \
-e "DCSSVR=X.X.X.X" \
-e "DCSREST=X.X.X.X" \
-e "DCSUNAME=administrator" \
-e "DCSPWORD=password" \
-e "[email protected]" \
-e "VSPHERE_PASS=password" \
-e "VSPHERE_VCENTER=X.X.X.X" \
-e "VSPHERE_DOM=local" \
lblanc/docker-influxdb-grafana-datacore:latest
```
If you have special characters in the password, do not forget the escapement '\' before (ex: "password!" will be "password\\!")

To stop the container launch:
```sh
Expand Down Expand Up @@ -61,7 +88,11 @@ docker run --ulimit nofile=66000:66000 \
-e "DCSREST=X.X.X.X" \
-e "DCSUNAME=administrator" \
-e "DCSPWORD=password" \
lblanc/grafana-integration
-e "[email protected]" \
-e "VSPHERE_PASS=password" \
-e "VSPHERE_VCENTER=X.X.X.X" \
-e "VSPHERE_DOM=local" \
lblanc/docker-influxdb-grafana-datacore:latest
```


Expand Down Expand Up @@ -93,4 +124,4 @@ Open <http://localhost:3000>
```
Username: grafana
Password: grafana
```
```
20 changes: 19 additions & 1 deletion datacore/config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
sed -i 's/datacore_server = dcs-ip/datacore_server = '${DCSSVR}'/' /etc/datacore/datacore_get_perf.ini && \
sed -i 's/rest_server = rest-ip/rest_server = '${DCSREST}'/' /etc/datacore/datacore_get_perf.ini && \
sed -i 's/user = user/user = '${DCSUNAME}'/' /etc/datacore/datacore_get_perf.ini && \
sed -i 's/passwd = pass/passwd = '${DCSPWORD}'/' /etc/datacore/datacore_get_perf.ini
sed -i 's/passwd = pass/passwd = '${DCSPWORD}'/' /etc/datacore/datacore_get_perf.ini && \
sed -i 's/vcenters = [ "https://ip-vcenter/sdk" ]/vcenters = [ "https://'${VSPHERE_VCENTER}'/sdk" ]/' /etc/telegraf/telegraf.conf && \
sed -i 's/username = "user"/username = "'${VSPHERE_USER}'"/' /etc/telegraf/telegraf.conf && \
sed -i 's/password = "pass"/password = "'${VSPHERE_PASS}'"/' /etc/telegraf/telegraf.conf


if [ -d "/data" ]; then
Expand Down Expand Up @@ -54,5 +57,20 @@ echo "Create Grafana DataCore Dashboard"
python /etc/datacore/datacore-dashboard.py


echo "Set DataCore Dashboard as home"
curl --silent --output /dev/null -X PUT \
http://127.0.0.1:3000/api/user/preferences \
-H 'Accept: application/json' \
-H 'Authorization: Basic Z3JhZmFuYTpncmFmYW5h' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json' \
-d '{"theme":"","homeDashboardId":1,"timezone":""}'

echo "Create Grafana vSphere Dashboards"
python /etc/datacore/vsphere-host.py
python /etc/datacore/vsphere-overview.py
python /etc/datacore/vsphere-vms.py
python /etc/datacore/vsphere-host.py


exec "$@"
4 changes: 2 additions & 2 deletions datacore/datacore-dashboard.py

Large diffs are not rendered by default.

15 changes: 15 additions & 0 deletions datacore/vsphere-datastore.py

Large diffs are not rendered by default.

15 changes: 15 additions & 0 deletions datacore/vsphere-host.py

Large diffs are not rendered by default.

15 changes: 15 additions & 0 deletions datacore/vsphere-overview.py

Large diffs are not rendered by default.

15 changes: 15 additions & 0 deletions datacore/vsphere-vms.py

Large diffs are not rendered by default.

120 changes: 120 additions & 0 deletions telegraf/telegraf.conf
Original file line number Diff line number Diff line change
Expand Up @@ -604,6 +604,126 @@
# INPUT PLUGINS #
###############################################################################


[[inputs.vsphere]]
## List of vCenter URLs to be monitored. These three lines must be uncommented
## and edited for the plugin to work.
vcenters = [ "https://ip-vcenter/sdk" ]
username = "user"
password = "pass"
insecure_skip_verify = true
## VMs
## Typical VM metrics (if omitted or empty, all metrics are collected)
vm_metric_include = [
"cpu.demand.average",
"cpu.usage.average",
"cpu.idle.summation",
"cpu.latency.average",
"cpu.readiness.average",
"cpu.ready.summation",
"cpu.run.summation",
"cpu.usagemhz.average",
"cpu.used.summation",
"cpu.wait.summation",
"mem.active.average",
"mem.granted.average",
"mem.latency.average",
"mem.swapin.average",
"mem.swapinRate.average",
"mem.swapout.average",
"mem.swapoutRate.average",
"mem.usage.average",
"mem.vmmemctl.average",
"net.bytesRx.average",
"net.bytesTx.average",
"net.droppedRx.summation",
"net.droppedTx.summation",
"net.usage.average",
"power.power.average",
"virtualDisk.numberReadAveraged.average",
"virtualDisk.numberWriteAveraged.average",
"virtualDisk.read.average",
"virtualDisk.readOIO.latest",
"virtualDisk.throughput.usage.average",
"virtualDisk.totalReadLatency.average",
"virtualDisk.totalWriteLatency.average",
"virtualDisk.write.average",
"virtualDisk.writeOIO.latest",
"sys.uptime.latest",
]
# vm_metric_exclude = [] ## Nothing is excluded by default
# vm_instances = true ## true by default

## Hosts
## Typical host metrics (if omitted or empty, all metrics are collected)
host_metric_include = [
"cpu.coreUtilization.average",
"cpu.costop.summation",
"cpu.demand.average",
"cpu.idle.summation",
"cpu.latency.average",
"cpu.readiness.average",
"cpu.ready.summation",
"cpu.swapwait.summation",
"cpu.usage.average",
"cpu.usagemhz.average",
"cpu.used.summation",
"cpu.utilization.average",
"cpu.wait.summation",
"disk.deviceReadLatency.average",
"disk.deviceWriteLatency.average",
"disk.kernelReadLatency.average",
"disk.kernelWriteLatency.average",
"disk.numberReadAveraged.average",
"disk.numberWriteAveraged.average",
"disk.read.average",
"disk.totalReadLatency.average",
"disk.totalWriteLatency.average",
"disk.write.average",
"mem.active.average",
"mem.latency.average",
"mem.state.latest",
"mem.swapin.average",
"mem.swapinRate.average",
"mem.swapout.average",
"mem.swapoutRate.average",
"mem.totalCapacity.average",
"mem.usage.average",
"mem.vmmemctl.average",
"net.bytesRx.average",
"net.bytesTx.average",
"net.droppedRx.summation",
"net.droppedTx.summation",
"net.errorsRx.summation",
"net.errorsTx.summation",
"net.usage.average",
"power.power.average",
"storageAdapter.numberReadAveraged.average",
"storageAdapter.numberWriteAveraged.average",
"storageAdapter.read.average",
"storageAdapter.write.average",
"sys.uptime.latest",
]
# host_metric_exclude = [] ## Nothing excluded by default
# host_instances = true ## true by default

## Clusters
cluster_metric_include = [] ## if omitted or empty, all metrics are collected
# cluster_metric_exclude = [] ## Nothing excluded by default
# cluster_instances = true ## true by default

## Datastores
datastore_metric_include = [] ## if omitted or empty, all metrics are collected
# datastore_metric_exclude = [] ## Nothing excluded by default
# datastore_instances = false ## false by default for Datastores only

## Datacenters
datacenter_metric_include = [] ## if omitted or empty, all metrics are collected
datacenter_metric_exclude = [ "*" ] ## Datacenters are not collected by default.
datacenter_instances = false ## false by default for Datastores only
#


# Read metrics about cpu usage
[[inputs.cpu]]
## Whether to report per-cpu stats or not
Expand Down

0 comments on commit 2e66311

Please sign in to comment.