<div dir="ltr">Hi Francois,<div><br><div>I´m collecting data using your script and I have installed both elasticsearch and kibana.</div><div>I´m not very familiar with kibana and elasticsearch yet.</div><div>Could you please help me to configure ELK and Kibana to read the xymond_capture_php.log? </div><div><br></div><div><br></div><div><br></div><div>Thanks & regards,</div><div>Mario </div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Dec 25, 2016 at 9:15 AM OUTTERYCK Francois <<a href="mailto:francois.outteryck@soprasteria.com" target="_blank">francois.outteryck@soprasteria.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>





<div lang="FR">
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">Hi Peter,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">Examples of task.cfg configuration with status and stachg events :<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">[capture_status]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">        ENVFILE /home/xymon/server/etc/xymonserver.cfg<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">       
</span><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">NEED xymond<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">        CMD xymond_channel --channel=status /home/xymon/server/ext/capture.sh --log=$XYMONSERVERLOGS/xymond_task_capture.log<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">        LOGFILE /var/log/xymon/lunch_capture.log<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">[capture_stachg]<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">        ENVFILE /home/xymon/server/etc/xymonserver.cfg<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">        NEED xymond<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">        CMD xymond_channel --channel=stachg /home/xymon/server/ext/capture.sh --log=$XYMONSERVERLOGS/xymond_task_capture_stachg.log<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">       
</span><span style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">LOGFILE /var/log/xymon/lunch_capture_stachg.log<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">Capture.sh script simple made to call a php script :<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">#!/bin/sh<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">/usr/bin/php /var/www/kibana/capture.php $@ </dev/stdin >>/var/log/xymon/xymond_capture_php.log 2>&1<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)">And capture.php make all job :<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)"><?php<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">date_default_timezone_set('Europe/Paris');<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">$TODO=FALSE;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">$ARRAY_COLLECTOR=array();<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">$COLLECTOR=null;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">while (FALSE !== ($line = fgets(STDIN))) if ($line!='') {<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     $tab=reduce_array($line);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     if (sizeof($tab)==0) continue;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     if ($line=="@@\n") {<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          if ($TODO) {<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                $metadata['Message']=implode('',$ARRAY_COLLECTOR);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                SendData($id,$metadata,$COLLECTOR);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                $TODO=FALSE;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                $COLLECTOR=null;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          }<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     } else if (substr($tab[0],0,8)=='@@stachg') {
<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          if ($TODO) {<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                $metadata['Message']=implode('',$ARRAY_COLLECTOR);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                SendData($id,$metadata,$COLLECTOR);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                $TODO=FALSE;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                $COLLECTOR=null;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          }<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          /*     0           1         2     3        4      5          6        7      8         9         10         11            12          13              
 14                15            16          <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          /* @@stachg#seq|timestamp|sender|origin|hostname|testname|expiretime|color|prevcolor|changetime|disabletime|disablemsg|downtimeactive|clienttstamp|modifiers
 */<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">               
<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          $COLLECTOR='stachg';<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          $metadata=explode('|',$tab[0]);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">         
</span><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">$sender=$metadata[2];<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          $hostname=$metadata[3];<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          $metadata=array(<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">               
</span><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">'Collector'=>$COLLECTOR,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'Sender'=>$metadata[2],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'ServerName'=>$metadata[4],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">               
</span><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">'Type'=>$metadata[5],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'Status'=>$metadata[7],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'PrevStatus'=>$metadata[8],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'LogTime'=>$metadata[1],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'ValidTime'=>$metadata[6],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'LastChange'=>$metadata[9],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'DisableTime'=>$metadata[10],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'DisableMSg'=>$metadata[11],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'Message'=>''<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          );<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          $id=$metadata['ServerName'].'_'.$metadata['Type'].'_'.$meta['LastChange'];<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">         
</span><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">$ARRAY_COLLECTOR=null;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">        $ARRAY_COLLECTOR=array();               
<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">        $TODO=TRUE;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     } else if (substr($tab[0],0,8)=='@@status') {
<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          if ($TODO) {<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                $metadata['Message']=implode('',$ARRAY_COLLECTOR);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                SendData($id,$metadata,$COLLECTOR);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                $TODO=FALSE;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                $COLLECTOR=null;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          }<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          /*     0       1         2     3        4      5          6        7      8         9         10         11            12          13               14               
 15            16          <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          /* @@status|timestamp|sender|origin|hostname|testname|expiretime|color|testflags|prevcolor|changetime|ackexpiretime|ackmessage|disableexpiretime|disablemessage|clientmsgtstamp|flapping
 */<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">         
</span><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">$COLLECTOR='status';<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          $metadata=explode('|',$tab[0]);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          $sender=$metadata[2];<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          $hostname=$metadata[3];<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">         
</span><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">$metadata=array(<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'Collector'=>$COLLECTOR,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'Sender'=>$metadata[2],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">               
</span><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">'ServerName'=>$metadata[4],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'Type'=>$metadata[5],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'Status'=>$metadata[7],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'LogTime'=>$metadata[1],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'ValidTime'=>$metadata[6],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'LastChange'=>$metadata[10],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'DisableTime'=>$metadata[13],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'AckTime'=>$metadata[11],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'DisableMSg'=>$metadata[14],<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                'Message'=>''<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          );<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          $id=$metadata['ServerName'].'.'.$metadata['Type'];<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">         
</span><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">$ARRAY_COLLECTOR=null;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">        $ARRAY_COLLECTOR=array();               
<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">        $TODO=TRUE;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     } else {<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          if (substr($tab[0],0,2)=='@@') {<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                if ($TODO) {<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                     $metadata['Message']=implode('',$ARRAY_COLLECTOR);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                     SendData($id,$metadata,$COLLECTOR);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                    $TODO=FALSE;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                     $COLLECTOR=null;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                }              
<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          }<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          if ($TODO) $ARRAY_COLLECTOR[]=$line;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     }<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">}<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">function CallAPI($method, $url, $data = false)<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">{<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">    $curl = curl_init();<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">    switch ($method)<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">    {<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">        case "POST":<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">            curl_setopt($curl, CURLOPT_POST, 1);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">            if ($data)<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">            break;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">        case "PUT":<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">            curl_setopt($curl, CURLOPT_PUT, 1);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">            break;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">        default:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">            if ($data)<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">                $url = sprintf("%s?%s", $url, http_build_query($data));<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">    }<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">    curl_setopt($curl, CURLOPT_URL, $url);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">    $result = curl_exec($curl);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">    curl_close($curl);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">    return $result;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">}<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">function reduce_array($line) {<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     $tab=explode(' ',$line);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     $nr=array();<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     for ($i=0;$i<sizeof($tab);$i++) if (trim($tab[$i])!='') $nr[]=trim($tab[$i]);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     return $nr;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">}<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">function SendData($id,$cc,$COLLECTOR=null) {<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     if ($COLLECTOR==null) return; 
<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     $d=new DateTime();<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     if ($cc['LastChange']!='') {$d->setTimestamp($cc['LastChange']);$cc['LastChange']=$d->format('c');} else {$cc['LastChange']='NaN';}<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     if ($cc['LogTime']!='') {$d->setTimestamp($cc['LogTime']);$cc['LogTime']=$d->format('c');} else {$cc['LogTime']='NaN';}<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     if ($cc['ValidTime']!='') {$d->setTimestamp($cc['ValidTime']);$cc['ValidTime']=$d->format('c');} else {$cc['ValidTime']='NaN';}<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     if (isset($cc['AckTime'])) {<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">          if ($cc['AckTime']!='') {$d->setTimestamp($cc['AckTime']);$cc['AckTime']=$d->format('c');} else {$cc['AckTime']='NaN';}<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     }<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     if ($cc['DisableTime']!='') {$d->setTimestamp($cc['DisableTime']);$cc['DisableTime']=$d->format('c'); } else {$cc['DisableTime']='NaN';}<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     $data = json_encode($cc);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     $data=str_replace('"NaN"','null',$data);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     echo $id.'=>'.$data."\n";<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     $url="<a href="http://127.0.0.1:9200/xymon/" target="_blank">http://127.0.0.1:9200/xymon/</a>".$COLLECTOR."/".$id;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">     $res=CallAPI("POST",$url,$data);<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">}<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:"Courier New";color:rgb(31,73,125)">?><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11pt;font-family:Calibri,"sans-serif";color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:10pt;font-family:Tahoma,"sans-serif"">De :</span></b><span style="font-size:10pt;font-family:Tahoma,"sans-serif""> Peter Welter [mailto:<a href="mailto:peter.welter@gmail.com" target="_blank">peter.welter@gmail.com</a>]
<br>
<b>Envoyé :</b> vendredi 23 décembre 2016 14:45<br>
<b>À :</b> OUTTERYCK Francois<br>
<b>Cc :</b> <a href="mailto:xymon@xymon.com" target="_blank">xymon@xymon.com</a><br>
<b>Objet :</b> Re: [Xymon] Capture and send data To Elasticsearch and Kibana<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Hi Francois,<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Looks good, your sample. I am very interested in your integration efforts.<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">How do you select what is going to be inserted in the ELK stack? All status messages that Xymon receives?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">And could you provide an example of the xymond_channel block in you task.cfg and the capture.sh?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Tasks.cfg probably is something like:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">[es]<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">...<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> CMD <span style="font-size:9.5pt">xymond_channel --channel=status /home/xymon/server/ext/capture.sh</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt">...</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">And the capture.sh contains some curl script to the ELK stack?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Regards,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Peter<u></u><u></u></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">2016-12-14 18:15 GMT+01:00 OUTTERYCK Francois <<a href="mailto:francois.outteryck@soprasteria.com" target="_blank">francois.outteryck@soprasteria.com</a>>:<u></u><u></u></p>
<div>
<div>
<p class="MsoNormal"><span lang="EN-US">Hello, I just do a small work with Xymon in order to send status data to Elasticsearch. And with Kibana reporting is easy.</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US">How it work ? Simple : With capture of status message (xymond_channel --channel=status /home/xymon/server/ext/capture.sh ) script encode  status message in json
 and send as document in elasticSearch.</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US">Example of Mapping document status in elasticsearch :</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US"> </span><u></u><u></u></p>
<p class="MsoNormal" style="margin-left:70.8pt;text-indent:35.4pt">
<span lang="EN-US" style="font-family:"Courier New"">"status"=> array(</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">                     "properties"=>array(</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">                          "ServerName"=> array("type"=> "string"),</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">                          "Type"=> array("type"=> "string"),</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">                          "Status"=> array("type"=> "string"),</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">                          "LastChange"=> array("type"=> "date","format"=> "strict_date_optional_time"),</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">                          "LogTime"=> array("type"=> "date","format"=> "strict_date_optional_time"),</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">                          "ValidTime"=> array("type"=> "date","format"=> "strict_date_optional_time"),</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">                          "AckTime"=> array("type"=> "date","format"=> "strict_date_optional_time"),</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">                          "DisableTime"=> array("type"=> "date","format"=> "strict_date_optional_time"),</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">                          "Sender"=> array("type"=> "string"),</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">                          "DisableMSg"=> array("type"=> "string"),</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">                          "Message"=> array("type"=> "string")</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">                     )</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Courier New"">                )</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US">All is done with a 130 lines script. So simple to integrate in existing environment and so powerfull usage of  Xymon/elasticsearch/Kibana</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US">For those who don’t know kibana :
<a href="https://www.elastic.co/products/kibana" target="_blank">https://www.elastic.co/products/kibana</a></span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US"> </span><u></u><u></u></p>
<p class="MsoNormal"><img border="0" width="824" height="426" id="m_2866662783988866964m_-7258288367742124631m_-9190422002950095895Image_x0020_1" src="cid:1837aa312984cff311"><u></u><u></u></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12pt"><br>
_______________________________________________<br>
Xymon mailing list<br>
<a href="mailto:Xymon@xymon.com" target="_blank">Xymon@xymon.com</a><br>
<a href="http://lists.xymon.com/mailman/listinfo/xymon" target="_blank">http://lists.xymon.com/mailman/listinfo/xymon</a><u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</div>

_______________________________________________<br>
Xymon mailing list<br>
<a href="mailto:Xymon@xymon.com" target="_blank">Xymon@xymon.com</a><br>
<a href="http://lists.xymon.com/mailman/listinfo/xymon" rel="noreferrer" target="_blank">http://lists.xymon.com/mailman/listinfo/xymon</a><br>
</div></blockquote></div>