📖 Scenario: You are a DevOps engineer responsible for ensuring the Jenkins server is running smoothly. Monitoring Jenkins health helps catch problems early and keeps your automation pipelines reliable.
🎯 Goal: Build a simple Jenkins pipeline script that checks the health of the Jenkins server by retrieving the system load and disk space usage, then prints a health summary.
📋 What You'll Learn
Create a Jenkins pipeline script with agent any
Add variables to store system load and disk space usage
Use Jenkins environment variables and shell commands to get health data
Print a clear health summary message
💡 Why This Matters
🌍 Real World
Monitoring Jenkins health helps prevent build failures and downtime by catching resource issues early.
💼 Career
DevOps engineers often write Jenkins pipelines to automate monitoring and alerting for CI/CD infrastructure.
Progress0 / 4 steps
1
Set up Jenkins pipeline skeleton
Create a Jenkins pipeline script starting with pipeline and agent any. Inside the stages block, add an empty stage named "Health Check".
Jenkins
Hint
Start with the basic Jenkins pipeline structure using pipeline, agent any, and a stage named Health Check.
2
Add variables for system load and disk space
Inside the steps block of the Health Check stage, add two variables: systemLoad and diskSpace. Use the sh step with returnStdout: true to run the shell commands uptime for system load and df -h / for disk space, and assign their outputs to these variables.
Jenkins
Hint
Use def to declare variables inside a script block. Use sh with returnStdout: true to capture command output.
3
Create health summary message
Still inside the script block, create a variable called healthSummary that combines the systemLoad and diskSpace variables into a single string message. Use a multi-line string with """ to format the message clearly.
Jenkins
Hint
Use triple quotes """ to create a multi-line string. Use ${variable} to insert variable values inside the string.
4
Print the health summary
Add a println statement inside the script block to print the healthSummary variable to the Jenkins console output.
Jenkins
Hint
Use println(healthSummary) to show the health summary in the Jenkins console output.
Practice
(1/5)
1. What is the primary purpose of monitoring Jenkins health?
easy
A. To add new plugins to Jenkins
B. To change Jenkins user passwords
C. To create new Jenkins jobs
D. To ensure the Jenkins server runs smoothly without interruptions
Solution
Step 1: Understand Jenkins health monitoring
Monitoring Jenkins health means checking if Jenkins is working well and not facing issues.
Step 2: Identify the main goal
The main goal is to keep Jenkins running smoothly without interruptions or failures.
Final Answer:
To ensure the Jenkins server runs smoothly without interruptions -> Option D
Quick Check:
Jenkins health monitoring = smooth server operation [OK]
Hint: Monitoring means checking server status regularly [OK]
Common Mistakes:
Confusing monitoring with adding features
Thinking monitoring changes Jenkins setup
Mixing monitoring with user management
2. Which command correctly checks Jenkins health status using curl?
easy
A. curl http://jenkins-server:8080/health
B. curl -X POST http://jenkins-server:8080/health
C. curl http://jenkins-server:8080/job/health
D. curl http://jenkins-server:8080/status
Solution
Step 1: Identify the correct Jenkins health URL
The standard Jenkins health endpoint is at /health, accessed via GET request.
Step 2: Choose the correct curl syntax
curl with no extra flags sends a GET request, so curl http://jenkins-server:8080/health is correct.
Final Answer:
curl http://jenkins-server:8080/health -> Option A
Quick Check:
curl + /health + GET = curl http://jenkins-server:8080/health [OK]
Hint: Use curl with GET on /health endpoint [OK]
Common Mistakes:
Using POST instead of GET
Using wrong URL paths like /job/health
Assuming /status is the health endpoint
3. What output would you expect from curl http://jenkins-server:8080/health if Jenkins is healthy?
medium
A. {"status":"healthy"}
B. 404 Not Found
C. {"status":"unhealthy"}
D. 500 Internal Server Error
Solution
Step 1: Understand the health endpoint response
When Jenkins is healthy, the /health endpoint returns JSON with status "healthy".
Step 2: Match expected output
The correct output is a JSON string: {"status":"healthy"} indicating good health.
Final Answer:
{"status":"healthy"} -> Option A
Quick Check:
Healthy Jenkins = {"status":"healthy"} [OK]
Hint: Healthy status returns JSON with "status":"healthy" [OK]
Common Mistakes:
Confusing error codes with healthy output
Expecting plain text instead of JSON
Mixing unhealthy status with healthy
4. You run curl http://jenkins-server:8080/health but get a 404 error. What is the likely cause?
medium
A. The curl command syntax is wrong
B. The Jenkins server is down
C. The /health endpoint is not enabled or does not exist
D. Network firewall blocking port 8080
Solution
Step 1: Analyze 404 error meaning
A 404 error means the requested URL path does not exist on the server.
Step 2: Identify cause related to /health endpoint
If Jenkins is running but /health returns 404, the endpoint is likely disabled or missing.
Final Answer:
The /health endpoint is not enabled or does not exist -> Option C
Quick Check:
404 = missing endpoint [OK]
Hint: 404 means URL not found, check endpoint availability [OK]
Common Mistakes:
Assuming server is down on 404
Blaming curl syntax without error
Ignoring endpoint configuration
5. You want to set up automated alerts if Jenkins health becomes unhealthy. Which approach is best?
hard
A. Restart Jenkins server every hour to avoid issues
B. Use a monitoring plugin that polls /health and sends alerts on failure
C. Manually check Jenkins health URL daily in a browser
D. Disable Jenkins health checks to reduce load
Solution
Step 1: Understand automated alerting needs
Automated alerts require continuous monitoring and notification on problems.
Step 2: Choose best method for automation
A monitoring plugin that polls the /health endpoint and sends alerts fits this need perfectly.
Final Answer:
Use a monitoring plugin that polls /health and sends alerts on failure -> Option B
Quick Check:
Automate alerts with monitoring plugin [OK]
Hint: Automate alerts using plugins that check health endpoint [OK]
Common Mistakes:
Relying on manual checks only
Restarting server unnecessarily
Disabling health checks mistakenly
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.