node_exporter一键部署脚本

一.node_exporter一键部署脚本

1.脚本内容展示

[root@node-exporter41 ~]# cat install-node-exporter.sh 
#!/bin/bash
# blog: https://www.cnblogs.com/yinzhengjie


VERSION=1.8.2
SOFTWARE=node_exporter-${VERSION}.linux-amd64.tar.gz
URL=https://github.com/prometheus/node_exporter/releases/download/v${VERSION}/${SOFTWARE}
DOWNLOAD=./download
INSTALLDIR=/yinzhengjie/softwares
BASEDIR=${INSTALLDIR}/node_exporter-${VERSION}.linux-amd64
HOST="0.0.0.0"
PORT=9100
hostname=`hostname`


function prepare() {
   # 判断目录是否存在,若不存在则创建
   [ -d $INSTALLDIR ] || mkdir -pv ${INSTALLDIR}
   [ -d $DOWNLOAD ] || mkdir -pv ${DOWNLOAD}
   
   if [ "$ID" == "centos" ];then
     # 判断系统是否安装curl
     [ -f /usr/bin/wget ] || yum -y install wget
   fi

   # 判断文件是否存在,若不存在则下载
   [ -s ${DOWNLOAD}/${SOFTWARE} ] || wget $URL -O ${DOWNLOAD}/${SOFTWARE}
}

function install() {
  # 检查环境
  prepare

  # 解压文件软件包
  tar xf ${DOWNLOAD}/${SOFTWARE} -C ${INSTALLDIR}

  # 生成启动脚本
  cat > /etc/systemd/system/node-exporter.service <<EOF
[Unit]
Description=yinzhengjie Linux Node Exporter
Documentation=https://www.cnblogs.com/yinzhengjie
After=network.target

[Service]
ExecStart=${BASEDIR}/node_exporter --web.telemetry-path="/metrics" \
   --web.listen-address=${HOST}:${PORT}


[Install]
WantedBy=multi-user.target
EOF

     # 将服务设置为开机自启动
     systemctl daemon-reload
     systemctl enable --now node-exporter.service
     systemctl status node-exporter.service
     ss -ntl | grep 9100
}

function remove(){
  systemctl disable --now node-exporter.service
  rm -rf /etc/systemd/system/node-exporter.service $BASEDIR
}


function main() {
  case $1 in 
    install|i)
      install
      echo "${hostname} 的node-exporter 已经部署成功![successfully]"
      ;;
    remove|r)
      remove
      echo "${hostname} 的node-exporter 已经卸载成功,期待下次使用~"
      ;;
    *)
      echo "Usage: $0 install[i]|remove[r]"
      ;;
  esac
}


main $1
[root@node-exporter41 ~]#  

2.访问node_exporter的WebUI
image

二.测试验证

1.安装node_exporter
image

[root@node-exporter41 ~]# ./install-node-exporter.sh i
Created symlink /etc/systemd/system/multi-user.target.wants/node-exporter.service  /etc/systemd/system/node-exporter.service.
 node-exporter.service - yinzhengjie Linux Node Exporter
     Loaded: loaded (/etc/systemd/system/node-exporter.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2024-11-07 10:10:47 CST; 8ms ago
       Docs: https://www.cnblogs.com/yinzhengjie
   Main PID: 49349 (node_exporter)
      Tasks: 4 (limit: 4514)
     Memory: 1.1M
        CPU: 2ms
     CGroup: /system.slice/node-exporter.service
             └─49349 /yinzhengjie/softwares/node_exporter-1.8.2.linux-amd64/node_exporter --web.telemetry-path=/metrics --web.listen-address=0.0.0.0:9100

Nov 07 10:10:47 prometheus-server31 systemd[1]: Started yinzhengjie Linux Node Exporter.
prometheus-server31 的node-exporter 已经部署成功![successfully]
[root@node-exporter41 ~]# 

2.卸载node_exporter
image

[root@node-exporter41 ~]# ./install-node-exporter.sh r
Removed /etc/systemd/system/multi-user.target.wants/node-exporter.service.
almco脚本: prometheus-server31 的node-exporter 已经卸载成功,期待下次使用~
[root@node-exporter41 ~]#

3.其他节点部署node-exporter

3.1 拷贝脚本到其他服务器
[root@node-exporter41 ~]# scp -p install-node-exporter.sh 10.0.0.42:~
[root@node-exporter41 ~]#
[root@node-exporter41 ~]# scp -p install-node-exporter.sh 10.0.0.43:~

3.2 其他节点部署node-exporter
[root@node-exporter42 ~]# ./install-node-exporter.sh i

[root@node-exporter43 ~]# ./install-node-exporter.sh i

3.3 分别访问webUI即可

posted @   almco  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示