Redis, dizeler, kümeler, haritalar, listeler, sıralı kümeler, mekansal dizinler ve bit eşlemler gibi farklı türde soyut veri yapılarını destekler.
Redis exporter tarafından neler dışa aktarılır?
INFO komutundaki öğelerin çoğu dışa aktarılır, ayrıntılar için http://redis.io/commands/info bakın. Buna ek olarak, her veritabanı için toplam anahtarlar, süresi dolan anahtarlar ve veritabanındaki anahtarlar için ortalama TTL ölçümleri vardır.
Ayrıca, sayısal biçimdeyse anahtarların değerlerini -check-keys bayrağını kullanarak dışa aktarabilirsiniz. Dışa aktaran ayrıca anahtarın boyutunu (veya veri türüne bağlı olarak uzunluğunu) dışa aktarır. Bu, (sıralanmış) kümeler, karmalar, listeler vb. öğelerin sayısını dışa aktarmak için kullanılabilir.
Setup Pre-requisite
- Yüklü Prometheus Sunucusu
- Yüklü Grafana Veri Görselleştirme ve izleme Sunucusu
Adım 1: Prometheus Redis exporter’ı kurun
Redis metrikleri için bu Prometheus Exporter Redis’i destekler:
curl -s https://api.github.com/repos/oliver006/redis_exporter/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -İndirilen arşiv dosyasını ayıklayın
tar xvf redis_exporter-*.linux-amd64.tar.gz
sudo mv redis_exporter-*.linux-amd64/redis_exporter /usr/local/bin/
rm -rf redis_exporter-*.linux-amd64*redis_exporter geçerli kabuğunuzdan çalıştırılabilir olmalıdır
$ redis_exporter --version
INFO[0000] Redis Metrics Exporter v1.44.0 build date: 2022-08-25-05:21:38 sha1: 19f7b036bb46869858eec74d8d3fc2186d641399 Go: go1.19 GOOS: linux GOARCH: amd64Desteklenen tüm seçeneklerin bir listesini almak için –help seçeneğini iletin
$ redis_exporter --help
Usage of redis_exporter:
-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
-debug
Output verbose debug information
-log-format string
Log format, valid options are txt and json (default "txt")
-namespace string
Namespace for metrics (default "redis")
-redis-only-metrics
Whether to export go runtime metrics also
-redis.addr string
Address of one or more redis nodes, separated by separator
-redis.alias string
Redis instance alias for one or more redis nodes, separated by separator
-redis.file string
Path to file containing one or more redis nodes, separated by newline. NOTE: mutually exclusive with redis.addr
-redis.password string
Password for one or more redis nodes, separated by separator
-script string
Path to Lua Redis script for collecting extra metrics
-separator string
separator used to split redis.addr, redis.password and redis.alias into several elements. (default ",")
-use-cf-bindings
Use Cloud Foundry service bindings
-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")
...Adım 2: Redis exporter systemd hizmeti / İnit betiği oluşturun
Hizmeti çalıştırmak için prometheus kullanıcısı kullanılacaktır. Yoksa Prometheus sistem kullanıcısını ekleyin
sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheusArdından bir systemd hizmet birimi dosyası oluşturmaya devam edin.
sudo vim /etc/systemd/system/redis_exporter.serviceAşağıdaki içeriği ekleyin
[Unit]
Description=Prometheus
Documentation=https://github.com/oliver006/redis_exporter
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/redis_exporter \
--log-format=txt \
--namespace=redis \
--web.listen-address=:9121 \
--web.telemetry-path=/metrics
SyslogIdentifier=redis_exporter
Restart=always
[Install]
WantedBy=multi-user.targetİnit sistemi için
Daemonize’ı yükleyin (CentOS / Ubuntu )
sudo yum -y install daemonize
sudo apt-get install daemonizeBaşlangıç komut dosyası oluştur
sudo vim /etc/init.d/redis_exporterEkleyin
#!/bin/bash
# Author: Josphat Mutai, [email protected] , https://github.com/jmutai
# redis_exporter This shell script takes care of starting and stopping Prometheus redis exporter
#
# chkconfig: 2345 80 80
# description: Prometheus redis exporter start script
# processname: redis_exporter
# pidfile: /var/run/redis_exporter.pid
# Source function library.
. /etc/rc.d/init.d/functions
RETVAL=0
PROGNAME=redis_exporter
PROG=/usr/local/bin/${PROGNAME}
RUNAS=prometheus
LOCKFILE=/var/lock/subsys/${PROGNAME}
PIDFILE=/var/run/${PROGNAME}.pid
LOGFILE=/var/log/${PROGNAME}.log
DAEMON_SYSCONFIG=/etc/sysconfig/${PROGNAME}
# GO CPU core Limit
#GOMAXPROCS=$(grep -c ^processor /proc/cpuinfo)
GOMAXPROCS=1
# Source config
. ${DAEMON_SYSCONFIG}
start() {
if [[ -f $PIDFILE ]] > /dev/null; then
echo "redis_exporter is already running"
exit 0
fi
echo -n "Starting redis_exporter service…"
daemonize -u ${USER} -p ${PIDFILE} -l ${LOCKFILE} -a -e ${LOGFILE} -o ${LOGFILE} ${PROG} ${ARGS}
RETVAL=$?
echo ""
return $RETVAL
}
stop() {
if [ ! -f "$PIDFILE" ] || ! kill -0 $(cat "$PIDFILE"); then
echo "Service not running"
return 1
fi
echo 'Stopping service…'
#kill -15 $(cat "$PIDFILE") && rm -f "$PIDFILE"
killproc -p ${PIDFILE} -d 10 ${PROG}
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${LOCKFILE} ${PIDFILE}
return $RETVAL
}
status() {
if [ -f "$PIDFILE" ] || kill -0 $(cat "$PIDFILE"); then
echo "redis exporter service running..."
echo "Service PID: `cat $PIDFILE`"
else
echo "Service not running"
fi
RETVAL=$?
return $RETVAL
}
# Call function
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 2
esacBağımsız Değişken yapılandırma dosyası oluşturma
sudo vim /etc/sysconfig/redis_exporterKullanılan komut Argümanlarını tanımlayın
ARGS="--log-format=txt \
--namespace=redis \
--web.listen-address=:9121 \
--web.telemetry-path=/metrics"Komut dosyasını sınayın
$ sudo /etc/init.d/redis_exporter
Usage: /etc/init.d/redis_exporter {start|stop|restart}Adım 3: Redis Prometheus exporter’ı başlatın
Bir Systemd sunucusu için systemctl komutunu kullanın
sudo systemctl daemon-reload
sudo systemctl enable redis_exporter
sudo systemctl start redis_exporterServis durumunu onayla:
$ systemctl status redis_exporter● redis_exporter.service - Prometheus
Loaded: loaded (/etc/systemd/system/redis_exporter.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2022-10-14 13:07:23 UTC; 6s ago
Docs: https://github.com/oliver006/redis_exporter
Main PID: 1861 (redis_exporter)
CGroup: /system.slice/redis_exporter.service
└─1861 /usr/local/bin/redis_exporter --log-format=txt --namespace=redis --web.listen-address=:9121 --web.telemetry-path=/metrics
Oct 14 13:07:23 cent7.mylab.io systemd[1]: Started Prometheus.
Oct 14 13:07:23 cent7.mylab.io redis_exporter[1861]: time="2022-10-14T13:07:23Z" level=info msg="Redis Metrics Exporter v1.44.0 build date: 2022-08-25-05:21:38 sha1: 19f7b036bb4...ARCH: amd64"
Oct 14 13:07:23 cent7.mylab.io redis_exporter[1861]: time="2022-10-14T13:07:23Z" level=info msg="Providing metrics at :9121/metrics"SysV İnit sistemi için şunları kullanın
sudo /etc/init.d/redis_exporter start
sudo chkconfig redis_exporter onHizmetin çalıştığını kullanarak doğrulayabilirsiniz
$ sudo /etc/init.d/redis_exporter status
redis exporter service running...
Service PID: 27106
$ sudo chkconfig --list | grep redis_exporter
redis_exporter 0:off 1:off 2:on 3:on 4:on 5:on 6:off
$ sudo ss -tunelp | grep 9121
tcp LISTEN 0 128 :::9121 :::* users:(("redis_exporter",1970,6)) ino:1823474168 sk:ffff880341cd7800Adım 4: Prometheus’a ihracatçı işi ekleyin
Son adım, metrikleri kazımak için Prometheus sunucusuna bir iş eklemektir. Düzenle /etc/prometheus/prometheus.yml
# Redis Servers
- job_name: 10.10.10.3-redis
static_configs:
- targets: ['10.10.10.3:9121']
labels:
alias: 10.10.10.3
- job_name: 10.10.10.4-redis
static_configs:
- targets: ['10.10.10.4:9121']
labels:
alias: 10.10.10.4Veri metriklerinin kazınmaya başlaması için prometheus hizmetini yeniden başlatın
sudo systemctl restart prometheusPrometheus sunucusundan 9121 numaralı bağlantı noktasına erişimi test edin, bağlanabilmelidir.
$ telnet 10.1.10.15 9121
Trying 10.1.10.15...
Connected to 10.1.10.15.
Escape character is '^]'.
^]Bağlanamıyorsa, Servis bağlantı noktanızı ve güvenlik duvarınızı kontrol edin.
Adım 5: Grafana’ya Gösterge Tablosu Ekleyin
Grafana’ya Prometheus veri kaynağı ekleyin ve Redis için bir grafana gösterge tablosunu içe aktarın veya oluşturun.
Grafana gösterge tablosu şu adreste mevcuttur grafana.net ve / veya github.com. İş yapılandırmam bir takma ad kullanıyor, ana bilgisayar ve takma ad seçicili Grafana gösterge tablosunu kullanacağım github.com.
Pano json dosyasını indirin
wget https://raw.githubusercontent.com/oliver006/redis_exporter/master/contrib/grafana_prometheus_redis_dashboard.jsonGrafana Kullanıcı Arayüzünde Oluştur > Panoyu İçe Aktar > Yükle’ye gidin .json Dosyası. İndirilen json dosyasını seçin ve “İçe Aktar“ı tıklayın.

Grafana Gösterge Tablonuzda verilerin görünmeye başlamasını bekleyin, aşağıda örnek bir görünüm verilmiştir

Redis sunucularınızı izlemek için Grafana’yı kullanmanın keyfini çıkarın.
Yazının orijinalini buradan okuyabilirsiniz.

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.