You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PRTG监控Rundeck作业状态?

用PRTG自定义传感器监控Rundeck作业状态

前置准备

  • 在Rundeck服务器上生成API令牌:登录Rundeck,进入用户设置页面,创建一个具备作业读取权限的API令牌并妥善保存。
  • 确保PRTG所在Windows服务器能访问Rundeck的API端口(默认4440,自定义端口需同步调整)。

自定义PowerShell传感器脚本(单作业监控)

将以下脚本保存为RundeckJobMonitor.ps1,放到PRTG服务器的C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML目录下:

param(
    [string]$RundeckUrl = "http://your-rundeck-ip:4440",
    [string]$ApiToken = "your-api-token",
    [string]$JobId = "your-job-uuid"
)

$apiEndpoint = "$RundeckUrl/api/40/job/$JobId/executions?max=1"
$headers = @{
    "X-Rundeck-Auth-Token" = $ApiToken
    "Accept" = "application/json"
}

try {
    $response = Invoke-RestMethod -Uri $apiEndpoint -Headers $headers -Method Get -ErrorAction Stop
    $latestExecution = $response.executions[0]

    $executionStatus = $latestExecution.status
    $startTime = $latestExecution.dateStarted
    $endTime = $latestExecution.dateEnded
    $durationMs = ([datetime]$endTime - [datetime]$startTime).TotalMilliseconds

    # 输出PRTG兼容的XML格式
    Write-Host "<prtg>"
    Write-Host "  <result>"
    Write-Host "    <channel>作业状态</channel>"
    Write-Host "    <value>$($executionStatus -eq 'succeeded' ? 1 : 0)</value>"
    Write-Host "    <unit>Custom</unit>"
    Write-Host "    <ValueLookup>prtg.standardlookups.state.okerror</ValueLookup>"
    Write-Host "  </result>"
    Write-Host "  <result>"
    Write-Host "    <channel>执行时长(毫秒)</channel>"
    Write-Host "    <value>$durationMs</value>"
    Write-Host "    <unit>TimeMilliseconds</unit>"
    Write-Host "  </result>"
    Write-Host "  <text>最新状态: $executionStatus | 开始时间: $startTime | 结束时间: $endTime</text>"
    Write-Host "</prtg>"
}
catch {
    Write-Host "<prtg>"
    Write-Host "  <error>1</error>"
    Write-Host "  <text>API调用失败: $($_.Exception.Message)</text>"
    Write-Host "</prtg>"
}

脚本参数说明

  • RundeckUrl:你的Rundeck服务器地址(含端口),例如http://192.168.1.100:4440
  • ApiToken:你在Rundeck生成的API令牌
  • JobId:目标作业的UUID(可在Rundeck作业页面的「作业选项」中查看)

PRTG中添加自定义传感器

  1. 在PRTG控制台中找到已添加的Rundeck设备,右键选择「添加传感器」
  2. 选择「EXE/Script Advanced」传感器类型
  3. 在「EXE/Script」下拉菜单中选择RundeckJobMonitor.ps1
  4. 在「Parameters」栏填写参数,格式为:-RundeckUrl "http://x.x.x.x:4440" -ApiToken "your-token" -JobId "job-uuid"
  5. 配置告警阈值:在传感器设置的「Channels」选项中,给「作业状态」通道设置阈值,当值为0(失败/超时)时触发告警

批量监控多个作业的思路

如果需要监控多个Rundeck作业,可以修改脚本接受多个JobId参数,或者借助PRTG的自动发现功能:

  1. 编写PowerShell脚本调用Rundeck API获取所有作业列表(接口/api/40/jobs)
  2. 将作业列表格式化为PRTG自动发现兼容的XML
  3. 创建自动发现模板,批量生成每个作业的监控传感器

内容的提问来源于stack exchange,提问作者aristosv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 18:32:13