12

运维监控系统之Prometheus redis监控

 3 years ago
source link: http://os.51cto.com/art/202012/637929.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

简介

redis_exporter就是为了收集redis服务指标的应用。

FZ3INzq.png!mobile

下载运行

wget -c -t 100 https://github.com/oliver006/redis_exporter/releases/download/v1.15.0/redis_exporter-v1.15.0.linux-amd64.tar.gz 
 
tar zxvf   redis_exporter-v1.15.0.linux-amd64.tar.gz 
 
cd redis_exporter-v1.15.0.linux-amd64 
 
./redis_exporter 
INFO[0000] Redis Metrics Exporter v1.15.0    build date: 2020-12-27-18:57:05    sha1: 43ec65f7a22041e64ec557291c36500d04c6f6b0    Go: go1.15.6    GOOS: linux    GOARCH: amd64  
INFO[0000] Providing metrics at :9121/metrics   

默认端口是9121,默认链接是redis://localhost:6379

QJJvye.png!mobile

如果设置了密码,就需要在执行的时候,指定密码

./redis_exporter -redis.addr 'redis://localhost:6379'   -redis.password  redispassword 

查看更多参数

./redis_exporter -h 
Usage of ./redis_exporter: 
  -check-key-groups string 
        Comma separated list of lua regex for grouping keys 
  -check-key-groups-batch-size int 
        Check key groups batch size hint for the underlying SCAN (default 10000) 
  -check-keys string 
        Comma separated list of key-patterns to export value and length/size, searched for with SCAN 
  -check-single-keys string 
        Comma separated list of single keys to export value and length/size 
  -check-single-streams string 
        Comma separated list of single streams to export info about streams, groups and consumers 
  -check-streams string 
        Comma separated list of stream-patterns to export info about streams, groups and consumers, searched for with SCAN 
  -config-command string 
        What to use for the CONFIG command (default "CONFIG") 
  -connection-timeout string 
        Timeout for connection to Redis instance (default "15s") 
  -count-keys string 
        Comma separated list of patterns to count, eg: 'db3=sessions:*'. Warning: The exporter runs SCAN to count the keys. 
  -debug 
        Output verbose debug information 
  -export-client-list 
        Whether to scrape Client List specific metrics 
  -export-client-port 
        Whether to include the client's port when exporting the client list. Warning: including the port increases the number of metrics generated and will make your Prometheus server take up more memory 
  -include-system-metrics 
        Whether to include system metrics like e.g. redis_total_system_memory_bytes 
  -is-tile38 
        Whether to scrape Tile38 specific metrics 
  -log-format string 
        Log format, valid options are txt and json (default "txt") 
  -max-distinct-key-groups int 
        The maximum number of distinct key groups with the most memory utilization to present as distinct metrics per database, the leftover key groups will be aggregated in the 'overflow' bucket (default 100) 
  -namespace string 
        Namespace for metrics (default "redis") 
  -ping-on-connect 
        Whether to ping the redis instance after connecting 
  -redis-only-metrics 
        Whether to also export go runtime metrics 
  -redis.addr string 
        Address of the Redis instance to scrape (default "redis://localhost:6379") 
  -redis.password string 
        Password of the Redis instance to scrape 
  -redis.user string 
        User name to use for authentication (Redis ACL for Redis 6.0 and newer) 
  -script string 
        Path to Lua Redis script for collecting extra metrics 
  -set-client-name 
        Whether to set client name to redis_exporter (default true) 
  -skip-tls-verification 
        Whether to to skip TLS verification 
  -tls-ca-cert-file string 
        Name of the CA certificate file (including full path) if the server requires TLS client authentication 
  -tls-client-cert-file string 
        Name of the client certificate file (including full path) if the server requires TLS client authentication 
  -tls-client-key-file string 
        Name of the client key file (including full path) if the server requires TLS client authentication 
  -tls-server-cert-file string 
        Name of the server certificate file (including full path) if the web interface and telemetry should use TLS 
  -tls-server-key-file string 
        Name of the server key file (including full path) if the web interface and telemetry should use TLS 
  -version 
        Show version information and exit 
  -web.listen-address string 
        Address to listen on for web interface and telemetry. (default ":9121") 
  -web.telemetry-path string 
        Path under which to expose metrics. (default "/metrics") 

部署脚本

JRBVfan.png!mobile
#!/bin/bash 
 
VERSION="1.15.0" 
 
wget  -t 100  -c  https://github.com/oliver006/redis_exporter/releases/download/v${VERSION}/redis_exporter-${VERSION}.linux-amd64.tar.gz 
 
if [ ! -e redis_exporter-${VERSION}.linux-amd64.tar.gz ] 
then 
    echo "安装包下载失败" 
    exit 1 
fi 
tar xvfz redis_exporter-${VERSION}.linux-amd64.tar.gz -C /opt/ 
cd /opt 
ln -s redis_exporter-${VERSION}.linux-amd64  redis_exporter 
cat > /etc/systemd/system/redis_exporter.service <<EOF 
 
[Unit] 
Description=redis_exporter 
After=network.target 
 
[Service] 
Type=simple 
WorkingDirectory=/opt/redis_exporter 
ExecStart=/opt/redis_exporter/redis_exporter -redis.addr redis://localhost:6379   -redis.password  redispassword 
LimitNOFILE=65536 
PrivateTmp=true 
RestartSec=2 
StartLimitInterval=0 
Restart=always 
 
[Install] 
WantedBy=multi-user.target 
EOF 
 
 
systemctl daemon-reload 
 
systemctl enable redis_exporter 
systemctl start redis_exporter 

prometheus配置

添加下面的job

- job_name: 'redis' 
 
   # metrics_path defaults to '/metrics' 
   # scheme defaults to 'http'. 
 
   static_configs: 
   - targets: ['localhost:9121'] 

配置好以后,reload一下prometheus就可以加载

kill -HUP [promethues_pid] 

指标展示

指标可以通过prometheus的WebUI进行查看

http://[promethe server ip]:9090 

如果需要画图,可以直接使用grafana,有人已经配置好了图形可以通过grafana官方下的dashboard搜索redis_exporter,配置好prometheus数据源,直接导入grafana就可以直接展示了。

JbMFFfE.png!mobile

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK