OmniEdge Github Action을 사용하여 서버를 모니터링하는 방법
5251 단어 cloudvpnopensourcetutorial
모니터링해야 하는 이유
우리는 오하이오, 오레곤, 프랑크푸르트, 도쿄, 시드니, 뭄바이, 상파울로, 밀라노, 싱가포르, 홍콩, 타이페이에 위치한 11개의 퍼블릭 슈퍼노드 서버를 운영하고 있습니다.
모든 서버는 AWS 및 GCP와 분리된 클라우드 인스턴스에서 실행 중이며, UDP 포트를 서버로 개방하고, 도움말omniedge 노드가 P2P 연결을 지원하며, NAT 순회가 실패할 경우 노드 간 트래픽을 릴레이하기 위한 폴백으로 사용됩니다. 직접 연결을 설정할 수 없습니다. 따라서 슈퍼노드 서버는 전 세계 사용자에게 매우 중요합니다.
모니터링 방법
서버는 하나의 udp 포트만 열기 때문에 다음 명령을 실행하여 상태를 쉽게 확인할 수 있습니다.
nc -v -w 2 -z -u 1.2.3.4 80 #scan port 80 of IP 1.2.3.4
Netcat(또는 줄여서 nc)은 TCP, UDP 또는 UNIX 도메인 소켓과 관련된 Linux에서 모든 작업을 수행하는 데 사용되는 단순하지만 강력한 네트워킹 명령줄 도구입니다. 설치가 매우 쉽습니다.
$ yum install nc #CentOS/RHEL
$ dnf install nc #Fedora
$ sudo apt-get install Netcat #Debian/Ubuntu
이 명령은 다른 매개변수를 사용합니다.
UDP
포트nc
데몬에 실제로 데이터를 보내지 않고 단순히 수신 데몬을 검색하도록 설정합니다. 하나의 인트라넷에서 모든 서버를 연결하는 방법
1. Sign up OmniEdge account 시스템이 가상 네트워크를 구축하고 가상 네트워크 ID를 가져오고 Dashboard에서 보안 키를 생성합니다.
2. Docker를 설치하고 모든 서버에서 자체 보안 키 및 가상 네트워크 ID로 명령을 실행합니다.
sudo docker run -d \
-e OMNIEDGE_SECURITYKEY=Security-key \
-e OMNIEDGE_VIRUTALNETWORK_ID="Virtual Network ID" \
--network host \
--privileged \
omniedge/omniedge:latest
3. 가상 네트워크 대시보드에 모든 서버가 나열되는 것을 볼 수 있습니다.
Github 작업을 사용하여 모니터링
모든 슈퍼 노드를 인트라넷에 연결했으며 내부적으로 확인하고 싶습니다. 그래서 GitHub action을 인트라넷에 가져와 공개 IP가 아닌 내부 IP 없이 P2P 연결을 통해 상태를 확인합니다.
상태를 확인하고 readme를 업데이트하도록 GitHub 작업을 설정하는 단계는 다음과 같습니다.
mkdir -p /.github/workflows/check-server-status.yml
2. 환경 변수를 설정하고
your-repo-address/settings/secrets/actions
로 전환한 다음 이름으로 Repository secrets
를 생성합니다. SERVER_IPs #Servers IP and name with format: server_name, IP
PORT # 80
OMNIEDGE_SECURITY_KEY #OmniEdge security_key
OMNIEDGE_VIRTUALNETWORK_ID #OmniEdge Virtual network ID
3. Sign up OmniEdge account 에서
OMNIEDGE_SECURITY_KEY
및 OMNIEDGE_VIRTUALNETWORK_ID
를 Dashboard 에서 가져오고 2 단계에서 채웁니다.4.
check-server-status.yml
파일을 편집하고 OmniEdge for GitHub Action을 추가합니다.- name: OmniEdge for Github Action
uses: omniedgeio/github-action@v1
with:
securitykey: ${{ secrets.OMNIEDGE_SECURITY_KEY }}
virtualnetworkid: ${{ secrets.OMNIEDGE_VIRTUALNETWORK_ID }}
5.확인 일정을 설정합니다. 여기서는 5시간마다 확인합니다.
- cron: "0 */5 * * *"
6. 링크에서 전체 워크플로를 복사할 수 있습니다https://github.com/omniedgeio/server-status/blob/main/.github/workflows/check-server-status.yml.
7. 커밋을 리포지토리로 푸시하면 작업이 실행되고 1분 후에 새 README.md가 생성되는 것을 볼 수 있습니다.
예, 읽어보기에는 홍콩이 오프라인 상태인 것으로 표시되지만 실제로는 그렇지 않습니다. nc 명령이 항상 제대로 작동하지 않습니다. 더 나은 명령이 있으면 알려주십시오.
감사.
실행 중인 전체 저장소는 다음과 같습니다. https://github.com/omniedgeio/server-status
Reference
이 문제에 관하여(OmniEdge Github Action을 사용하여 서버를 모니터링하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/omniedge/how-we-use-omniedge-github-action-to-monitor-severs-5gcn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)