먼저, http 서버를 돌려야 하기 때문에 python3 설치 여부 확인
which python3
내가 체크하고자 하는 프로세스가 돌고 있는지 체크하는 sh 파일
# cd /usr/local/bin 에
### crawler_check.sh
#!/bin/bash
# 체크할 프로세스의 경로를 변수에 저장합니다.
PROCESS_PATH="./venv/bin/python tool/checkup_crawler.py --prod -d"
# 프로세스가 실행 중인지 확인합니다.
if pgrep -f "$PROCESS_PATH" > /dev/null
then
PROCESS_STATUS=1 # 프로세스가 실행 중이면 1
else
PROCESS_STATUS=0 # 프로세스가 실행 중이지 않으면 0
fi
# Prometheus 메트릭 포맷으로 출력합니다.
echo "# HELP process_up Is the process running (1 for yes, 0 for no)"
echo "# TYPE process_up gauge"
echo "process_up $PROCESS_STATUS"
# 이렇게 작성 함.
위의 파일이 정기적으로 돌면서 http에 update하는 sh파일
#!/bin/bash
while true; do
/usr/local/bin/crawler_check.sh > /var/www/html/metrics
sleep 60
done
혹시 모르니, /var/www/html => 디렉토리 생성.
작성했던 sh 파일을 기반으로 systemd에 등록해주자.
### python-http 서버 데몬으로 실행.
### crawler_http.service
[Unit]
Description=crawler_check
After=network.target
[Service]
WorkingDirectory=/var/www/html
ExecStart=/bin/python3 -m http.server 8080
User=root
Restart=always
[Install]
WantedBy=multi-user.target
만들었던 sh 파일 실행.
### metric_server.service
[Unit]
Description=Metric Server Script
After=network.target
[Service]
ExecStart=/usr/local/bin/metric_server.sh
User=root
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target


댓글 남기기