今天啟動集群tidb時出現一個錯誤,是某個tikv節點報錯:node_exporter-9100.service failed
一個節點的問題會導致整個集群啟動失敗。去此節點下的日志文件中查找,發現沒有什么報錯原因。無奈此時只能去系統日志中查看發生了什么問題
果然發現了問題
Jan 16 15:35:05 ip-172-31-26-133 systemd-logind: New session 2045 of user tidb.
Jan 16 15:35:05 ip-172-31-26-133 systemd: Started Session 2045 of user tidb.
Jan 16 15:35:05 ip-172-31-26-133 systemd: Starting Session 2045 of user tidb.
Jan 16 15:35:05 ip-172-31-26-133 ansible-stat: Invoked with checksum_algorithm=sha1 get_checksum=False follow=False path=/home/tidb/deploy get_md5=False get_mime=True get_attributes=True
Jan 16 15:35:05 ip-172-31-26-133 ansible-stat: Invoked with checksum_algorithm=sha1 get_checksum=False follow=False path=/data/data_tidb get_md5=False get_mime=True get_attributes=True
Jan 16 15:35:08 ip-172-31-26-133 ansible-systemd: Invoked with no_block=False force=None name=node_exporter-9100.service enabled=False daemon_reload=False state=started user=False masked=None
Jan 16 15:35:09 ip-172-31-26-133 ansible-wait_for: Invoked with host=172.31.26.133 send=GET /metrics HTTP/1.0#015#012#015#012 port=9100 delay=0 state=present sleep=1 timeout=300 exclude_hosts=None search_regex=200 OK path=None connect_timeout=5
Jan 16 15:35:17 ip-172-31-26-133 systemd: node_exporter-9100.service holdoff time over, scheduling restart.
Jan 16 15:35:17 ip-172-31-26-133 systemd: Started node_exporter-9100 service.
Jan 16 15:35:17 ip-172-31-26-133 systemd: Starting node_exporter-9100 service...
Jan 16 15:35:17 ip-172-31-26-133 systemd: Failed at step EXEC spawning /home/tidb/deploy/scripts/run_node_exporter.sh: No such file or directory
Jan 16 15:35:17 ip-172-31-26-133 systemd: node_exporter-9100.service: main process exited, code=exited, status=203/EXEC
Jan 16 15:35:17 ip-172-31-26-133 systemd: Unit node_exporter-9100.service entered failed state.
Jan 16 15:35:17 ip-172-31-26-133 systemd: node_exporter-9100.service failed.
Jan 16 15:35:32 ip-172-31-26-133 systemd: node_exporter-9100.service holdoff time over, scheduling restart.
Jan 16 15:35:32 ip-172-31-26-133 systemd: Started node_exporter-9100 service.
Jan 16 15:35:32 ip-172-31-26-133 systemd: Starting node_exporter-9100 service...
Jan 16 15:35:32 ip-172-31-26-133 systemd: Failed at step EXEC spawning /home/tidb/deploy/scripts/run_node_exporter.sh: No such file or directory
Jan 16 15:35:32 ip-172-31-26-133 systemd: node_exporter-9100.service: main process exited, code=exited, status=203/EXEC
Jan 16 15:35:32 ip-172-31-26-133 systemd: Unit node_exporter-9100.service entered failed state.
Jan 16 15:35:32 ip-172-31-26-133 systemd: node_exporter-9100.service failed.
從日志中我們發現了問題所在,其實報錯原因是不能啟動9100這個node_exporter服務,因為缺少腳本導致的。后來對比一下其他集群節點,原來是集群中的每個節點的tidb用戶的家目錄下都有一個“deploy”的目錄,但是報錯的這個節點的deploy目錄卻沒有,不知道是什么原因給刪除了,所以我們不得不重新在tidb用戶家目錄下建立一個deploy目錄,我們不必手工來創建,直接在中控機操作即可。解決方法如下:
1、現在我們在中控機上執行這一步驟。
這里的 -l 后面的ip是報錯的這個節點的IP。
2、執行成功之后,我們就可以看到這個家目錄下的deploy目錄了。
3、有了這個目錄,那我們就能啟動成功了,這個時候再去中控機啟動集群,就成功了。本次成功解決問題。
所以我發現出先問題去兩個地方找:一個是tidb節點的錯誤日志,還有一個是系統日志。