redis_exporter就是为了收集redis服务指标的应用。
下载运行
- 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
如果设置了密码,就需要在执行的时候,指定密码
- ./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")
部署脚本
- #!/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 <
-
- [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就可以直接展示了。