GitLab 的元件狀態檢視

极狐GitLab發表於2024-09-03

本文分享使用 gitlab-ctl 命令來對極狐GitLab 的元件進行狀態查詢和關閉與重啟等操作。

極狐GitLab 是一個多元件系統,主要元件包括:

  • Gitaly
  • GitLab exporter
  • Nginx
  • Redis
  • Sidekiq
  • PostgreSQL
  • Puma
  • Workhorse
  • Registry

gitlab-ctl可以對上述元件的狀態進行查詢,以及關閉、重啟等。該命令對於極狐GitLab 故障排查來講是非常重要的。掌握對於該命令的使用是極狐GitLab 運維人員的必備技能之一。

極狐GitLab 是 GitLab 在中國的發行版,支援私有化部署,中文版本對於中國使用者更加友好。安裝指南可以檢視官網文件 https://dl.gitlab.cn/vopja2bq

gitlab-ctl status

可以使用 gitlab-ctl status來檢視這些元件的狀態:

gitlab-ctl status
run: alertmanager: (pid 1107) 594881s; run: log: (pid 1101) 594881s
run: gitaly: (pid 1108) 594881s; run: log: (pid 1099) 594881s
run: gitlab-exporter: (pid 1089) 594881s; run: log: (pid 1086) 594881s
run: gitlab-kas: (pid 1080) 594881s; run: log: (pid 1078) 594881s
run: gitlab-workhorse: (pid 1081) 594881s; run: log: (pid 1079) 594881s
run: logrotate: (pid 300853) 873s; run: log: (pid 1096) 594881s
run: nginx: (pid 1092) 594881s; run: log: (pid 1083) 594881s
run: node-exporter: (pid 1104) 594881s; run: log: (pid 1095) 594881s
run: postgres-exporter: (pid 1088) 594881s; run: log: (pid 1085) 594881s
run: postgresql: (pid 1077) 594881s; run: log: (pid 1075) 594881s
run: prometheus: (pid 1093) 594881s; run: log: (pid 1087) 594881s
run: puma: (pid 1084) 594881s; run: log: (pid 1074) 594881s
run: redis: (pid 1082) 594881s; run: log: (pid 1076) 594881s
run: redis-exporter: (pid 1094) 594881s; run: log: (pid 1090) 594881s
run: sidekiq: (pid 1105) 594881s; run: log: (pid 1091) 594881s

可以看到這些元件的狀態都是 run說明是在正常執行,這也是極狐GitLab 能夠正常執行的核心和關鍵。

可以使用 gitlab-ctl status 元件名來檢視某個元件的狀態:

gitlab-ctl status redis
run: redis: (pid 1082) 595106s; run: log: (pid 1076) 595106s

gitlab-ctl stop/start

使用 stop/start命令來完成對元件的停止/重啟。

# 關閉 redis 元件
gitlab-ctl stop redis
ok: down: redis: 0s, normally up

# 檢視 redis 元件狀態
gitlab-ctl status redis
down: redis: 2s, normally up; run: log: (pid 1076) 595233s

當然,如果關閉了某些元件,就會導致極狐GitLab 訪問故障,出現諸如 500的錯誤:

file

用 start重啟即可:

# 重啟 redis 元件
gitlab-ctl start redis
ok: run: redis: (pid 301663) 1s

# 檢視 redis 元件狀態
gitlab-ctl status redis
run: redis: (pid 301663) 4s; run: log: (pid 1076) 595339s

當然, 也可以直接使用 restart命令來一次性完成 stopstart 功能。

gitlab-ctl restart
ok: run: alertmanager: (pid 301714) 1s
ok: run: gitaly: (pid 301725) 1s
ok: run: gitlab-exporter: (pid 301746) 0s
ok: run: gitlab-kas: (pid 301761) 0s
ok: run: gitlab-workhorse: (pid 301771) 1s
ok: run: logrotate: (pid 301784) 0s
ok: run: nginx: (pid 301790) 1s
ok: run: node-exporter: (pid 301798) 0s
ok: run: postgres-exporter: (pid 301807) 1s
ok: run: postgresql: (pid 301816) 0s
ok: run: prometheus: (pid 301834) 0s
ok: run: puma: (pid 301848) 1s
ok: run: redis: (pid 301853) 0s
ok: run: redis-exporter: (pid 301860) 0s
ok: run: sidekiq: (pid 301871) 0s

相關文章