Redis Sentinel Kurulumu

Redis Kurulumu

  • Kurulum dosyası indirilir.
wget http://download.redis.io/redis-stable.tar.gz
  • İndiriline dosya açılır. Daha sonra redis-stable klasörü içine geçilir.

tar xzvf redis-stable.tar.gz
cd redis-stable
  • redis-stable klasörü içinde aşağıdaki komutlar çalıştırılır. make test komutu sırasında eksik olan tcl yüklenmesi istenebilir.
make
make test
yum install tcl
cd src
make test
make install
  • Kontrol için aşağıdaki komut çalıştırılır. Ekran görüntüsü aşağıdaki gibi olmalıdır.
redis-server

  • Servisi çalıştıracak kullanıcıyı ekliyoruz.
adduser --system --user-group --no-create-home redis
  • config dosyalarını kopyalayacağımız klasörü oluşturuyoruz ve altına ilgili dosyaları kopyalıyoruz.
mkdir -p /etc/redis
cp /home/LogoPaaS/redis-stable/redis.conf /etc/redis/redis.conf
cp /home/LogoPaaS/redis-stable/sentinel.conf /etc/redis/sentinel.conf
  • redis data klasörünü oluşturup servis kullanıcısı için yetki veriyoruz.
mkdir /data/redis
chown redis:redis /data/redis
sudo chmod 770 /data/redis
  • Redisi servisi olarak çalıştırmak için aşağıdaki gibi bir servis dosyası oluşturuyoruz.

nano /etc/systemd/system/redis-server.service

  • Eklediğimiz servis dosyası içine aşağıdaki komutları ekliyoruz.

[Unit]

Description=Redis In-Memory Data Store

After=network.target

[Service]

User=redis

Group=redis

ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf

ExecStop=/usr/local/bin/redis-cli shutdown

Restart=always

[Install]

WantedBy=multi-user.target

  • Redis’i çalıştırıp, kontrol ediyoruz.

systemctl start redis-server

systemctl status redis-server

  • Servisin her açılışta çalışması için aşağıdaki komutu çalıştırıyoruz.

systemctl enable redis-server

  • Örnek bir redis denemesi yapıyoruz.

redis-cli

set baskent ankara

get baskent

Redis Sentinel Kurulumu

  • Redis kurulumundan sonra aşağıdaki komut çalıştırılarak kontrol yapılabilir. Sonuç ekran görüntüsü aşağıdaki gibi olmalıdır.

redis-sentinel

  • Sentinel data klasörü oluşturulup servis kullanıcısı için yetkiler verilir.

mkdir -p /data/redis-sentinel

chown redis:redis /data/redis-sentinel

sudo chmod 770 /data/redis-sentinel

chown redis:redis /etc/redis/sentinel.conf

  • Sentineli servis olarak çalıştırmak için aşağıdaki dosya oluşturulur.

nano /etc/systemd/system/redis-sentinel.service

  • Oluşturulan dosya içine aşağıdaki bilgiler eklenir.

[Unit]

Description=Sentinel for Redis

After=network.target

[Service]

User=redis

Group=redis

ExecStart=/usr/local/bin/redis-sentinel /etc/redis/sentinel.conf

[Install]

WantedBy=multi-user.target

  • Sentinel servisi çalıştırılır ve durumu kontrol edilir.

systemctl start redis-sentinel

systemctl status redis-sentinel

  • Servisin her açılışta otomatik açılması için aşağıdaki komut çalıştırılır.

systemctl enable redis-sentinel

Redis Master Konfigürasyonu

  • Kullanılacak redis portu dışarıya açılır.

firewall-cmd –zone=public –permanent –add-port=6379/tcp

  • Log klasörü ve log dosyaları oluşturulup yetki verilir.

mkdir -p /var/log/redis/

touch /var/log/redis/redis.log

chown redis:redis /var/log/redis/redis.log

  • Redis config dosyası nano veya başka bir araç ile açılır.

nano /etc/redis/redis.conf

  • Dosya aşağıdaki var olanlar için güncellenir, olmayan varsa eklenir.

bind 127.0.0.1 10.131.62.82

dir /data/redis

supervised systemd

logfile /var/log/redis/redis.log

 

Sentinel Configuration

  • Sentinel config dosyası açılır.

nano /etc/redis/sentinel.conf

  • Dosya aşağıdaki değerler ile güncellenir. Var olanlar değiştirilir, olmayanlar eklenir.

bind 10.41.21.15

dir /data/redis-sentinel

logfile /var/log/redis/sentinel.log

sentinel monitor mymaster 10.41.21.15 6379 2

sentinel down-after-milliseconds mymaster 10000

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 20000

sentinel leader-epoch mymaster 0

sentinel config-epoch mymaster 0

sentinel deny-scripts-reconfig yes

  • Konfig dosyası servis kullanısı için yetki verilir.

chown redis:redis /etc/redis/sentinel.conf

  • Servis restart edilir.

systemctl restart redis-sentinel

  • Şu ana kadar yapılanlar master node için yapıldı. Bundan sonraki işlemler yaklaşık olarak benzer işlemler. Benzer işlemler olduğu için sadece çalıştırılan komutları yazıldı.

RedisSlave01 Redis Configuration

firewall-cmd –zone=public –permanent –add-port=6379/tcp

mkdir -p /var/log/redis/

touch /var/log/redis/redis.log

chown redis:redis /var/log/redis/redis.log

nano /etc/redis/redis.conf

  • Dosya içinde aşağıdakiler olanlar güncellenir, olmayanlar eklenir.

bind 127.0.0.1 10.41.21.16

dir /data/redis

logfile /var/log/redis/redis.log

supervised systemd

slaveof 10.41.21.15 6379

slave-priority 150

 

RedisSlave01 Sentinel Configuration

firewall-cmd –zone=public –permanent –add-port=26379/tcp

nano /etc/redis/sentinel.conf

  • Dosya içinde aşağıdakilerden olanlar güncellenir, olmayanlar eklenir.

bind 10.41.20.17

dir /data/redis-sentinel

logfile /Var/log/redis/sentinel.log (should have created)

sentinel monitor logoredis 10.131.62.82 6379 2

sentinel down-after-milliseconds logoredis 10000

sentinel parallel-syncs logoredis 1

sentinel failover-timeout logoredis 20000

sentinel leader-epoch logoredis 0

sentinel config-epoch logoredis 0

RedisSlave02 Redis Configuration

firewall-cmd –zone=public –permanent –add-port=6379/tcp

mkdir -p /var/log/redis/

touch /var/log/redis/redis.log

chown redis:redis /var/log/redis/redis.log

nano /etc/redis/redis.conf

  • Dosya içinde aşağıdakilerden olanlar güncellenir, olmayanlar eklenir.

bind 127.0.0.1 10.41.20.17

dir /data/redis

logfile /var/log/redis/redis.log

supervised systemd

slaveof 10.41.21.15 6379

slave-priority 200

RedisSlave02 Sentinel Configuration

firewall-cmd –zone=public –permanent –add-port=26379/tcp

nano /etc/redis/sentinel.conf

  • Dosya içinde aşağıdakilerden olanlar güncellenir, olmayanlar eklenir.

bind 10.41.20.17

dir /data/redis-sentinel

logfile /var/log/redis/sentinel.log (should have created)

sentinel monitor logoredis 10.131.62.82 6379 2

sentinel down-after-milliseconds logoredis 10000

sentinel parallel-syncs logoredis 1

sentinel failover-timeout logoredis 20000

sentinel leader-epoch logoredis 0

sentinel config-epoch logoredis 0

  • Master ve slave durumlarını kontrol etmek için aşağıdaki komutlar kullanılabilir.

redis-cli info | grep ^role

redis-cli -h 10.41.21.16 -p 6379 info|grep role

redis-cli -h 10.41.21.16 -p 26379 info|grep status



Leave a comment