Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save meoww-bot/60cc1cefb75bc97fa105f788d9707b06 to your computer and use it in GitHub Desktop.
Save meoww-bot/60cc1cefb75bc97fa105f788d9707b06 to your computer and use it in GitHub Desktop.

Revisions

  1. @dale-c-anderson dale-c-anderson created this gist Oct 3, 2018.
    125 changes: 125 additions & 0 deletions install_node_exporter.centos6.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,125 @@
    #!/bin/bash

    # Install Prometheus Node Exporter on CentOS 6.

    set -eu
    set -o pipefail
    set -x

    REPOFILE='/etc/yum.repos.d/coprs.ibotty.prometheus-exporters.repo'
    INSTALLED=0

    if test -f "$REPOFILE"; then
    INSTALLED=1
    service node_exporter stop || true
    fi

    if [[ $INSTALLED -eq 0 ]]; then
    curl -sS https://copr.fedorainfracloud.org/coprs/ibotty/prometheus-exporters/repo/epel-6/ibotty-prometheus-exporters-epel-6.repo > $REPOFILE
    # this will create the node_exporter user / group
    yum install node_exporter
    iptables -I INPUT -p tcp --dport 9100 -j ACCEPT
    service iptables save
    fi

    touch /var/log/node_exporter.log
    chmod 640 /var/log/node_exporter.log
    chown node_exporter:adm /var/log/node_exporter.log

    # Adjust permissions slightly from what the repo provided.
    chown root:node_exporter /var/lib/node_exporter/textfile_collector/
    chmod 2771 /var/lib/node_exporter/textfile_collector/


    cat << 'EOF' > /etc/logrotate.d/node_exporter
    /var/log/node_exporter.log {
    weekly
    missingok
    notifempty
    compress
    delaycompress
    create 640 node_exporter adm
    }
    EOF

    cat << 'EOF' > /etc/init.d/node_exporter
    #!/bin/bash
    #
    # node_exporter Export statistics to be consumed by a remote Prometheus server
    #
    # chkconfig: 345 70 30
    # description: Prometheus node exporter
    # processname: node_exporter
    ### BEGIN INIT INFO
    # Provides:
    # Required-Start:
    # Required-Stop:
    # Default-Start: 3 4 5
    # Default-Stop: 0 1 2 6
    ### END INIT INFO
    #
    #
    # Prometheus node exporter
    # /etc/init.d/node_exporter
    #
    #
    # Source function library.
    . /etc/init.d/functions
    PROGNAME=node_exporter
    PROG=/usr/sbin/$PROGNAME
    USER=node_exporter
    LOGFILE=/var/log/node_exporter.log
    LOCKFILE=/var/run/$PROGNAME.pid
    start() {
    echo -n "Starting $PROGNAME: "
    cd /var/lib/node_exporter/textfile_collector/
    daemon --user $USER --pidfile="$LOCKFILE" "$PROG &>$LOGFILE &"
    echo $(pidofproc $PROGNAME) >$LOCKFILE
    echo
    }
    stop() {
    echo -n "Shutting down $PROGNAME: "
    killproc $PROGNAME
    rm -f $LOCKFILE
    echo
    }
    case "$1" in
    start)
    start
    ;;
    stop)
    stop
    ;;
    status)
    status $PROGNAME
    ;;
    restart)
    stop
    start
    ;;
    reload)
    echo "Sending SIGHUP to $PROGNAME"
    kill -SIGHUP $(pidofproc $PROGNAME)#!/bin/bash
    ;;
    *)
    echo "Usage: service node_exporter {start|stop|status|reload|restart}"
    exit 1
    ;;
    esac
    EOF

    chmod 755 /etc/init.d/node_exporter

    if [[ $INSTALLED -eq 0 ]]; then
    chkconfig node_exporter --add
    fi

    service node_exporter start