我正在使用check_http插件来发现jenkins服务(Winstone托管和Apache托管)是否正在check_mk_agent安装的主机上运行。并且使用以下命令在作为nagios GUI的单个ui上对其进行了监视。
check_http
check_mk_agent
./check_http -H Host_Name -u /api/xml?depth=0 -p 8080
下一步是使用解析特定jenkins主服务器上的作业,jenkins REST api并在中监视每个作业的运行状况nagios GUI。
jenkins REST api
nagios GUI
有人可以给我任何想法,以便我可以在单个GUI上监视jenkins作业。任何脚本或插件非常感谢。
#!/usr/bin/perl use strict; use warnings; use LWP::UserAgent; use XML::Twig; use HTTP::Request; use Getopt::Long; use Nagios::Plugin; #use File::stat; use File::Basename; my $PROGNAME = basename($0); my $p = Nagios::Plugin->new( usage => "Usage: %s [ -H|--host ] [ -p|--port ]", extra => " Examples: $PROGNAME --host myhost -port 8080 Check Host name and port. "); $p->add_arg( spec => 'host|f=s', required => 1, help => "-H, --host=Hostname. REQUIRED."); $p->add_arg( spec => 'port|a=i', default => 8080, help => "-p, --port=Portnumber. Default 8080."); $p->getopts; my $o_host = $p->opts->host ; my $o_port = $p->opts->port; my $protocol = 'http'; my $o_url = '/api/xml'; my @jobs; my $url = $protocol . "://" . $o_host . ":" . $o_port . $o_url ; #print $url,"\n"; my $ua = LWP::UserAgent->new; $ua->timeout(10); $ua->env_proxy; my $response = $ua->get($url); if ($response->is_success) { my $content = $response->decoded_content; # or whatever XML::Twig->new( twig_roots => { 'job/name' => sub { push @jobs, $_->text; } }) ->parseurl( $url); } else { $p->nagios_die( CRITICAL, "Bad page found" ); } #print @jobs; foreach my $job_name (@jobs) { #print $job_name; my $job_url = $protocol . "://" . $o_host . ":" . $o_port . "/" . "job" . "/" . $job_name . $o_url ; #print $job_url; my $response2 = $ua->get($job_url); #print $job_url; if ($response2->is_success) { $p->nagios_die( OK, "Job link valid" ); } else { $p->nagios_die( CRITICAL, "Bad page found" ); } }