diff --git a/README.md b/README.md new file mode 100755 index 0000000..02e2c74 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# prometheus-course +Course files for Monitoring and Alerting with Prometheus diff --git a/flask-prometheus/.gitignore b/flask-prometheus/.gitignore old mode 100644 new mode 100755 diff --git a/flask-prometheus/Dockerfile b/flask-prometheus/Dockerfile old mode 100644 new mode 100755 diff --git a/flask-prometheus/docker-compose.yml b/flask-prometheus/docker-compose.yml old mode 100644 new mode 100755 diff --git a/flask-prometheus/requirements.txt b/flask-prometheus/requirements.txt old mode 100644 new mode 100755 diff --git a/grafana/dashboards/node-dashboard.json b/grafana/dashboards/node-dashboard.json old mode 100644 new mode 100755 diff --git a/grafana/provisioning/dashboards.yaml b/grafana/provisioning/dashboards.yaml old mode 100644 new mode 100755 diff --git a/grafana/provisioning/datasource-prometheus.yaml b/grafana/provisioning/datasource-prometheus.yaml old mode 100644 new mode 100755 diff --git a/kubernetes/README.md b/kubernetes/README.md old mode 100644 new mode 100755 diff --git a/scripts/1-install.sh b/scripts/1-install.sh index e108cb3..5bb22e1 100755 --- a/scripts/1-install.sh +++ b/scripts/1-install.sh @@ -1,5 +1,5 @@ #!/bin/bash -PROMETHEUS_VERSION="2.2.1" +PROMETHEUS_VERSION="2.21.0" wget https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz tar -xzvf prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz cd prometheus-${PROMETHEUS_VERSION}.linux-amd64/ diff --git a/scripts/2-node-exporter.sh b/scripts/2-node-exporter.sh index 141da18..c9812c5 100755 --- a/scripts/2-node-exporter.sh +++ b/scripts/2-node-exporter.sh @@ -1,5 +1,5 @@ #!/bin/bash -NODE_EXPORTER_VERSION="0.16.0" +NODE_EXPORTER_VERSION="1.0.1" wget https://github.com/prometheus/node_exporter/releases/download/v${NODE_EXPORTER_VERSION}/node_exporter-${NODE_EXPORTER_VERSION}.linux-amd64.tar.gz tar -xzvf node_exporter-${NODE_EXPORTER_VERSION}.linux-amd64.tar.gz cd node_exporter-${NODE_EXPORTER_VERSION}.linux-amd64 diff --git a/scripts/4-install-alertmanager.sh b/scripts/4-install-alertmanager.sh index 3f85abc..4632727 100755 --- a/scripts/4-install-alertmanager.sh +++ b/scripts/4-install-alertmanager.sh @@ -1,5 +1,5 @@ #!/bin/bash -ALERTMANAGER_VERSION="0.15.0" +ALERTMANAGER_VERSION="0.21.0" wget https://github.com/prometheus/alertmanager/releases/download/v${ALERTMANAGER_VERSION}/alertmanager-${ALERTMANAGER_VERSION}.linux-amd64.tar.gz tar xvzf alertmanager-${ALERTMANAGER_VERSION}.linux-amd64.tar.gz cd alertmanager-${ALERTMANAGER_VERSION}.linux-amd64/ diff --git a/scripts/7-snmp-exporter.sh b/scripts/7-snmp-exporter.sh new file mode 100755 index 0000000..9da27e9 --- /dev/null +++ b/scripts/7-snmp-exporter.sh @@ -0,0 +1,58 @@ +#!/bin/bash +SNMP_EXPORTER_VERSION="0.19.0" +wget https://github.com/prometheus/snmp_exporter/releases/download/v${SNMP_EXPORTER_VERSION}/snmp_exporter-${SNMP_EXPORTER_VERSION}.linux-amd64.tar.gz +tar -xzvf snmp_exporter-${SNMP_EXPORTER_VERSION}.linux-amd64.tar.gz +cd snmp_exporter-${SNMP_EXPORTER_VERSION}.linux-amd64 +cp snmp_exporter /usr/local/bin + +#https://github.com/prometheus/snmp_exporter/releases/download/v0.19.0/snmp_exporter-0.19.0.linux-amd64.tar.gz + +# create user +useradd --no-create-home --shell /bin/false snmp_exporter + +chown snmp_exporter:snmp_exporter /usr/local/bin/snmp_exporter + +echo '[Unit] +Description=Node Exporter +Wants=network-online.target +After=network-online.target + +[Service] +User=snmp_exporter +Group=snmp_exporter +Type=simple +ExecStart=/usr/local/bin/snmp_exporter + +[Install] +WantedBy=multi-user.target' > /etc/systemd/system/snmp_exporter.service + +# enable snmp_exporter in systemctl +systemctl daemon-reload +systemctl start snmp_exporter +systemctl enable snmp_exporter + + +echo "Setup complete. +Add the following lines to /etc/prometheus/prometheus.yml: + +# A scrape configuration containing exactly one endpoint to scrape: +scrape_configs: + # Cisco + - job_name: 'Cisco' + scrape_interval: 120s + scrape_timeout: 120s + file_sd_configs: + - files : + - /etc/prometheus/targetCisco.yml + # SNMP device. + metrics_path: /snmp + params: + module: [Cisco] #which OID's we will be querying in + relabel_configs: + - source_labels: [__address__] + target_label: __param_target + - target_label: __address__ + replacement: 127.0.0.1:9116 # The SNMP exporter's real hostname:port. + +" + diff --git a/scripts/8-haproxy-exporter.sh b/scripts/8-haproxy-exporter.sh new file mode 100755 index 0000000..a491a2b --- /dev/null +++ b/scripts/8-haproxy-exporter.sh @@ -0,0 +1,43 @@ +#!/bin/bash +HAPROXY_EXPORTER_VERSION="0.12.0" +#https://github.com/prometheus/haproxy_exporter/releases/download/v0.12.0/haproxy_exporter-0.12.0.linux-amd64.tar.gz +wget https://github.com/prometheus/haproxy_exporter/releases/download/v${HAPROXY_EXPORTER_VERSION}/haproxy_exporter-${HAPROXY_EXPORTER_VERSION}.linux-amd64.tar.gz +tar -xzvf haproxy_exporter-${HAPROXY_EXPORTER_VERSION}.linux-amd64.tar.gz +cd haproxy_exporter-${HAPROXY_EXPORTER_VERSION}.linux-amd64 +cp haproxy_exporter /usr/local/bin + +# create user +useradd --no-create-home --shell /bin/false haproxy_exporter + +chown haproxy_exporter:haproxy_exporter /usr/local/bin/haproxy_exporter + +echo '[Unit] +Description=Haproxy Exporter +Wants=network-online.target +After=network-online.target + +[Service] +User=haproxy_exporter +Group=haproxy_exporter +Type=simple +ExecStart=/usr/local/bin/haproxy_exporter \ +--haproxy.scrape-uri="http://ip:9595/stats;csv" + +[Install] +WantedBy=multi-user.target' > /etc/systemd/system/haproxy_exporter.service + +# enable haproxy_exporter in systemctl +systemctl daemon-reload +systemctl start haproxy_exporter +systemctl enable haproxy_exporter + + +echo "Setup complete. +Add the following lines to /etc/prometheus/prometheus.yml: + + - job_name: 'haproxy_exporter' + scrape_interval: 5s + static_configs: + - targets: ['localhost:9100'] +" + diff --git a/scripts/install-blackbox-exporter.sh b/scripts/install-blackbox-exporter.sh new file mode 100755 index 0000000..d3ce0f5 --- /dev/null +++ b/scripts/install-blackbox-exporter.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +#https://github.com/prometheus/blackbox_exporter/releases/download/v0.18.0/blackbox_exporter-0.18.0.linux-amd64.tar.gz +BLACKBOX_EXPORTER_VERSION="0.18.0" +wget https://github.com/prometheus/blackbox_exporter/releases/download/v${BLACKBOX_EXPORTER_VERSION}/blackbox_exporter-${BLACKBOX_EXPORTER_VERSION}.linux-amd64.tar.gz +tar -xzvf consul_exporter-${BLACKBOX_EXPORTER_VERSION}.linux-amd64.tar.gz +cd consul_exporter-${BLACKBOX_EXPORTER_VERSION}.linux-amd64 +cp consul_exporter /usr/local/bin + +# create user +useradd --no-create-home --shell /bin/false blackbox_exporter + +chown blackbox_exporter:blackbox_exporter /usr/local/bin/blackbox_exporter + +echo '[Unit] +Description=blackbox_exporter +Wants=network-online.target +After=network-online.target + +[Service] +User=blackbox_exporter +Group=blackbox_exporter +Type=service +ExecStart=/usr/local/bin/blackbox_exporter + +[Install] +WantedBy=multi-user.target' > /etc/systemd/system/blackbox_exporter.service + +# enable blackbox_exporter in systemctl +systemctl daemon-reload +systemctl start blackbox_exporter +systemctl enable blackbox_exporter + + +echo "Setup complete. +Add the following lines to /etc/prometheus/prometheus.yml: + + + - job_name: blackbox_metadata + params: + module: [http_2xx] + target: + - https://wikipedia.com + metrics_path: /probe + scrape_interval: 30s + scrape_timeout: 10s + static_configs: + - targets: + - south.rootsami.dev:9115 + - north.rootsami.dev:9115 + - east.rootsami.dev:9115 + relabel_configs: + - source_labels: [__param_target] + target_label: target + - source_labels: [__address__] + separator: ';' + regex: '(.*):.*' + target_label: instance + replacement: 'ip:9115' +" diff --git a/spring-boot-prometheus/Dockerfile b/spring-boot-prometheus/Dockerfile old mode 100644 new mode 100755 diff --git a/spring-boot-prometheus/README.md b/spring-boot-prometheus/README.md old mode 100644 new mode 100755 diff --git a/spring-boot-prometheus/pom.xml b/spring-boot-prometheus/pom.xml old mode 100644 new mode 100755 diff --git a/spring-boot-prometheus/src/main/java/io/in4it/monitoring/springboot/Application.java b/spring-boot-prometheus/src/main/java/io/in4it/monitoring/springboot/Application.java old mode 100644 new mode 100755 diff --git a/spring-boot-prometheus/src/main/java/io/in4it/monitoring/springboot/ApplicationController.java b/spring-boot-prometheus/src/main/java/io/in4it/monitoring/springboot/ApplicationController.java old mode 100644 new mode 100755 diff --git a/spring-boot-prometheus/src/main/resources/application.properties b/spring-boot-prometheus/src/main/resources/application.properties old mode 100644 new mode 100755 diff --git a/spring-boot-prometheus/src/test/java/io/in4it/monitoring/springboot/ApplicationTests.java b/spring-boot-prometheus/src/test/java/io/in4it/monitoring/springboot/ApplicationTests.java old mode 100644 new mode 100755 diff --git a/use-cases/ec2-auto-discovery/lab.txt b/use-cases/ec2-auto-discovery/lab.txt old mode 100644 new mode 100755