nagios插件之登陆SBC监控电话数
运行:sbc_calls_status_new auto_ssh_sbc_10_17.sh | auto_ssh_sbc_11_17.sh
vi sbc_calls_status_new.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>#define OK 0
#define WARNING 1
#define CRITICAL 2
#define UNKNOWN 3#define LEN 1000
#define MIN_LEN 20#define SHORT_TIME 1 // unit of minute
#define LONG_TIME 10 // unit of minute//#define TCL_CMD "/home/weihu/tcl/"
#define TCL_CMD "/usr/local/nagios/libexec/"#define SBC_GG_SHORT_TIME_FILE "/usr/local/nagios/libexec/sbc_gg_call_short_time_file.tmp"
#define SBC_YZ_SHORT_TIME_FILE "/usr/local/nagios/libexec/sbc_yz_call_short_time_file.tmp"
//#define SBC_SHORT_TIME_FILE "/home/tssp/sbc/sbc_call_short_time_file.tmp"#define SBC_GG_LONG_TIME_FILE "/usr/local/nagios/libexec/sbc_gg_call_long_time_file.tmp"
#define SBC_YZ_LONG_TIME_FILE "/usr/local/nagios/libexec/sbc_yz_call_long_time_file.tmp"
//#define SBC_LONG_TIME_FILE "/home/tssp/sbc/sbc_call_long_time_file.tmp"int exitstatus=OK;
char *exit_status[4]={"OK","WARNING","CRITICAL","UNKNOWN"};char status_information[LEN];
char performance_data[LEN];//char sbc_gg_old_value[MIN_LEN]={0};
//char sbc_yz_old_value[MIN_LEN]={0};int read_time_file(int minute,char *file) {
int ret;
FILE *fp;
char *ch;
char readbuf[20]={0};int now_minute=0;
// fp=fopen(file,"a+");
fp=fopen(file,"r+");
if(fp==NULL) {
fprintf(stderr,"fopen() error.\n");
return -1;
}ch=fgets(readbuf,20,fp);
if(ch==NULL) {
fprintf(stderr,"fgets() error.\n");
// return -1;
}
printf("readbuf=%s\n",readbuf);now_minute=atoi(readbuf);
printf("now_minute=%d\n",now_minute);if(!strcmp(readbuf,"")) {
if(minute==SHORT_TIME) {
if(now_minute<SHORT_TIME-1) {
exitstatus=WARNING;
}
else if(now_minute>=SHORT_TIME-1) {
exitstatus=CRITICAL;
}
}
else if(minute==LONG_TIME) {
/* if(now_minute<LONG_TIME-1) {
exitstatus=WARNING;
}
else if(now_minute>=LONG_TIME-1) {
*/
if(now_minute>=LONG_TIME-1) {
exitstatus=CRITICAL;
}
}fprintf(fp,"%s","1");
printf("file is null,value=1\n");
}
else {
if(minute==SHORT_TIME) {
if(now_minute<SHORT_TIME-1) {
exitstatus=WARNING;ret=fseek(fp,0,SEEK_SET);
fprintf(fp,"%d",++now_minute);/*
fclose(fp);fp=fopen(file,"w+");
fprintf(fp,"%d",now_minute++);
*/
}
else if(now_minute>=SHORT_TIME-1) {
exitstatus=CRITICAL;ret=fseek(fp,0,SEEK_SET);
fprintf(fp,"%d",++now_minute);
}
}
else if(minute==LONG_TIME) {
if(now_minute<LONG_TIME-1) {
// exitstatus=WARNING;
exitstatus=OK;ret=fseek(fp,0,SEEK_SET);
fprintf(fp,"%d",++now_minute);
}
else if(now_minute>=LONG_TIME-1) {
// if(now_minute>=LONG_TIME-1) {
exitstatus=CRITICAL;ret=fseek(fp,0,SEEK_SET);
fprintf(fp,"%d",++now_minute);
}
}
}ret=fclose(fp);
if(ret!=0) {
fprintf(stderr,"fclose() error.\n");
return -1;
}return 0;
}int parse_cmd(char *sh_cmd,char *active_count,char *high_count,char *total_count) {
int ret;
FILE *fp;char tmpbuf[LEN];
char readbuf[LEN];char *p,*str;
int i=0;
int line=0;
int mark1=0;
int mark2=0;// fp=popen("/home/neo/check_log/tcl/auto_ssh.sh","r");
fp=popen(sh_cmd,"r");
if(fp==NULL) {
fprintf(stderr,"popen() error. ");
exitstatus=CRITICAL;
printf("%s: - %s | %s\n",exit_status[exitstatus],status_information,performance_data);
exit(exitstatus);
}while(fgets(readbuf,LEN,fp)!=NULL) {
// line++;
if(strstr(readbuf,"SIP Sessions")) {
memset(tmpbuf,0,LEN);
strcpy(tmpbuf,readbuf);
// printf("%s",tmpbuf);for(p=strtok(tmpbuf," ");p;p=strtok(NULL," "),i++) {
if(i==2) {
// printf("%s\n",p);
strcpy(active_count,p);
}
if(i==3) {
// printf("%s\n",p);
strcpy(high_count,p);
}
if(i==4) {
// printf("%s\n",p);
strcpy(total_count,p);
break;
}
}
}if(i==4) {
break;
}
/*
line++;
// printf("line=%d,readbuf=%s",line,readbuf);if(line==3) {
for(p=strtok(readbuf," ");p;p=strtok(NULL," ")) {
// str=p;//Sun
mark1++;if(mark1==2) {
// printf("p=%s\n",p);strcpy(active_status,p);
// printf("active_status=%s\n",active_status);
}
}
}if(line==4) {
for(p=strtok(readbuf," ");p;p=strtok(NULL," /")) {
mark2++;if(mark2==2) {
// printf("p=%s\n",p);strcpy(active_ip_addr,p);
// printf("active_ip_addr=%s\n",active_ip_addr);
}
}break;
}
*/
}
nagios插件之登陆SBC监控电话数的更多相关文章
- nagios插件之登陆防火墙实现session监控
ssh_firewall_session.sh -- 登陆防火墙并运行dis session statistics firewall_check_sessions.c -- 调用上面脚本.过滤出ses ...
- Nagios配置—添加linux主机监控
nagios安装请参看:Nginx平台安装Nagios监控服务 下面是我添加linux监控机的过程,如有错误或者不当的地方请指出: 测试环境: 监控主机:nagios+nagios插件+nrpe+网站 ...
- 使用nagios插件 check_mysql_health 过程中遇到的error
使用nagios插件 check_mysql_health 过程中遇到的error 1.如果在运行监控mysql插件的时候遇到了error安装以下依赖包就可以解决: yum install perl- ...
- Eclipse下使用GDT插件无法登陆GAE & GDT无法上传JAVA代码
今天更新github主页的过程中,想使用GAE部署一个Java Web服务来更好的支持网站动态性(关键是利用了免费的GAE资源),结果遇到了2个大问题. 1.GDT插件无法登陆GAE账户 错误1:登陆 ...
- 开发人员福利!ChromeSnifferPlus 插件正式登陆 Chrome Web Store
今天(2014-10-30)下午,ChromeSnifferPlus 插件正式登陆 Chrome Web Store. 在线安装地址: https://chrome.google.com/websto ...
- jmeter使用笔记——脚本录制,JMeter使用plugins插件进行服务器性能监控
脚本录制: 1.badboy录制 2.代理服务器录制 ①工作台添加HTTP代理服务器 ②设置目标控制器,分组,排除模式,包含模式(使用正则表达式筛选) ③设置浏览器,手动设置代理服务器,localho ...
- nagios 插件ndoutils 安装配置
nagios 插件ndoutils 安装配置 原文地址:http://www.cnblogs.com/caoguo/p/5022645.html # Nagios install ndoutils # ...
- nagios插件nagiosql安装配置
nagios插件nagiosql安装配置 # Nagiosql install [root@Cagios ~]# yum install -y libssh2 libssh-devel [root@C ...
- JMeter使用plugins插件进行服务器性能监控
JMeter使用plugins插件进行服务器性能监控 性能测试时,我们的关注点有两部分 1 服务本身:并发响应时间 QPS 2 服务器的资源使用情况:cpu memory I/O disk等 JMet ...
随机推荐
- 老男孩全栈python学习进程表
老男孩Python高级全栈开发工程师-1 0001.开学典礼_ALEX简介 00:55:53 ☆ 0002.职业生涯_来培训的目的 01:12:29 ☆ 0003.课程目标 00:29: ...
- 项目记事【多线程】:关于 SimpledDateFormat 的多线程问题
背景: 最近项目引入了 SonarLink,解决代码规范的问题,在检查历史代码的时候,发现了一个问题. 先看代码: public class DateUtil { private static fin ...
- 性能学习之六---socket接口测试
socket协议较底层,所以是一个万能协议.socket发的是数据包,所以较难看懂. 下面我们来讲解socket接口测试. 大致思路为:新建sever端和client端---建立连接---发送数据 一 ...
- kb-07线段树-03--区间修改查询--lazy思想
/* 区间修改,区间查询和: 第一次使用lazy思想: poj3468 */ #include<iostream> #include<cstdio> #include<c ...
- [USACO Section 2.3] Cow Pedigrees (动态规划)
题目链接 Solution 我DP太菜啦... 考虑到一棵二叉树是由根节点以及左儿子和右儿子构成. 所以答案其实就是 左儿子方案数*右儿子方案数 . 状态定义: \(f[i][j]\) 代表深度为 \ ...
- iOS-ASIHTTPRequest缓存机制
第三方网络请求库 * 我们在对网络请求的时候,可以使用系统为我们提供的NSURLRequest和NSURLConnection,它基本能实现我们的基本功能. * 但是有时我们使用第三方封装的库,可以轻 ...
- springboot获取getBean方法以及ApplicationContext空指针问题解决
创建获取ApplicationContext工具类: package com.performancetest.common.utils; import org.springframework.bean ...
- 【前端学习笔记】2015-09-02 附~~~~~ajax简单请求和获得响应结果
首先得创建一个请求XMLHttpRequest对象,var xmlhttp=window.XMLHttpRequest?new XMLHttpRequest() : new ActiveXObjec ...
- 【CF713C】Sonya and Problem Wihtout a Legend(离散化,DP)
题意:给你一个数列,对于每个数字你都可以++或者−− 然后花费就是你修改后和原数字的差值,然后问你修改成一个严格递增的,最小花费 思路:很久以前做过一道一模一样的 严格递增很难处理,就转化为非严格递增 ...
- IPC 通信接口函数的名字
IPC三种通信机制是指:信号量.共享内存.消息队列 ,管道和命名管道,socket套接字 信号量:通过操作系统中的PV操作来实现: 共享内存:申请一块内存,进程A往共享内存中写,其他的进程就 ...