X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=monitor%2Fmonitoring.sh;h=8ad388a317e6075a394a2931a91d31633be13b7c;hb=HEAD;hp=16cb3086eeb5a6a6c8e9e9f9099f5bd7952591da;hpb=1baf04d3b5f2348977dc3481fd2dd5fac181d84c;p=bottlenecks.git diff --git a/monitor/monitoring.sh b/monitor/monitoring.sh index 16cb3086..5442d331 100644 --- a/monitor/monitoring.sh +++ b/monitor/monitoring.sh @@ -7,47 +7,126 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## - MONITOR_CONFIG="/home/opnfv/bottlenecks/monitor/config" -GRAFANA="/home/opnfv/bottlenecks/monitor/grafana" +DISPATCH="/home/opnfv/bottlenecks/monitor/dispatch" +OPENSTACK_ENV=${MONITOR_CONFIG}/openstack_exporter.conf + +usage="Script to run the tests in Bottlenecks. + +usage: + bash $(basename "$0") [-h|--help] [-i|--installer ] [-o|--openstack-env ] + +where: + -h|--help show the help text + -i|--installer specify the installer for the system to be monitored + + one of the following: + (apex, compass) + -o|--opentack-env specify the openstack env file for openstack monitoring + defalt value is \"${MONITOR_CONFIG}/openstack_exporter.conf\" + +examples: + $(basename "$0") -i compass" + + +info () { + logger -s -t "BOTTLENECKS INFO" "$*" +} + +error () { + logger -s -t "BOTTLENECKS ERROR" "$*" + exit 1 +} + +# Process input variables +while [[ $# > 0 ]] + do + key="$1" + case $key in + -h|--help) + echo "$usage" + exit 0 + shift + ;; + -i|--installer) + INSTALLER_TYPE="$2" + shift + ;; + -o|--openstack-env) + OPENSTACK_ENV="$2" + shift + ;; + *) + error "unkown input options $1 $2" + exit 1 + ;; + esac + shift +done + + +barometer_client_install_sh="/home/opnfv/bottlenecks/monitor/dispatch/install_barometer_client.sh" +barometer_client_install_conf="/home/opnfv/bottlenecks/monitor/config/barometer_client.conf" + +cadvisor_client_install_sh="/home/opnfv/bottlenecks/monitor/dispatch/install_cadvisor_client.sh" + +collectd_client_install_sh="/home/opnfv/bottlenecks/monitor/dispatch/install_collectd_client.sh" +collectd_client_install_conf="/home/opnfv/bottlenecks/monitor/config/collectd_client.conf" + +# INSTALL GRAFANA + PROMETHEUS + CADVISOR + BAROMETER on the JUMPERSERVER +# # Node-Exporter +echo == installation of monitoring module is started == + +# # Collectd +# # Configure IP Address in collectd server configuration +# python ${DISPATCH}/server_ip_configure.py ${MONITOR_CONFIG}/collectd_server.conf +# sudo docker run --name bottlenecks-collectd -d \ +# --privileged \ +# -v ${MONITOR_CONFIG}/collectd_server.conf:/etc/collectd/collectd.conf:ro \ +# -v /proc:/mnt/proc:ro \ +# fr3nd/collectd:5.5.0-1 + +set +e +# Prometheus +sudo docker run --name bottlenecks-prometheus \ + -d -p 9090:9090 \ + -v ${MONITOR_CONFIG}/prometheus.yaml:/etc/prometheus/prometheus.yml \ + prom/prometheus:v1.7.1 + +# Collectd-Exporter +sudo docker run --name bottlenecks-collectd-exporter \ + -d -p 9103:9103 -p 25826:25826/udp \ + prom/collectd-exporter:0.3.1 \ + -collectd.listen-address=":25826" -# Node-Exporter sudo docker run --name bottlenecks-node-exporter \ -d -p 9100:9100 \ -v "/proc:/host/proc:ro" \ -v "/sys:/host/sys:ro" \ -v "/:/rootfs:ro" \ - --net="host" \ quay.io/prometheus/node-exporter:v0.14.0 \ -collector.procfs /host/proc \ -collector.sysfs /host/sys \ -collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)" -# Collectd -sudo docker run --name bottlenecks-collectd -d \ - --privileged \ - -v ${MONITOR_CONFIG}:/etc/collectd:ro \ - -v /proc:/mnt/proc:ro \ - fr3nd/collectd:5.5.0-1 - -# Collectd-Exporter -sudo docker run --name bottlenecks-collectd-exporter \ - -d -p 9103:9103 \ - -p 25826:25826/udp prom/collectd-exporter:0.3.1 \ - -collectd.listen-address=":25826" - -# Prometheus -sudo docker run --name bottlenecks-prometheus \ - -d -p 9090:9090 \ - -v ${MONITOR_CONFIG}/prometheus.yaml:/etc/prometheus/prometheus.yml \ - prom/prometheus:v1.7.1 +# Openstack-Exporter +sudo docker run --name bottlenecks-openstack-exporter \ + -v /tmp:/tmp \ + -p 9104:9104 --env-file ${OPENSTACK_ENV} \ + -d gabrielyuyang/openstack-exporter:1.0 # Grafana sudo docker run --name bottlenecks-grafana \ -d -p 3000:3000 \ - -v ${GRAFANA}/config/grafana.ini:/etc/grafana/grafana.ini \ + -v ${MONITOR_CONFIG}/grafana.ini:/etc/grafana/grafana.ini \ grafana/grafana:4.5.0 +# Automate Prometheus Datasource and Grafana Dashboard creation +set -e +sleep 5 +python ${DISPATCH}/../dashboard/automated_dashboard_datasource.py + +set +e # Cadvisor sudo docker run \ --volume=/:/rootfs:ro \ @@ -57,14 +136,42 @@ sudo docker run \ --volume=/dev/disk/:/dev/disk:ro \ --publish=8080:8080 \ --detach=true \ - --name=cadvisor \ - google/cadvisor:v0.25.0 \ -storage_driver=Prometheus + --name=bottlenecks-cadvisor \ + google/cadvisor:v0.25.0 + -# Automate Collectd Client -python automate_collectd_client.py +set -e +# Barometer +# Configure IP Address in barometer server configuration +sleep 5 +python ${DISPATCH}/server_ip_configure.py ${MONITOR_CONFIG}/barometer_server.conf + +set +e +# Install on jumpserver +docker pull opnfv/barometer +sudo docker run --name bottlenecks-barometer -d \ + -v ${MONITOR_CONFIG}/barometer_server.conf:/src/barometer/src/collectd/collectd/src/collectd.conf \ + -v ${MONITOR_CONFIG}/barometer_server.conf:/opt/collectd/etc/collectd.conf \ + -v /var/run:/var/run \ + -v /tmp:/tmp \ + --privileged opnfv/barometer /run_collectd.sh + +# INSTALL BAROMETER + CADVISOR (+ COLLECTD) CLIENTS on COMPUTE/CONTROL NODES +# Configure IP Address in barometer client configuration +python ${DISPATCH}/client_ip_configure.py ${MONITOR_CONFIG}/barometer_client.conf + +# Automate Barometer client installation +python ${DISPATCH}/install_clients.py \ + -i ${INSTALLER_TYPE} -s ${barometer_client_install_sh} \ + -c ${barometer_client_install_conf} + +# # Configure IP Address in collectd client configuration +# python ${DISPATCH}/client_ip_configure.py ${MONITOR_CONFIG}/collectd_client.conf +# # Automate Collectd Client installation +# python ${DISPATCH}/automate_collectd_client.py # Automate Cadvisor Client -python automate_cadvisor_client.py +python ${DISPATCH}/install_clients.py \ + -i ${INSTALLER_TYPE} -s ${cadvisor_client_install_sh} -# Automate Prometheus Datasource and Grafana Dashboard creation -python automated-dashboard-datasource.py +echo == installation of monitoring module is finished ==