ある日GitLabにアクセスしようとしたら502エラーが表示されてアクセスできなくなっていました
原因調査
まずGitLabのログを見ます
ログを確認すると「”badgateway: failed to receive response: dial unix /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket: connect: connection refused”」とエラーが出ていたのでこのエラーについて調べました
# vi /var/log/gitlab/gitlab-workhorse/current {"correlation_id":"","duration_ms":0,"error":"badgateway: failed to receive response: dial unix /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket: connect: connection refused","level":"error","method":"GET","msg":"","time":"2024-08-08T09:54:12+09:00","uri":""}
ソケットがないときにこのエラーが出ることがあるようなので、ソケットがあるか確認します
# ll /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket srwxrwxrwx 1 git git 0 8月 8 10:02 /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket
ソケットはあることが確認できたので別の理由ですね。。。
下記のサイトを確認していたら「/opt/gitlab/var/puma」の所有者が問題説が浮上しました
gitlab socket connect : Connection refused
while I am trying to reconfigure my gitlab instance, I am getting this error. sudo gitlab-ctl reconfigure works fine but...
# ll /opt/gitlab/var/ 合計 0 drwx------ 2 git apache 40 7月 25 07:03 puma # ll /opt/gitlab/var/puma/ 合計 8 -rw-r--r-- 1 git apache 7 8月 8 10:47 puma.pid -rw-r--r-- 1 git apache 70 8月 8 10:47 puma.state
確認したところ、本来gitであるべき所有グループがapacheになっていました
所有者と所有グループ両方がgitになるように変更します
# chown -R git. /opt/gitlab/var/puma # ll /opt/gitlab/var 合計 0 drwx------ 2 git git 40 7月 25 07:03 puma # ll /opt/gitlab/var/puma/ 合計 8 -rw-r--r-- 1 git git 7 8月 8 10:47 puma.pid -rw-r--r-- 1 git git 70 8月 8 10:47 puma.state
これで見えるようになるはずです
が、自分の時にはそのままgitの設定再構築と再起動も実施してしまったので、もしかすると下記も実施する必要があるかもしれません
もし所有者変更だけで直らなかったら試してみてください(おそらく必要ない気はしますが)
# gitlab-ctl reconfigure # gitlab-ctl restart
おわりに
そもそもなんで突然見えなくなったんかなーと思いましたが、ちょうど昨日GitLabのセキュリティアップデートがあったみたいです
以前phpMyAdminでも、アップデート後にソケットの所有者が変わってしまって見れなくなるトラブルが起きたので、今回も同じような理由だと思いました
phpMyAdminと原因が同じだと、アップデートのたびに今回の問題が起きることが想定されます
もう一回起きてしまったら何か対策しようと思います
コメント