GitLab 的组件状态查看
本文分享使用 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的错误:
用 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
命令来一次性完成 stop
和 start
功能。
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