nagios插件之監控tomcat線程數

jopen 10年前發布 | 43K 次閱讀 系統監控 Nagios

    #include <stdio.h>

#include <stdlib.h>  
#include <string.h>  

#define OK       0  
#define WARNING  1  
#define CRITICAL 2  
#define UNKNOWN  3  

#define LEN 1023  

#define CMD "ps -efL | grep tomcat  | wc -l"  

int exitstatus=OK;  
char *exit_status[4]={"OK","WARNING","CRITICAL","UNKNOWN"};  

char status_information[LEN];  
char performance_data[LEN];  

int parse_cmd() {  
        int ret;  
        FILE *fp;  
        char readbuf[1024];  

        int i;  
        char *p,*str;  

        fp=popen(CMD,"r");  
        if(fp==NULL) {  
                fprintf(stderr,"popen() error.\n");  
                return -1;  
        }  

       // while(fgets(readbuf,1024,fp)!=NULL) {  
        /* 
                for(p=strtok(readbuf," ");p;p=strtok(NULL," ")) { 
                //      str=p; 

                        sprintf(status_information,"active call=%s",p); 

                        sprintf(performance_data,"call=%s;;;;",p); 

                        break; 
                } 

                break; 
        */  

    //  readbuf[strlen(readbuf)-1]=0;  
        ret=fscanf(fp,"%s",readbuf);  
        if(ret!=1) {  
            fprintf(stderr,"fscanf() error.\n");  
        }  

        if(atoi(readbuf)<300) {  
            exitstatus=OK;    
        }  
        else if(atoi(readbuf)>=300 && atoi(readbuf)<=400) {  
            exitstatus=WARNING;   
        }  
        else if(atoi(readbuf)>=400) {  
            exitstatus=CRITICAL;  
        }  

                sprintf(status_information,"tomcat_threads=%s",readbuf);  

                sprintf(performance_data,"tomcat_threads=%s;;;;",readbuf);  
       // }  

        ret=pclose(fp);  
        if(fp==NULL) {  
                fprintf(stderr,"pclose() error.\n");  
                return -1;  
        }  
}  

int main() {  
        int ret;  

    ret=parse_cmd();  
    if(ret!=0) {  
        fprintf(stderr,"parse_cmd() error.\n");  
               // exitstatus=CRITICAL;  
               // printf("%s: - %s | %s\n",exit_status[exitstatus],status_information,performance_data);  
        exit(-1);  
    }  

        printf("%s: %s | %s\n",exit_status[exitstatus],status_information,performance_data);  

        return exitstatus;  
}  </pre><br />

來自:http://blog.csdn.net/ccjsj1/article/details/42653235

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!