├── README.md ├── install_grafana_server_ubuntu.sh ├── install_prometheus_node_exporter.sh ├── install_prometheus_server_ubuntu.sh ├── install_prometheus_windows_exporter.ps1 └── prometheus.yml /README.md: -------------------------------------------------------------------------------- 1 | # Prometheus and Grafana 2 | Scripts for Prometheus Monitoring System 3 | 4 | 5 | Copyleft(c) by Denis Astahov. 6 | -------------------------------------------------------------------------------- /install_grafana_server_ubuntu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #-------------------------------------------------------------------- 3 | # Script to Install Grafana Server on Linux Ubuntu (22.04, 24.04) 4 | # Include Prometheus DataSource Configuration 5 | # Developed by Denis Astahov in 2024 6 | #-------------------------------------------------------------------- 7 | # https://grafana.com/grafana/download 8 | GRAFANA_VERSION="10.4.2" 9 | PROMETHEUS_URL="http://172.31.29.90:9090" 10 | 11 | 12 | apt-get install -y apt-transport-https software-properties-common wget 13 | mkdir -p /etc/apt/keyrings/ 14 | wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null 15 | echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list 16 | apt-get update 17 | apt-get install -y adduser libfontconfig1 musl 18 | 19 | wget https://dl.grafana.com/oss/release/grafana_${GRAFANA_VERSION}_amd64.deb 20 | dpkg -i grafana_${GRAFANA_VERSION}_amd64.deb 21 | 22 | echo "export PATH=/usr/share/grafana/bin:$PATH" >> /etc/profile 23 | 24 | 25 | cat < /etc/grafana/provisioning/datasources/prometheus.yaml 26 | apiVersion: 1 27 | 28 | datasources: 29 | - name: Prometheus 30 | type: prometheus 31 | url: ${PROMETHEUS_URL} 32 | EOF 33 | 34 | systemctl daemon-reload 35 | systemctl enable grafana-server 36 | systemctl start grafana-server 37 | systemctl status grafana-server 38 | 39 | -------------------------------------------------------------------------------- /install_prometheus_node_exporter.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #-------------------------------------------------------------------- 3 | # Script to Install Prometheus Node_Exporter on Linux 4 | # Tested on Ubuntu 22.04, 24.04, Amazon Linux 2023 5 | # Developed by Denis Astahov in 2024 6 | #-------------------------------------------------------------------- 7 | # https://github.com/prometheus/node_exporter/releases 8 | NODE_EXPORTER_VERSION="1.7.0" 9 | 10 | cd /tmp 11 | wget https://github.com/prometheus/node_exporter/releases/download/v$NODE_EXPORTER_VERSION/node_exporter-$NODE_EXPORTER_VERSION.linux-amd64.tar.gz 12 | tar xvfz node_exporter-$NODE_EXPORTER_VERSION.linux-amd64.tar.gz 13 | cd node_exporter-$NODE_EXPORTER_VERSION.linux-amd64 14 | 15 | mv node_exporter /usr/bin/ 16 | rm -rf /tmp/node_exporter* 17 | 18 | useradd -rs /bin/false node_exporter 19 | chown node_exporter:node_exporter /usr/bin/node_exporter 20 | 21 | 22 | cat < /etc/systemd/system/node_exporter.service 23 | [Unit] 24 | Description=Prometheus Node Exporter 25 | After=network.target 26 | 27 | [Service] 28 | User=node_exporter 29 | Group=node_exporter 30 | Type=simple 31 | Restart=on-failure 32 | ExecStart=/usr/bin/node_exporter 33 | 34 | [Install] 35 | WantedBy=multi-user.target 36 | EOF 37 | 38 | systemctl daemon-reload 39 | systemctl start node_exporter 40 | systemctl enable node_exporter 41 | systemctl status node_exporter 42 | node_exporter --version 43 | -------------------------------------------------------------------------------- /install_prometheus_server_ubuntu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #-------------------------------------------------------------------- 3 | # Script to Install Prometheus Server on Linux Ubuntu 4 | # Tested on Ubuntu 22.04, 24.04 5 | # Developed by Denis Astahov in 2024 6 | #-------------------------------------------------------------------- 7 | PROMETHEUS_VERSION="2.51.1" 8 | PROMETHEUS_FOLDER_CONFIG="/etc/prometheus" 9 | PROMETHEUS_FOLDER_TSDATA="/etc/prometheus/data" 10 | 11 | cd /tmp 12 | wget https://github.com/prometheus/prometheus/releases/download/v$PROMETHEUS_VERSION/prometheus-$PROMETHEUS_VERSION.linux-amd64.tar.gz 13 | tar xvfz prometheus-$PROMETHEUS_VERSION.linux-amd64.tar.gz 14 | cd prometheus-$PROMETHEUS_VERSION.linux-amd64 15 | 16 | mv prometheus /usr/bin/ 17 | rm -rf /tmp/prometheus* 18 | 19 | mkdir -p $PROMETHEUS_FOLDER_CONFIG 20 | mkdir -p $PROMETHEUS_FOLDER_TSDATA 21 | 22 | 23 | cat < $PROMETHEUS_FOLDER_CONFIG/prometheus.yml 24 | global: 25 | scrape_interval: 15s 26 | 27 | scrape_configs: 28 | - job_name : "prometheus" 29 | static_configs: 30 | - targets: ["localhost:9090"] 31 | EOF 32 | 33 | useradd -rs /bin/false prometheus 34 | chown prometheus:prometheus /usr/bin/prometheus 35 | chown prometheus:prometheus $PROMETHEUS_FOLDER_CONFIG 36 | chown prometheus:prometheus $PROMETHEUS_FOLDER_CONFIG/prometheus.yml 37 | chown prometheus:prometheus $PROMETHEUS_FOLDER_TSDATA 38 | 39 | 40 | cat < /etc/systemd/system/prometheus.service 41 | [Unit] 42 | Description=Prometheus Server 43 | After=network.target 44 | 45 | [Service] 46 | User=prometheus 47 | Group=prometheus 48 | Type=simple 49 | Restart=on-failure 50 | ExecStart=/usr/bin/prometheus \ 51 | --config.file ${PROMETHEUS_FOLDER_CONFIG}/prometheus.yml \ 52 | --storage.tsdb.path ${PROMETHEUS_FOLDER_TSDATA} 53 | 54 | [Install] 55 | WantedBy=multi-user.target 56 | EOF 57 | 58 | systemctl daemon-reload 59 | systemctl start prometheus 60 | systemctl enable prometheus 61 | systemctl status prometheus --no-pager 62 | prometheus --version -------------------------------------------------------------------------------- /install_prometheus_windows_exporter.ps1: -------------------------------------------------------------------------------- 1 | #-------------------------------------------------------------------- 2 | # PowerShell Script to Install Prometheus Windows_Exporter on Windows 3 | # Tested on Windows Server 2019, 2022 4 | # Developed by Denis Astahov in 2024 5 | #-------------------------------------------------------------------- 6 | # https://github.com/prometheus-community/windows_exporter/releases 7 | $WINDOWS_EXPORTER_VERSION="0.25.1" 8 | $URL="https://github.com/prometheus-community/windows_exporter/releases/download/v$WINDOWS_EXPORTER_VERSION/windows_exporter-$WINDOWS_EXPORTER_VERSION-amd64.msi" 9 | 10 | 11 | Invoke-WebRequest $URL -OutFile window_exporter.msi 12 | Start-Process "msiexec.exe" -ArgumentList "/i window_exporter.msi /qn" -Wait 13 | Remove-Item window_exporter.msi 14 | Get-Service windows_exporter 15 | -------------------------------------------------------------------------------- /prometheus.yml: -------------------------------------------------------------------------------- 1 | global: 2 | scrape_interval: 15s 3 | 4 | 5 | scrape_configs: 6 | - job_name : "prometheus" 7 | static_configs: 8 | - targets: ["localhost:9090"] 9 | 10 | - job_name : "ubuntu-servers" 11 | static_configs: 12 | - targets: 13 | - 10.0.0.1:9100 14 | - 10:0.0.2:9100 15 | 16 | - job_name : "windows-servers" 17 | static_configs: 18 | - targets: 19 | - 10.0.0.3:9182 20 | - 10:0.0.4:9182 21 | 22 | 23 | - job_name : "prod-servers" 24 | ec2_sd_configs: 25 | - port: 9100 26 | filters: 27 | - name : tag:Environment 28 | values: ["prod"] 29 | 30 | 31 | - job_name : "dev-servers" 32 | ec2_sd_configs: 33 | - port: 9100 34 | filters: 35 | - name : tag:Environment 36 | values: ["dev"] 37 | --------------------------------------------------------------------------------