【问题标题】:How to access Redis log file如何访问 Redis 日志文件
【发布时间】:2013-04-26 13:40:54
【问题描述】:

在 ubuntu 服务器上使用 ruby​​ 设置了 Redis,但无法弄清楚如何访问其日志文件。教程说它应该在这里:

/var/log/redis_6379.log

但甚至找不到 /var/ 文件夹

【问题讨论】:

  • 你能找到你的redis使用的配置文件吗?
  • @akonsu 也不是。我可以启动和停止它,使用 redis-cli 访问它,但不知道如何找到配置或日志文件。在 redis.io 或其他任何地方都找不到任何人解释它
  • 您的系统上有/etc 目录吗?你可以运行which redis-server 来找出它的安装位置吗?
  • @akonsu 发现了另一种方式。仍然不知道如何“cd”我的方式
  • 您还可以使用:locate *redis*log 快​​速查找现有安装。如果您刚刚安装它,您可能需要先运行updatedb,这可能会比查看 conf 慢:)

标签: redis


【解决方案1】:

找到它:

sudo tail /var/log/redis/redis-server.log -n 100

因此,如果设置更标准,则应该是:

sudo tail /var/log/redis_6379.log -n 100

这会输出文件的最后 100 行。

您的日志文件所在的位置在您可以访问的配置中:

redis-cli CONFIG GET *

日志文件可能并不总是使用上述方法显示。在这种情况下使用

tail -f `less  /etc/redis/redis.conf | grep logfile|cut -d\  -f2`

【讨论】:

  • 使用cat 读取日志文件如果太长(在日志文件中经常发生)可能会非常糟糕。使用lesstail 会更安全
  • 使用 '*' 而不是 * 因为 * 会被终端解释
  • 这是一个已知的,但有人可能会发现它很有用:当寻找崩溃/问题的迹象时,Redis 日志可能没有多大帮助......它可能只是显示正常的操作然后服务在线消息。因此,请检查网络服务器(apache?)错误日志、FCGI 等处理程序的日志,以及 syslog 中的 proc kills 或其他警报。还要检查任何跟踪/历史资源使用情况(如 Cloudlinux 或 newrelic 图表),以便对未来有所了解——例如,与加速整个站点(生成所有缓存)的 SEO 爬虫同时发生的大规模 MySQL 备份可能造成破坏,redis out of mem等
  • 用户是redis,组也是redis 无法运行cd /var/log/redis
【解决方案2】:

您也可以登录 redis-cli 并使用 MONITOR 命令查看针对 Redis 发生的查询。

【讨论】:

  • 你拯救了我的一天。我的用例是启动 Redis-docker 并从容器内部运行脚本来填充示例数据。但是在后台运行 docker-server 并注入数据后,容器正在退出。所以最后在我所有的命令之后,我添加了 Redis-CLI 监视器并且它工作了。谢谢。
【解决方案3】:

日志文件将是配置文件(通常是/etc/redis/redis.conf)所说的位置:)

默认情况下,logfile stdout 这可能不是您想要的。如果 redis 运行的是守护进程,那么该日志配置意味着日志将被发送到/dev/null,即丢弃。

总结:在您的配置中设置logfile /path/to/my/log/file.log,redis 日志将写入该文件。

【讨论】:

    【解决方案4】:
    vi /usr/local/etc/redis.conf
    

    查找目录、日志文件

    # The working directory.
    #
    # The DB will be written inside this directory, with the filename specified
    # above using the 'dbfilename' configuration directive.
    #
    # The Append Only File will also be created inside this directory.
    #
    # Note that you must specify a directory here, not a file name.
    dir /usr/local/var/db/redis/
    
    
    
    # Specify the log file name. Also the empty string can be used to force
    # Redis to log on the standard output. Note that if you use standard
    # output for logging but daemonize, logs will be sent to /dev/null 
    logfile "redis_log"
    

    所以日志文件在/usr/local/var/db/redis/redis_log创建,名称为redis_log

    您也可以尝试redis-cli 中的MONITOR 命令来查看执行的命令数。

    【讨论】:

    • 即使在更改 conf 文件并再次运行 redis-server 并执行一些操作后,我仍无法在此目录 /usr/local/var/db/redis/ 处处理日志,dir 仍然为空。
    【解决方案5】:

    检查你的错误日志文件,然后使用tail命令:

    tail -200f /var/log/redis_6379.log
    

     tail -200f /var/log/redis.log
    

    根据你的错误文件名..

    【讨论】:

      猜你喜欢
      • 2012-06-15
      • 1970-01-01
      • 2013-05-19
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-25
      • 2019-03-16
      相关资源
      最近更新 更多