龙空技术网

使用ansible批量给服务器部署node_exporter服务

linux运维菜 506

前言:

当前你们对“node本地服务器部署”大概比较注意,各位老铁们都想要分析一些“node本地服务器部署”的相关资讯。那么小编也在网上汇集了一些有关“node本地服务器部署””的相关资讯,希望兄弟们能喜欢,小伙伴们一起来学习一下吧!

简介

在部署监控的时候,我们可以使用ansible批量自动化部署,只要写好ploybook即可。

在prometheus监控系统中,node_exporter 是用于获取主机指标的服务,我们可以利用ansible批量部署的优势,来部署node_exporter服务到主机上。

playbook

node_exporter是Go写的,直接使用二进制文件就可以执行,这里直接从github上下载安装,也可以替换成自己内网的地址,针对Centos6和CentOS7/8设置不同的启动服务。

vim install_node_exporter.yml

直接使用vim,就可以开始写yml文件了。

- name: 安装node_exporter  hosts: "{{ hosts }}"  remote_user: root  vars:    - node_exporter_package: ";  tasks:    - name: 解压安装包      unarchive:        src: "{{ node_exporter_package }}"        dest: /usr/local/        mode: '0755'        remote_src: yes    - name: 创建软链接      file:        src: /usr/local/node_exporter-1.0.1.linux-amd64        dest: /usr/local/node_exporter        state: link    - name: 安装系统服务(sysv)      blockinfile:        path: /etc/init.d/node_exporter        create: yes        mode: '0755'        block: |          #!/bin/bash          RETVAL=0          PROG="node_exporter"          EXEC="/usr/local/node_exporter/node_exporter"          LOCKFILE="/var/lock/subsys/$PROG"          OPTIONS=""          # Source function library.          if [ -f /etc/rc.d/init.d/functions ]; then              . /etc/rc.d/init.d/functions          else              echo "/etc/rc.d/init.d/functions does not exist"              exit 0          fi​          start() {              if [ -f $LOCKFILE ]              then                  echo "$PROG is already running!"              else                  echo -n "Starting $PROG: "                  nohup $EXEC $OPTIONS >/dev/null 2>&1 &                  RETVAL=$?                  [ $RETVAL -eq 0 ] && touch $LOCKFILE && success || failure                  echo                  return $RETVAL              fi          }​          stop() {              echo -n "Stopping $PROG: "              killproc $EXEC              RETVAL=$?              [ $RETVAL -eq 0 ] && rm -r $LOCKFILE && success || failure              echo          }​          restart ()          {              stop              sleep 1              start          }​          case "$1" in              start)                  start              ;;              stop)                  stop              ;;              status)                  status $PROG              ;;              restart)                  restart              ;;              *)                  echo "Usage: $0 {start|stop|restart|status}"                  exit 1          esac          exit $RETVAL      when: ansible_distribution_major_version == "6"    - name: 安装系统服务(systemd)      blockinfile:        path: /usr/lib/systemd/system/node_exporter.service        create: yes        mode: '0755'        block: |          [Unit]          Description=Node Exporter​          [Service]          WorkingDirectory=/usr/local/node_exporter/          ExecStart=/usr/local/node_exporter/node_exporter --web.config=/usr/local/node_exporter/node_exporter.yml​          [Install]          WantedBy=multi-user.target      when: ansible_distribution_major_version == "7" or ansible_distribution_major_version == "8"    - name: 启动服务      service:        name: node_exporter        state: restarted        enabled: yes
总结

让运维更高效!

标签: #node本地服务器部署