Last active
July 14, 2021 20:51
-
-
Save sdorsett/ae6c3b44407563e25b3d483d5258f740 to your computer and use it in GitHub Desktop.
Installing Prometheus on Centos 7 with consul agent, node_exporter & consul_exporter
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
cd ~/ | |
wget https://releases.hashicorp.com/consul/1.0.2/consul_1.0.2_linux_amd64.zip | |
unzip consul_1.0.2_linux_amd64.zip | |
mv consul /usr/local/bin/ | |
mkdir /etc/consul.d/ | |
tee /etc/consul.d/consul.json << 'EOF' | |
{ | |
"bind_addr": "192.168.100.57", | |
"datacenter": "dc1", | |
"data_dir": "/var/consul", | |
"log_level": "INFO", | |
"enable_syslog": true, | |
"enable_debug": true, | |
"enable_script_checks": true, | |
"node_name": "prometheus", | |
"server": false, | |
"checks": [ | |
{ "id": "/dev/mapper/centos-root usage under 80%", "args": ["/root/check_volume_group.sh", "/dev/mapper/centos-root"], "interval": "60s", "timeout": "1s" } | |
], | |
"rejoin_after_leave": true, | |
"encrypt": "[consul_encryption_key]", | |
"retry_join": ["192.168.100.51","192.168.100.52","192.168.100.53"] | |
} | |
EOF | |
sudo tee /etc/systemd/system/consul.service << 'EOF' | |
[Unit] | |
Description=Consul service discovery agent | |
Requires=network-online.target | |
After=network.target | |
[Service] | |
User=root | |
Group=root | |
PIDFile=/run/consul/consul.pid | |
Restart=on-failure | |
Environment=GOMAXPROCS=2 | |
ExecStart=/usr/sbin/consul agent $OPTIONS -config-dir=/etc/consul.d | |
ExecReload=/bin/kill -s HUP $MAINPID | |
KillSignal=SIGINT | |
TimeoutStopSec=5 | |
[Install] | |
WantedBy=multi-user.target | |
EOF | |
systemctl status consul.service | |
systemctl start consul.service | |
systemctl status consul.service | |
rm -rf ~/consul_1.0.2_linux_amd64.zip | |
wget https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz | |
tar xvfz prometheus-*.tar.gz | |
cd prometheus-2.0.0.linux-amd64 | |
useradd --no-create-home --shell /bin/false prometheus | |
useradd --no-create-home --shell /bin/false node_exporter | |
useradd --no-create-home --shell /bin/false prometheus | |
mkdir /etc/prometheus | |
mkdir /var/lib/prometheus | |
chown prometheus:prometheus /etc/prometheus | |
chown prometheus:prometheus /var/lib/prometheus | |
cp prometheus-2.0.0.linux-amd64/prometheus /usr/local/bin/ | |
cp prometheus-2.0.0.linux-amd64/promtool /usr/local/bin/ | |
chown prometheus:prometheus /usr/local/bin/prometheus | |
chown prometheus:prometheus /usr/local/bin/promtool | |
cp -r prometheus-2.0.0.linux-amd64/consoles /etc/prometheus | |
cp -r prometheus-2.0.0.linux-amd64/console_libraries /etc/prometheus | |
chown -R prometheus:prometheus /etc/prometheus/consoles | |
chown -R prometheus:prometheus /etc/prometheus/console_libraries | |
chown -R prometheus:prometheus /etc/prometheus/consoles | |
rm -rf prometheus-2.0.0.linux-amd64.tar.gz prometheus-2.0.0.linux-amd64 | |
tee /etc/prometheus/prometheus.yml << 'EOF' | |
global: | |
scrape_interval: 15s | |
scrape_configs: | |
- job_name: 'prometheus' | |
scrape_interval: 5s | |
static_configs: | |
- targets: ['localhost:9090'] | |
- job_name: 'node_exporter' | |
scrape_interval: 5s | |
static_configs: | |
- targets: ['localhost:9100'] | |
- job_name: 'consul_exporter' | |
scrape_interval: 5s | |
static_configs: | |
- targets: ['localhost:9107'] | |
EOF | |
chown prometheus:prometheus /etc/prometheus/prometheus.yml | |
tee /etc/systemd/system/prometheus.service << 'EOF' | |
[Unit] | |
Description=Prometheus | |
Wants=network-online.target | |
After=network-online.target | |
[Service] | |
User=prometheus | |
Group=prometheus | |
Type=simple | |
ExecStart=/usr/local/bin/prometheus \ | |
--config.file /etc/prometheus/prometheus.yml \ | |
--storage.tsdb.path /var/lib/prometheus/ \ | |
--web.console.templates=/etc/prometheus/consoles \ | |
--web.console.libraries=/etc/prometheus/console_libraries | |
[Install] | |
WantedBy=multi-user.target | |
EOF | |
systemctl daemon-reload | |
systemctl start prometheus | |
systemctl status prometheus | |
systemctl enable prometheus | |
cd ~/ | |
wget https://github.com/prometheus/node_exporter/releases/download/v0.15.2/node_exporter-0.15.2.linux-amd64.tar.gz | |
tar xvf node_exporter-0.15.2.linux-amd64.tar.gz | |
sudo cp node_exporter-0.15.2.linux-amd64/node_exporter /usr/local/bin | |
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter | |
wget https://github.com/prometheus/consul_exporter/releases/download/v0.3.0/consul_exporter-0.3.0.linux-amd64.tar.gz | |
tar xvf consul_exporter-0.3.0.linux-amd64.tar.gz | |
sudo cp consul_exporter-0.3.0.linux-amd64/consul_exporter /usr/local/bin | |
sudo chown node_exporter:node_exporter /usr/local/bin/consul_exporter | |
tee /etc/systemd/system/node_exporter.service << 'EOF' | |
[Unit] | |
Description=Node Exporter | |
Wants=network-online.target | |
After=network-online.target | |
[Service] | |
User=node_exporter | |
Group=node_exporter | |
Type=simple | |
ExecStart=/usr/local/bin/node_exporter | |
[Install] | |
WantedBy=multi-user.target | |
EOF | |
systemctl daemon-reload | |
systemctl start node_exporter | |
systemctl status node_exporter | |
systemctl enable node_exporter | |
tee /etc/systemd/system/consul_exporter.service << 'EOF' | |
[Unit] | |
Description=Node Exporter | |
Wants=network-online.target | |
After=network-online.target | |
[Service] | |
User=node_exporter | |
Group=node_exporter | |
Type=simple | |
ExecStart=/usr/local/bin/consul_exporter -consul.server http://localhost:8500 | |
[Install] | |
WantedBy=multi-user.target | |
EOF | |
systemctl daemon-reload | |
systemctl start consul_exporter.service | |
systemctl status consul_exporter.service | |
systemctl enable consul_exporter.service | |
systemctl restart prometheus | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment