Skip to content

Instantly share code, notes, and snippets.

@danpawlik
Last active May 21, 2021 06:57
Show Gist options
  • Save danpawlik/810fd7607a69831bfe3929c2f9a5c41c to your computer and use it in GitHub Desktop.
Save danpawlik/810fd7607a69831bfe3929c2f9a5c41c to your computer and use it in GitHub Desktop.
Setup prometheus exporters
#!/bin/bash
BLACKBOX_EXPORTER_VERSION=${BLACKBOX_EXPORTER_VERSION:-'0.19.0'}
MYSQL_EXPORTER_VERSION=${MYSQL_EXPORTER_VERSION:-'0.12.1'}
APACHE_EXPORTER_VERSION=${APACHE_EXPORTER_VERSION:-'0.8.0'}
ZOOKEEPER_EXPORTER_VERSION=${ZOOKEEPER_EXPORTER_VERSION:-'v0.1.12'}
STATSD_EXPORTER_VERSION=${STATSD_EXPORTER_VERSION:-'0.15.0'}
if id -u 'centos'; then
USER='centos'
elif id -u 'fedora'; then
USER='fedora'
elif id -u 'ubuntu'; then
USER='ubuntu'
elif id -u 'debian'; then
USER='debian'else
USER=$USER
fi
if command -v yum ; then
sudo yum install -y curl
elif command -v apt ; then
sudo apt install -y curl
fi
curl -L https://github.com/prometheus/blackbox_exporter/releases/download/v$BLACKBOX_EXPORTER_VERSION/blackbox_exporter-$BLACKBOX_EXPORTER_VERSION.linux-amd64.tar.gz -o /tmp/blackbox_exporter-$BLACKBOX_EXPORTER_VERSION.linux-amd64.tar.gz
curl -L https://github.com/prometheus/mysqld_exporter/releases/download/v$MYSQL_EXPORTER_VERSION/mysqld_exporter-$MYSQL_EXPORTER_VERSION.linux-amd64.tar.gz -o /tmp/mysqld_exporter-$MYSQL_EXPORTER_VERSION.linux-amd64.tar.gz
curl -L https://github.com/Lusitaniae/apache_exporter/releases/download/v$APACHE_EXPORTER_VERSION/apache_exporter-$APACHE_EXPORTER_VERSION.linux-amd64.tar.gz -o /tmp/apache_exporter-$APACHE_EXPORTER_VERSION.linux-amd64.tar.gz
curl -L https://github.com/dabealu/zookeeper-exporter/releases/download/$ZOOKEEPER_EXPORTER_VERSION/zookeeper-exporter-$ZOOKEEPER_EXPORTER_VERSION-linux.tar.gz -o /tmp/zookeeper-exporter-$ZOOKEEPER_EXPORTER_VERSION-linux.tar.gz
curl -L https://github.com/prometheus/statsd_exporter/releases/download/v$STATSD_EXPORTER_VERSION/statsd_exporter-$STATSD_EXPORTER_VERSION.linux-amd64.tar.gz -o /tmp/statsd-exporter-$STATSD_EXPORTER_VERSION-linux.tar.gz
sudo mkdir -p /opt/blackbox_exporter /opt/mysql_exporter /opt/apache_exporter /opt/zookeeper_exporter /opt/statsd_exporter
sudo tar xvzf /tmp/blackbox_exporter-$BLACKBOX_EXPORTER_VERSION.linux-amd64.tar.gz -C /opt/blackbox_exporter --strip=1
sudo tar xvzf /tmp/mysqld_exporter-$MYSQL_EXPORTER_VERSION.linux-amd64.tar.gz -C /opt/mysql_exporter --strip=1
sudo tar xvzf /tmp/apache_exporter-$APACHE_EXPORTER_VERSION.linux-amd64.tar.gz -C /opt/apache_exporter --strip=1
sudo tar xvzf /tmp/zookeeper-exporter-$ZOOKEEPER_EXPORTER_VERSION-linux.tar.gz -C /opt/zookeeper_exporter --strip=1
sudo tar xvzf /tmp/statsd-exporter-$STATSD_EXPORTER_VERSION-linux.tar.gz -C /opt/statsd_exporter --strip=1
# blackbox
sudo cp /opt/blackbox_exporter/blackbox.yml /etc/prometheus/blackbox.yml
cat << EOF | sudo tee /etc/systemd/system/blackbox_exporter.service
[Unit]
Description=Blackbox exporter service for Prometheus
Documentation=https://prometheus.io/docs/
After=network-online.target
[Service]
User=root
Restart=on-failure
EnvironmentFile=/etc/sysconfig/blackbox_exporter
ExecStart=/opt/blackbox_exporter/blackbox_exporter \$OPTIONS
[Install]
WantedBy=multi-user.target
EOF
cat << EOF | sudo tee /etc/sysconfig/blackbox_exporter
OPTIONS="--config.file /etc/prometheus/blackbox.yml"
EOF
# Mysql
cat << EOF | sudo tee /etc/systemd/system/mysql_exporter.service
[Unit]
Description=Blackbox exporter service for Prometheus
Documentation=https://prometheus.io/docs/
After=network-online.target
[Service]
User=root
Restart=on-failure
EnvironmentFile=/etc/sysconfig/mysql_exporter
ExecStart=/opt/mysql_exporter/mysqld_exporter \$OPTIONS
[Install]
WantedBy=multi-user.target
EOF
cat << EOF | sudo tee /etc/sysconfig/mysql_exporter
OPTIONS=""
EOF
# Apache
cat << EOF | sudo tee /etc/systemd/system/apache_exporter.service
[Unit]
Description=Blackbox exporter service for Prometheus
Documentation=https://prometheus.io/docs/
After=network-online.target
[Service]
User=root
Restart=on-failure
EnvironmentFile=/etc/sysconfig/apache_exporter
ExecStart=/opt/apache_exporter/apache_exporter \$OPTIONS
[Install]
WantedBy=multi-user.target
EOF
cat << EOF | sudo tee /etc/sysconfig/apache_exporter
OPTIONS=""
EOF
# Zookeeper
cat << EOF | sudo tee /etc/systemd/system/zookeeper_exportr.service
[Unit]
Description=Blackbox exporter service for Prometheus
Documentation=https://prometheus.io/docs/
After=network-online.target
[Service]
User=root
Restart=on-failure
EnvironmentFile=/etc/sysconfig/zookeeper_exporter
ExecStart=/opt/zookeeper_exporter/zookeeper-exporter \$OPTIONS
[Install]
WantedBy=multi-user.target
EOF
cat << EOF | sudo tee /etc/sysconfig/zookeeper_exporter
OPTIONS="-listen 0.0.0.0:9141 -zk-list localhost:2181"
EOF
# statsd
cat << EOF | sudo tee /etc/systemd/system/statsd_exporter.service
[Unit]
Description=Statsd exporter service for Prometheus
Documentation=https://prometheus.io/docs/
After=network-online.target
[Service]
User=root
Restart=on-failure
EnvironmentFile=/etc/sysconfig/statsd_exporter
ExecStart=/opt/statsd_exporter/statsd_exporter \$OPTIONS
[Install]
WantedBy=multi-user.target
EOF
cat << EOF | sudo tee /etc/sysconfig/statsd_exporter
OPTIONS="--statsd.listen-udp=':9125' --statsd.listen-tcp=':9125' --statsd.mapping-config=/etc/prometheus/statsd-mapping-config"
EOF
cat << EOF | sudo tee /etc/prometheus/statsd-mapping-config
mappings:
- match: "test.dispatcher.*.*.*"
name: "dispatcher_events_total"
labels:
processor: "$1"
action: "$2"
outcome: "$3"
job: "test_dispatcher"
- match: "*.signup.*.*"
name: "signup_events_total"
labels:
provider: "$2"
outcome: "$3"
job: "${1}_server"
EOF
sudo systemctl daemon-reload
for exporter in blackbox_exporter mysql_exporter apache_exporter zookeeper_exporter statsd_exporter; do
sudo mkdir -p /opt/$exporter
sudo chown -R $USER:$USER /opt/$exporter
sudo systemctl enable $exporter
sudo systemctl start $exporter
done
echo -e "\n\n\nDO NOT FORGET TO ADD INTO /etc/prometheus/prometheus.yaml STATIC CONFIGS E.G.:"
echo -e "...
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090', 'localhost:9100', 'localhost:9141', 'localhost:9115', 'localhost:9102']"
cd /opt/blackbox_exporter ; sudo setcap cap_net_raw+ep blackbox_exporter
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment