gitlab 403 forbidden

问题

访问 gitlab 报错 403 forbidden

排查

  1. 查看实时 logs

    # 查看所有的logs; 按 Ctrl-C 退出
    sudo gitlab-ctl tail
    
    # 拉取/var/log/gitlab下子目录的日志
    sudo gitlab-ctl tail gitlab-rails
    
    # 拉取某个指定的日志文件
    sudo gitlab-ctl tail nginx/gitlab_error.log
    
  2. 查看历史日志

    历史日志的持久化需要提前在 /etc/gitlab/gitlab.rb 中设置。

    因为没有提前设置,所以这里无法查看。

    omnibus-gitlab生成logs用的Runit-managed服务是svlogd, 关于svlogd的详细介绍, 请查看svlogd documentation。

    但是经过搜索引擎查出问题是有用户频繁操作,触发了 gitlab 的防爆破机制,导致 403 forbidden。

解决

  1. 进入redis,执行下面的命令,删除被墙的IP地址

    /opt/gitlab/embedded/bin/redis-cli -s /var/opt/gitlab/redis/redis.socket keys '*' | grep 'rack::attack' | xargs /opt/gitlab/embedded/bin/redis-cli -s /var/opt/gitlab/redis/redis.socket DEL
    

    执行结果如下

    [root@localhost gitlab]# /opt/gitlab/embedded/bin/redis-cli -s /var/opt/gitlab/redis/redis.socket keys '*' | grep 'rack::attack' | xargs /opt/gitlab/embedded/bin/redis-cli -s /var/opt/gitlab/redis/redis.socket DEL
    (integer) 1
    
  2. 重启 gitlab

    gitlab-ctl restart
    
  3. gitlab 恢复正常

参考文献

gitlab 日志查看

[gitlab 403 forbidden 报错解决

你可能感兴趣的:(问题排查,java,linux,git)