promeheus监控redis

Grafana+Prometheus系统监控之Redis

请先安装go语言环境

(promeheus+grafana环境已经部署好了,具体参考前天的文档)

tar -zxvf go1.12.4.linux-amd64.tar.gz  -C /usr/local

然后修改环境

vim /etc/profile.d/go.sh

export GOPATH=/usr/local/go

export PATH=$PATH:$GOPATH/bin

同步刷新环境

source /etc/profile.d/go.sh

下载并解压缩插件

unzip redis_exporter-master.zip

mv redis_exporter-master  /usr/local/redis_exporter

cd redis_exporter

go build

然后会产生于一个命令文件:redis_exporter

 

这个命令使用方式

## 无密码
./redis_exporter redis//192.168.33.131:6379 &
## 有密码
redis_exporter  -redis.addr 192.168.33.131:6379  -redis.password 123456

我们把这个命令cp到bin目录中,方便使用

cp redis_exporter /usr/local/bin/

 

---------------------------为了方便维护,我们写个脚本-------------------------------

先写个脚本,如下

[root@localhost redis_exporter]# cat redis_export.sh

#!/bin/bash

IP=`ip addr | grep -v virbr |grep -o -e 'inet [0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'|grep -v "127.0.0"|awk '{print $2}'`

PORT=6379

 

COMMAND=/usr/local/bin/redis_exporter

#PIDNUM=`ps -ef | grep redis_exporter | grep -v grep | awk -F ' ' '{print $2}'`

 

# if no password

#redis_exporter redis//$IP:$PORT &

# if have password,don't need string<>

#redis_exporter redis//$IP:$PORT & -redis.password <your redis's password>

 

 

start(){

PIDNUM=`ps -ef | grep redis_exporter | grep -v grep | awk -F ' ' '{print $2}'`

if [ -z $PIDNUM ];then

    $COMMAND -redis.addr $IP:$PORT &

else

    echo "$0 is running"

fi

}

 

stop(){

PIDNUM=`ps -ef | grep redis_exporter | grep -v grep | awk -F ' ' '{print $2}'`

if [ -z $PIDNUM ];then

    echo "$0 is not running"

else

    echo "shutting down $0"

    kill -9 "$PIDNUM" && echo "PID $PIDNUM was killed."

fi

}

 

status(){

PIDNUM=`ps -ef | grep redis_exporter | grep -v grep | awk -F ' ' '{print $2}'`

if [ -z $PIDNUM ];then

    echo "$0 is not runing"

else

    echo "$0 is runing,it's PID is $PIDNUM"

fi

}

 

case $1 in

start)

start

;;

stop)

stop

;;

status)

status

;;

restart)

stop

start

;;

*)

echo "Usage:$0 {start|stop|status|restart}"

;;

esac

 

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

修改配置文件prometheus.yml

如下:

# my global config

global:

  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.

  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.

  # scrape_timeout is set to the global default (10s).

 

# Alertmanager configuration

alerting:

  alertmanagers:

  - static_configs:

    - targets:

      # - alertmanager:9093

 

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.

rule_files:

  # - "first_rules.yml"

  # - "second_rules.yml"

 

# A scrape configuration containing exactly one endpoint to scrape:

# Here it's Prometheus itself.

scrape_configs:

  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.

  - job_name: 'prometheus'

 

    # metrics_path defaults to '/metrics'

    # scheme defaults to 'http'.

    scrape_interval: 10s

 

    static_configs:

      - targets: ['192.168.2.210:9090']

        labels:

          instance: prometheus

 

  - job_name: 'centos7-machine1'

    scrape_interval: 10s

    static_configs:

      - targets: ['192.168.2.210:9100']

        labels:

          instance: centos7-machine1

 

  - job_name: 'centos7-machine2'

    scrape_interval: 10s

    static_configs:

      - targets: ['192.168.2.211:9100']

        labels:

          instance: centos7-machine2

 

  - job_name: 'centos7-machine3'

    scrape_interval: 10s

    static_configs:

      - targets: ['192.168.2.212:9100']

        labels:

          instance: centos7-machine3

 

  - job_name: 'centos7-machine4'

    scrape_interval: 10s

    static_configs:

      - targets: ['192.168.2.213:9100']

        labels:

          instance: centos7-machine4

  - job_name: 'win2016-machine5'

    scrape_interval: 10s

    static_configs:

      - targets: ['192.168.2.214:9182']

        labels:

          instance: win2016-machine5

 

  - job_name: 'redis_1'

    scrape_interval: 10s

    static_configs:

      - targets: ['192.168.2.211:9121']

        labels:

          instance: 192.168.2.211

 

  - job_name: 'redis_2'

    scrape_interval: 10s

    static_configs:

      - targets: ['192.168.2.212:9121']

        labels:

          instance: 192.168.2.212

 

  - job_name: 'redis_3'

    scrape_interval: 10s

    static_configs:

      - targets: ['192.168.2.213:9121']

        labels:

          instance: 192.168.2.213

     

设置用户(prometheus用户再前面的环境部署中已经添加过了)

chown -R prometheus:prometheus /usr/local/redis_exporter/

cp /usr/local/redis_exporter/redis_export.sh  /etc/init.d/redis_exporter

service redis_export start

原文地址:https://www.cnblogs.com/fatyao/p/11192250.html