-
-
Save wallace57/90330709a3f90126c7ec6cfe34dce68e to your computer and use it in GitHub Desktop.
Setup prometheus exporters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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