Redis 以其易用性的特性而被廣泛使用,但管理Redis服務器或集群同樣帶來諸多挑戰——如磁盤故障或內存不足,都可能導致失敗,而採集、分析、監控 Redis 日誌,可以更好的幫助我們管理Redis服務器。
最受好評的數據庫--Redis
Redis是一個非常快速的NoSQL數據存儲。 儘管它主要用作緩存,但它可以應用於各種形式,例如圖形表示和搜索。 客戶端庫可使用所有主要的編程語言提供,並且所有頂級雲服務提供商均將其作為託管服務提供。 在過去的幾年中,Redis被Stack Overflow開發人員調查評為最受好評的數據庫。如果大家對Redis想有更多的認識,請參照鏈接tutorialspoint。
準備工作
本文將為大家介紹,如何通過阿里雲Beats插件採集Redis服務器日誌數據,並通過阿里雲 Elasticsearch 的Kibana實現可視化監控,方便大家更好的管理並瞭解 Redis 的運行情況。
• 準備centos7.4版本 ECS 環境,關閉 selinux、firewall。
• 準備阿里雲elasticsearch 6.7 版本環境,並使用創建的賬號密碼登錄Kibana
• 安裝 Filebeat以及Metricbeat
在阿里雲 ECS環境中安裝 Redis 服務器
由於 Remi 源提供了目前最新版本的 Redis,我們可以通過該源 YUM 安裝目前最新版本的 Redis。
注:redis默認端口為6379,對外提供服務,請提前在ecs上開啟安全組。
#####通過epel源安裝remi源#####
# yum -y install epel-release
# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
#####通過指定--enablerepo安裝redis
# yum --enablerepo=remi install -y redis
#####查看redis版本########
# redis-cli --version
redis-cli 5.0.9
####啟動redis服務 #######
# systemctl start redis
####設置開機自啟動######
# systemctl enable redis
# systemctl status redis
####測試是否正常ping###
# redis-cli ping
PONG
####查看redis進程####
# ps -ef | grep redis
redis 20777 1 0 11:18 ? 00:00:00 /usr/bin/redis-server 127.0.0.1:6379
root 20805 20430 0 11:23 pts/0 00:00:00 grep --color=auto redis
安裝/配置 Redis 採集日誌目錄
通過 yum 安裝的 Redis,配置文件默認路徑是 /etc/redis.conf,通過以下方式定義Redis日誌輸出文件名稱。
bind 127.0.0.1
logfile /var/log/redis/redis-server.log
說明:
bind: Redis 監聽的地址。
logfile:Redis 日誌文件名稱,指定為redis-server.log。
你可以通過以下指令重啟 Redissystemctl restart redis
你可以通過以下指令測試 Redis
# redis-cli
127.0.0.1:6379> set name dayu
OK
127.0.0.1:6379> get name
"dayu"
127.0.0.1:6379> del name
(integer) 1
上面的示例顯示瞭如何將名為dayu的鍵的值設置為1,檢索該值,然後將其刪除。 完成後,按Ctrl + C退出redis-cli。
安裝Filebeat
Filebeat的Redis模塊非常容易將Redis日誌運送到Elasticsearch並在Kibana中可視化它們。 它為Filebeat設置默認配置(包括日誌文件的路徑和Redis服務器端點),設置攝取管道以自動將Redis日誌的結構解析為Elasticsearch字段,並部署可視化和儀表板以方便日誌分析 Kibana中的數據。
我們打開Kibana界面,並點擊界面上左上角的Kibana圖標:
選擇“Redis日誌”
進入安裝說明流程,我們可以按照圖中顯示的命令安裝 Filebeat
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.7.0-x86_64.rpm
# sudo rpm -vi filebeat-6.7.0-x86_64.rpm
配置/filebeat.yml。
setup.kibana:
# Kibana Host
# Scheme and port can be left out and will be set to the default (http and 5601)
# In case you specify and additional path, the scheme is required: http://localhost:5601/path
# IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
host: "https://es-cn-0pp19tb17****jc8p.kibana.elasticsearch.aliyuncs.com:5601"
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["es-cn-0pp19tb17****jc8p.elasticsearch.aliyuncs.com:9200"]
# Enabled ilm (beta) to use index lifecycle management instead daily indices.
#ilm.enabled: false
# Optional protocol and basic auth credentials.
#protocol: "https"
username: "elastic"
password: "Elastic@432"
無需進行任何配置我們就可以完成對redis的監控, 但是如果需要自定義設置,可以通過以下指令,讓Filebeat 啟動並配置 Redis模塊
# sudo filebeat modules enable redis
Enabled redis
在阿里雲平臺,我們可以通過以下指令,來啟動 Filebeat
注:在安裝或升級filebeat時,或在啟用新模塊後,必須執行setup命令。
# sudo filebeat setup
# sudo service filebeat start
Starting filebeat (via systemctl): [ OK ]
我們可以在Kibana的 Dashboard 中查看 Redis 的 logs
我們可以看到 Redis 的 overview:
安裝 Metribeat
我們可以使用 Metricbeat 的 Redis 模塊週期性地從redis服務器來收集數據。
Metricbeat由模塊和指標集組成。 Metricbeat模塊定義了從特定服務(例如Redis,MySQL等)收集數據的基本邏輯。 該模塊指定有關服務的詳細信息,包括如何連接,收集度量的頻率以及收集哪些度量。
每個模塊都有一個或多個指標集。 度量集是模塊的一部分,用於獲取和構建數據。 指標標準集不是將每個指標標準收集為單獨的事件,而是在對遠程系統的單個請求中檢索多個相關指標標準的列表。 因此,例如,Redis模塊提供了一個信息指標集,該信息指標集通過運行INFO命令並解析返回的結果來從Redis收集信息和統計信息。
接下來我們來安裝Metricbeat。我們先打開Kibana:
選擇“Add metric data”,按照截圖中下信息做操作:
我們可以按照圖中顯示的命令安裝 Metricbeat
# curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-6.7.0-x86_64.rpm
# sudo rpm -vi metricbeat-6.7.0-x86_64.rpm
在完成相應安裝步驟後,通常情況下,我們不需要做任何特殊,如有需求,可以通過以下指令配置 Metricbeat Redis模塊。
# vim /etc/metricbeat/metricbeat.yml
setup.kibana:
host: "https://es-cn-4591jumei****1zp5.kibana.elasticsearch.aliyuncs.com:5601"
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["es-cn-4591jumei****1zp5.elasticsearch.aliyuncs.com:9200"]
# Enabled ilm (beta) to use index lifecycle management instead daily indices.
#ilm.enabled: false
#protocol: "https"
username: "elastic"
password: "Elastic@432"
啟動 Redis 模塊
# sudo metricbeat modules enable redis
Enabled redis
#####啟動metricbeat服務########
# sudo metricbeat setup
# sudo service metricbeat start
進入Kibana Dashboard,我們可以看到 Redis 的指標信息。
總結
Redis 是許多企業體系結構的重要組成部分,確保平穩運行是DevOps工程師優先考慮的事情。 而從Redis日誌中獲得的相關指標分析,可以提高問題解決能力(例如,通過配置解決警告),但是更重要的是,它們可以幫助員工輕易的瞭解影響應用程序穩定性的關鍵問題。
當存在影響應用程序穩定性的關鍵問題時,將日誌傳送到阿里雲Elastic Stack 做快速分析,對於快速找到相關問題,並以最小的中斷代價,將系統恢復到正常運行至關重要。
聲明:本文由“Beats:使用Elastic Stack對Redis監控”基於阿里雲服務環境授權改編
原文作者:Elastic 中國社區佈道師——劉曉國
合作編輯:Lettie/大禹
出處鏈接:https://elasticstack.blog.csdn.net/.
【阿里雲Elastic Stack】100%兼容開源ES,獨有9大能力
相關活動
更多折扣活動,請訪問阿里雲 Elasticsearch 官網
阿里雲 Elasticsearch 商業通用版,1核2G ,SSD 20G首月免費
阿里雲 Logstash 2核4G首月免費