Prometheus + node-exporter的搭建(脚本式安装)

前提prometheus和node-exporter节点都可以正常访问互联网


IPADDRESS1=PROMTHEUS_IPADDRESS
IPADDRESS2=NODE_EXPORTER_IPADDRESS

~node-exporter节点


(1)重启网络服务
systemctl restart network 

(2)安装wget服务,并且更换yum源仓库
yum -y install wget && wget -O /etc/yum.repos.d/CentOs-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo && yum clean all && yum makecache

(3)删除ssh的相关的文件,并且生成ssh免密登录文件,安装sshpass,把免密登录文件传到prometheus端
 rm -rf ~/.ssh/{known_hosts,id_rsa*} && ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa &> /dev/null && sed -i '/StrictHostKeyChecking/c StrictHostKeyChecking no' /etc/ssh/ssh_config && rpm -q sshpass &> /dev/null || yum -y install sshpass &> /dev/null && sshpass -p ${PASSWORD} ssh-copy-id -i ${USER}@${IPADDRESS1}

(4)编辑node-exporter.sh文件,执行node-exporter.sh文件

vi node-exporter.sh

#!/bin/bash

setenforce 0 &&
iptables -I INPUT -p tcp --dport 9100 -j ACCEPT &&
iptables-save > /dev/null  &&
mkdir -p /data/apps > /dev/null &&
cd /data/apps &&
wget https://githubfast.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz > /dev/null &&
echo "下载node-exporters压缩包完成" &&
tar -zxvf node_exporter-1.4.0.linux-amd64.tar.gz -C /usr/local > /dev/null &&
cd /usr/local &&
ln -s node_exporter-1.4.0.linux-amd64 node_exporter &&
echo "[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/node_exporter/node_exporter
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target" | tee -i /usr/lib/systemd/system/node_exporter.service > /dev/null &&
systemctl enable node_exporter && 
systemctl start node_exporter && 
systemctl status node_exporter

sh node-exporter.sh

~prometheus节点


(1)重启网络服务
systemctl restart network 

(2)安装wget服务,并且更换yum源仓库
yum -y install wget && wget -O /etc/yum.repos.d/CentOs-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo && yum clean all && yum makecache

(3)删除ssh的相关的文件,并且生成ssh免密登录文件,安装sshpass,把免密登录文件传到node-exporter端
rm -rf ~/.ssh/{known_hosts,id_rsa*} && ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa &> /dev/null && sed -i '/StrictHostKeyChecking/c StrictHostKeyChecking no' /etc/ssh/ssh_config && rpm -q sshpass &> /dev/null || yum -y install sshpass &> /dev/null && sshpass -p ${PASSWORD} ssh-copy-id -i ${USER}@${IPADDRESS2} 

(4)编辑prometheus.sh和node_join.sh,执行prometheus.sh和node_join.sh文件

vi prometheus.sh

#!/bin/bash

setenforce 0 &&
iptables -I INPUT -p tcp --dport 9090 -j ACCEPT &&
iptables-save &&
yum -y install wget > /dev/null &&
mkdir -p /data/apps &&
cd /data/apps &&
echo "下载压缩包中..." &&
wget https://githubfast.com/prometheus/prometheus/releases/download/v2.37.2/prometheus-2.37.2.linux-amd64.tar.gz > /dev/null &&
echo "下载完成" &&
echo "解压中..." &&
tar -zxvf prometheus-2.37.2.linux-amd64.tar.gz -C /usr/local > /dev/null &&
echo "解压完成" &&
cd /usr/local &&
ln -s prometheus-2.37.2.linux-amd64 prometheus &&
cd /usr/local/prometheus &&
./prometheus --version &&
echo "[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target

[Service]
# Type设置为notify时,服务会不断重启
Type=simple
User=root
# --storage.tsdb.path是可选项,默认数据目录在运行目录的./dada目录中
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus --web.enable-lifecycle
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target" | tee -i /usr/lib/systemd/system/prometheus.service > /dev/null &&
systemctl enable prometheus > /dev/null && 
systemctl start prometheus > /dev/null && 
systemctl status prometheus

vi node_join.sh

#!/bin/bash

#对应被监控的node名称
NODENAME=$1
#对应被监控的IP地址
IPADDRESS=$2
echo "
  - job_name: "$NODENAME"
    static_configs:
      - targets: ["$IPADDRESS:9100"]
    " | tee -a /usr/local/prometheus/prometheus.yml > /dev/null &&
/usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml &&
curl  -X POST http://127.0.0.1:9090/-/reload

sh prometheus.sh && ssh node_join.sh NODEX_EXPORTER_NAME NODEX_EXPORTER_IPADDRESS

---------------------------------------------------------------------------------------------------------------------------

或者

~prometheus节点

(1)编辑以下多个文件。

注意:文件的路径都是在/root/文件夹,prometheus-2.37.2.linux-amd64.tar.gz、node_exporter-1.4.0.linux-amd64.tar.gz下载到/data/apps文件夹,prometheus和node_exporter解压到/usr/local文件夹

## 在prometheus节点上执行的auto_prometheus_node_exporter.sh文件,为node_exporter节点对prometheus节点的ssh免密登录

vi auto_prometheus_node_exporter.sh

#!/bin/bash

IPADDRESS1="$1"
IPADDRESS2="$2"
PASSWORD="root"
USER="root"

systemctl restart network && yum -y install wget && wget -O /etc/yum.repos.d/CentOs-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo && yum clean all && yum makecache && rm -rf ~/.ssh/{known_hosts,id_rsa*} && ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa &> /dev/null && sed -i '/StrictHostKeyChecking/c StrictHostKeyChecking no' /etc/ssh/ssh_config && rpm -q sshpass &> /dev/null || yum -y install sshpass &> /dev/null && sshpass -p ${PASSWORD} ssh-copy-id -i ${USER}@${IPADDRESS2} &> /dev/null && echo "success"

## 在prometheus节点上执行的auto_prometheus_node_exporter_1文件,为prometheus节点对node_exporter节点的ssh免密登录

vi auto_prometheus_node_exporter_1.sh

#!/bin/bash

IPADDRESS1="$1"
IPADDRESS2="$2"
PASSWORD="root"
USER="root"

systemctl restart network && yum -y install wget && wget -O /etc/yum.repos.d/CentOs-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo && yum clean all && yum makecache && rm -rf ~/.ssh/{known_hosts,id_rsa*} && ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa &> /dev/null && sed -i '/StrictHostKeyChecking/c StrictHostKeyChecking no' /etc/ssh/ssh_config && rpm -q sshpass &> /dev/null || yum -y install sshpass &> /dev/null && sshpass -p ${PASSWORD} ssh-copy-id -i ${USER}@${IPADDRESS2} &> /dev/null && echo "success" && scp /root/auto_prometheus_node_exporter.sh ${USER}@${IPADDRESS2}:/root/auto_prometheus_node_exporter.sh && sshpass -p ${PASSWORD} ssh -tt ${USER}@${IPADDRESS2} "systemctl restart network ; sh /root/auto_prometheus_node_exporter.sh ${IPADDRESS2} ${IPADDRESS1}" && echo "success_1"

## 在prometheus节点上执行的prometheus.sh文件及部署prometheus,使用scp命令把node-exporter.sh传到node_exporter节点并且部署node-exporter,最后在prometheus节点上执行node_join.sh,把node-exporter节点加入到prometheus节点

vi auto_prometheus_node_exporter_2.sh

#!/bin/bash

PASSWORD="root"
USER="root"
#对应被监控的IP地址
IPADDRESS2="$2"
#对应被监控的node名称
NODENAME="$1"

sh /root/prometheus.sh && echo "prometheus.sh success" && scp /root/node-exporter.sh ${USER}@${IPADDRESS2}:/root/node-exporter.sh && sshpass -p ${PASSWORD} ssh -tt ${USER}@${IPADDRESS2}  "sh /root/node-exporter.sh" && echo "node-exporter.sh success" && sh /root/node_join.sh ${NODENAME} ${IPADDRESS2} && echo "node_join success"

vi prometheus.sh

#!/bin/bash

setenforce 0 &&
iptables -I INPUT -p tcp --dport 9090 -j ACCEPT &&
iptables-save &&
yum -y install wget > /dev/null &&
mkdir -p /data/apps &&
cd /data/apps &&
echo "下载压缩包中..." &&
wget https://githubfast.com/prometheus/prometheus/releases/download/v2.37.2/prometheus-2.37.2.linux-amd64.tar.gz > /dev/null &&
echo "下载完成" &&
echo "解压中..." &&
tar -zxvf prometheus-2.37.2.linux-amd64.tar.gz -C /usr/local > /dev/null &&
echo "解压完成" &&
cd /usr/local &&
ln -s prometheus-2.37.2.linux-amd64 prometheus &&
cd /usr/local/prometheus &&
./prometheus --version &&
echo "[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target

[Service]
# Type设置为notify时,服务会不断重启
Type=simple
User=root
# --storage.tsdb.path是可选项,默认数据目录在运行目录的./dada目录中
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus --web.enable-lifecycle
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target" | tee -i /usr/lib/systemd/system/prometheus.service > /dev/null &&
systemctl enable prometheus > /dev/null && 
systemctl start prometheus > /dev/null && 
systemctl status prometheus

vi node-exporter.sh

#!/bin/bash

setenforce 0 &&
iptables -I INPUT -p tcp --dport 9100 -j ACCEPT &&
iptables-save > /dev/null  &&
mkdir -p /data/apps > /dev/null &&
cd /data/apps &&
wget https://githubfast.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz > /dev/null &&
echo "下载node-exporters压缩包完成" &&
tar -zxvf node_exporter-1.4.0.linux-amd64.tar.gz -C /usr/local > /dev/null &&
cd /usr/local &&
ln -s node_exporter-1.4.0.linux-amd64 node_exporter &&
echo "[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/node_exporter/node_exporter
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target" | tee -i /usr/lib/systemd/system/node_exporter.service > /dev/null &&
systemctl enable node_exporter && 
systemctl start node_exporter && 
systemctl status node_exporter

vi node_join.sh

#!/bin/bash

#对应被监控的node名称
NODENAME=$1
#对应被监控的IP地址
IPADDRESS=$2
echo "
  - job_name: "$NODENAME"
    static_configs:
      - targets: ["$IPADDRESS:9100"]
    " | tee -a /usr/local/prometheus/prometheus.yml > /dev/null &&
/usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml &&
curl  -X POST http://127.0.0.1:9090/-/reload

## auto_start.sh文件执行auto_prometheus_node_exporter_1.sh及auto_prometheus_node_exporter_2.sh文件

vi auto_start.sh

#!/bin/bash

IPADDRESS1="$1"
IPADDRESS2="$2"
NODENAME="$3"

sh auto_prometheus_node_exporter_1.sh ${IPADDRESS1} ${IPADDRESS2} && sh auto_prometheus_node_exporter_2.sh ${NODENAME} ${IPADDRESS2}

(2)执行auto_start.sh文件。

sh auto_start.sh PROMTHEUS_IPADDRESS NODE_EXPORTER_IPADDRESS NODE_EXPORTER_NAME

Grafana安装_grafana-enterprise-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值