- होम
- ऑरिजिन सर्वर
- सत्यापन
सत्यापन
स्मोक टेस्ट
Section titled “स्मोक टेस्ट”cloud-init को पूरा होने के लिए 5—10 मिनट प्रतीक्षा करने के बाद ये जाँचें चलाएँ।
हेल्थ एंडपॉइंट
Section titled “हेल्थ एंडपॉइंट”ORIGIN_IP=$(terraform output -raw public_ip)
curl -sf "http://${ORIGIN_IP}/health" | jq .अपेक्षित:
{ "status": "healthy", "component": "origin-server", "applications": ["juice-shop", "dvwa", "vampi", "httpbin", "whoami", "csd-demo", "dvga", "restaurant", "crapi"]}एप्लिकेशन एंडपॉइंट
Section titled “एप्लिकेशन एंडपॉइंट”# Default landing pagecurl -sf "http://${ORIGIN_IP}/" -o /dev/null -w "Landing: %{http_code}\n"
# Juice Shopcurl -sf "http://${ORIGIN_IP}/juice-shop/" -o /dev/null -w "Juice Shop: %{http_code}\n"
# DVWAcurl -sf "http://${ORIGIN_IP}/dvwa/" -o /dev/null -w "DVWA: %{http_code}\n"
# VAmPIcurl -sf "http://${ORIGIN_IP}/vampi/" -o /dev/null -w "VAmPI: %{http_code}\n"
# httpbincurl -sf "http://${ORIGIN_IP}/httpbin/get" -o /dev/null -w "httpbin: %{http_code}\n"
# whoamicurl -sf "http://${ORIGIN_IP}/whoami/" -o /dev/null -w "whoami: %{http_code}\n"
# DVGAcurl -sf "http://${ORIGIN_IP}/dvga/" -o /dev/null -w "DVGA: %{http_code}\n"
# RESTaurantcurl -sf "http://${ORIGIN_IP}/restaurant/docs" -o /dev/null -w "RESTaurant: %{http_code}\n"
# crAPI (port 8888)curl -sf "http://${ORIGIN_IP}:8888" -o /dev/null -w "crAPI: %{http_code}\n"सभी को 200 वापस करना चाहिए (DVWA लॉगिन के लिए 302 रीडायरेक्ट वापस करता है)।
स्वचालित स्मोक टेस्ट
Section titled “स्वचालित स्मोक टेस्ट”रिपॉजिटरी में एक 39-पॉइंट स्मोक टेस्ट सूट शामिल है:
./tests/smoke-test.sh ${ORIGIN_IP}यह सभी 9 एप्लिकेशन, हेल्थ एंडपॉइंट, VAmPI रजिस्ट्रेशन/लॉगिन, CSD Demo exfil राउंड-ट्रिप, DVGA GraphQL, RESTaurant Swagger, पोर्ट 8888 पर crAPI, nginx gzip, और वर्शन हाइडिंग को सत्यापित करता है।
Docker कंटेनर स्टेटस
Section titled “Docker कंटेनर स्टेटस”VM में SSH करें और सत्यापित करें कि सभी 41 कंटेनर चल रहे हैं:
ssh azureuser@${ORIGIN_IP} "sudo docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'" | sortअपेक्षित आउटपुट (41 कंटेनर):
NAMES STATUS PORTScrapi-community Up X minutescrapi-identity Up X minutescrapi-mailhog Up X minutes 0.0.0.0:18025->8025/tcpcrapi-mongo Up X minutes 27017/tcpcrapi-postgres Up X minutes 5432/tcpcrapi-web Up X minutes 0.0.0.0:8888->80/tcpcrapi-workshop Up X minutescsd-demo-1 Up X minutes 127.0.0.1:5001->5001/tcpcsd-demo-2 Up X minutes 127.0.0.1:5002->5001/tcpcsd-demo-3 Up X minutes 127.0.0.1:5003->5001/tcpcsd-demo-4 Up X minutes 127.0.0.1:5004->5001/tcpdvga-1 Up X minutes 127.0.0.1:5201->5013/tcpdvga-2 Up X minutes 127.0.0.1:5202->5013/tcpdvga-3 Up X minutes 127.0.0.1:5203->5013/tcpdvga-4 Up X minutes 127.0.0.1:5204->5013/tcpdvwa-1 Up X minutes 127.0.0.1:8101->80/tcpdvwa-2 Up X minutes 127.0.0.1:8102->80/tcpdvwa-3 Up X minutes 127.0.0.1:8103->80/tcpdvwa-4 Up X minutes 127.0.0.1:8104->80/tcpdvwa-db Up X minutes 3306/tcphttpbin-1 Up X minutes 127.0.0.1:8201->80/tcphttpbin-2 Up X minutes 127.0.0.1:8202->80/tcphttpbin-3 Up X minutes 127.0.0.1:8203->80/tcphttpbin-4 Up X minutes 127.0.0.1:8204->80/tcpjuice-shop-1 Up X minutes 127.0.0.1:3001->3000/tcpjuice-shop-2 Up X minutes 127.0.0.1:3002->3000/tcpjuice-shop-3 Up X minutes 127.0.0.1:3003->3000/tcpjuice-shop-4 Up X minutes 127.0.0.1:3004->3000/tcprestaurant-1 Up X minutes 127.0.0.1:8301->8080/tcprestaurant-2 Up X minutes 127.0.0.1:8302->8080/tcprestaurant-3 Up X minutes 127.0.0.1:8303->8080/tcprestaurant-4 Up X minutes 127.0.0.1:8304->8080/tcprestaurant-db Up X minutes 5432/tcpvampi-1 Up X minutes 127.0.0.1:5101->5000/tcpvampi-2 Up X minutes 127.0.0.1:5102->5000/tcpvampi-3 Up X minutes 127.0.0.1:5103->5000/tcpvampi-4 Up X minutes 127.0.0.1:5104->5000/tcpwhoami-1 Up X minutes 127.0.0.1:8082->80/tcpwhoami-2 Up X minutes 127.0.0.1:8083->80/tcpwhoami-3 Up X minutes 127.0.0.1:8084->80/tcpwhoami-4 Up X minutes 127.0.0.1:8085->80/tcpnginx स्टेटस
Section titled “nginx स्टेटस”ssh azureuser@${ORIGIN_IP} "sudo nginx -t && sudo systemctl status nginx --no-pager"समस्या निवारण
Section titled “समस्या निवारण”Cloud-init अभी चल रहा है
Section titled “Cloud-init अभी चल रहा है”यदि एंडपॉइंट 502 या कनेक्शन अस्वीकृत वापस करते हैं, तो cloud-init अभी भी प्रोविजनिंग कर रहा होगा:
ssh azureuser@${ORIGIN_IP} "cloud-init status"status: running— अभी भी प्रोविजनिंग हो रही है, कुछ मिनट प्रतीक्षा करेंstatus: done— प्रोविजनिंग पूर्ण, Docker कंटेनर जाँचेंstatus: error— नीचे दिए गए लॉग जाँचें
Cloud-init लॉग
Section titled “Cloud-init लॉग”ssh azureuser@${ORIGIN_IP} "sudo tail -100 /var/log/cloud-init-output.log"कंटेनर प्रारंभ नहीं हो रहा
Section titled “कंटेनर प्रारंभ नहीं हो रहा”# Check container logs (each app has 4 instances: -1 through -4)ssh azureuser@${ORIGIN_IP} "sudo docker logs juice-shop-1 2>&1 | tail -20"ssh azureuser@${ORIGIN_IP} "sudo docker logs dvwa-1 2>&1 | tail -20"ssh azureuser@${ORIGIN_IP} "sudo docker logs vampi-1 2>&1 | tail -20"ssh azureuser@${ORIGIN_IP} "sudo docker logs httpbin-1 2>&1 | tail -20"ssh azureuser@${ORIGIN_IP} "sudo docker logs csd-demo-1 2>&1 | tail -20"ssh azureuser@${ORIGIN_IP} "sudo docker logs dvga-1 2>&1 | tail -20"ssh azureuser@${ORIGIN_IP} "sudo docker logs restaurant-1 2>&1 | tail -20"ssh azureuser@${ORIGIN_IP} "sudo docker logs crapi-web 2>&1 | tail -20"nginx 502 वापस कर रहा है
Section titled “nginx 502 वापस कर रहा है”अपस्ट्रीम कंटेनर तैयार नहीं है या क्रैश हो गया है:
# Check nginx error logssh azureuser@${ORIGIN_IP} "sudo tail -20 /var/log/nginx/error.log"
# Restart all instances of a specific appssh azureuser@${ORIGIN_IP} "for i in 1 2 3 4; do sudo docker restart juice-shop-\$i; done"
# Rebuild and restart all containersssh azureuser@${ORIGIN_IP} "cd /opt/origin-server && sudo docker compose build && sudo docker compose up -d"डिस्क स्थान
Section titled “डिस्क स्थान”Docker इमेज लगभग 4.7 GiB उपभोग करती हैं। CDN लोड टेस्टिंग के अंतर्गत डिस्क समाप्ति को रोकने के लिए एक्सेस लॉगिंग अक्षम है। Logrotate को गहन सुरक्षा उपाय के रूप में कॉन्फ़िगर किया गया है (500 MiB सीमा)। डिस्क उपयोग सत्यापित करें:
ssh azureuser@${ORIGIN_IP} "df -h / && sudo docker system df"कंटेनर मेमोरी
Section titled “कंटेनर मेमोरी”उन कंटेनरों की जाँच करें जो अपनी मेमोरी सीमा के निकट पहुँच रहे हैं (OOM जोखिम):
ssh azureuser@${ORIGIN_IP} "sudo docker stats --no-stream --format 'table {{.Name}}\t{{.MemUsage}}\t{{.MemPerc}}' | sort"सब कुछ पुनः प्रारंभ करें
Section titled “सब कुछ पुनः प्रारंभ करें”यदि आवश्यक हो, सभी सेवाओं को पुनर्निर्माण और पुनः प्रारंभ करें:
ssh azureuser@${ORIGIN_IP} "cd /opt/origin-server && sudo docker compose down && sudo docker compose build && sudo docker compose up -d && sudo systemctl restart nginx"