2017-01-12 155 views
2

我們有一個運行在我們服務器上的redis數據庫,但由於某種原因,我在我們的數據庫中看不到任何鍵。我只是想知道,如果redis存儲一個活動日誌,我可以在哪裏跟蹤密鑰是否被刪除?Redis活動日誌

我有redis的常用日誌文件,在/var/log/redis.log但沒有我正在尋找的信息。

回答

2

我認爲沒有直接的方式來記錄一切,但這裏是一個黑客攻擊。

$ redis-cli monitor >> ~/my_redis_commands.log 2>&1 

這裏>>告訴輸出流已經從monitor改爲file2>&1告訴給STDERR重定向到STDOUT OS。

n> & m合併輸出流n與流米。

請注意,文件描述符0通常是標準輸入(STDIN),1是標準輸出(STDOUT),2是標準錯誤輸出(STDERR)。


去看看文件的調試一些SSH會話的內容。

$ tail -f ~/my_redis_commands.log 

或者您可以使用grep來查找「DEL」。你可以看到Redis的支持的命令列表,並嘗試像SETGET用grep查詢等

$ grep '"DEL"' ~/my_redis_commands.log 
這種想法的

缺點是:

  • 你需要運行單獨的過程來做到這一點
  • 它的內存和CPU消耗
    • 單個MONITOR客戶端可以將吞吐量降低50%以上。運行更多的MONITOR客戶端將進一步降低吞吐量。
  • 出於安全考慮,某些特殊的管理命令,如CONFIG沒有登錄到監視器輸出

更多信息https://redis.io/commands/monitor

0

看到這個的INFO command可以用來當蒐集一些法醫信息與allcmdstats開關一起使用 - 您將可以看到所有命令的計數,包括令人反感的命令。

請記住,這可能是未經授權的入侵併且您的服務器可能已被入侵的結果。