nagios msn 飞信PHP类API 报警

简介:
      昨天晚上下班没有收到nagios发来的短信,回到家里登陆服务器发送测试短信,sms 没有报错,也没有返回OK,很奇怪,然后在网上搜索也没有搜索到什么,无意中看到CSDN上有 飞信官方的PHP类提供下载,赶快下载下来看了下,不错,比那些提供PHP API 的要好的多吧,因为用别人的免费API的话,你的手机号和密码不怕被别人利用吗?可都是明文哦?废话不多说了看我是如何设置的吧,我也顺便把MSN报警也贴上。
 
 
MSN报警
1. 下载php类
2. 解压文件放到 /var/www 下 apache 访问目录
3. 修改 simple.php
<?php
error_reporting(E_ALL);
include('sendMsg.php');
$fh = file_get_contents('/usr/local/nagios/msnservice.out');   ###报警打印信息文件
$sendMsg = new sendMsg();
$sendMsg->simpleSend('eric@edgora.com', 'password', 'yangzi2008@126.com',$fh);
echo $sendMsg->result.'fffff '.$sendMsg->error;
?>
4. 创建报警打印信息文件
shell $> cd /usr/local/nagios/
shell $> vim msnservice.out
测试
shell $> chown nagios.nagios msnservice.out
5.发送测试信息
shell $> wget -qO-  http://localhost/simple.php
MSN 收到信息
飞信php报警
1. 下载php类
2. 解压到 /var/www   apache 访问目录
3. 创建 发信 PHP 文件
shell $> cd /var/www
shell $> vim send.php
<?php
require_once('class.fetion.php');//上面的那些代码
$fh = file_get_contents('/usr/local/nagios/smservice.out');    //报警打印信息
$tophone=trim($_GET['re']);   
$message=trim($fh);
$sms = new Fetion;
$sms->phone_num = trim('13611031***');//$_CFG['sms_shop_mobile']
$sms->password = trim('password');//$_CFG['sms_fetion_password']
$sms->sip_login();
$sms->sendSMS_toPhone($tophone,$message);//$_CFG['sms_shop_mobile']
$sms->sip_logout();
?>
4. 创建临时报警打印信息文件
shell $> cd /usr/local/nagios/
shell $> vim smservice.out
测试 测试 测试
shell $>chown nagios.nagios smservice.out    ### 一会就不用在改权限了,因为这个文件是nagios来操作的
5. 发短信测试
wget -qO-  http://localhost/send.php?re= 13611031***
 
 
整合到nagios下
1. 创建  MSN 脚本 与 SMS脚本
shell $>cd /usr/local/nagios/libexec
shell $>vim msn.sh
#!/bin/bash
Vim sms.sh
#!/bin/bash
re=13611031238    ##接收人电话号码,必须是你的好友
wget -qO- http://localhost/send.php?re=$re >> /dev/null
2. 修改nagios command.cfg 配置文件
shell $> cd /usr/local/nagios/etc/objects
shell $> vim command.cfg
##添加如下
# 'notify-host-by-msn' command definition
define command{
        command_name    notify-host-by-msn
        command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" > /usr/local/nagios/msnservice.out | $USER1$/msn.sh
        }
# 'notify-service-by-msn' command definition
define command{
        command_name    notify-service-by-msn
        command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" > /usr/local/nagios/msnservice.out | $USER1$/msn.sh
        }
#### notify-host-sms ####
define command {
       command_name     notify-host-sms
       command_line     /usr/bin/printf "%s" "Host $HOSTSTATE$ alert for $HOSTNAME$ on $DATETIME$  $CONTACTPAGER$" > /usr/local/nagios/smservice.out | $USER1$/sms.sh
}
###### notify-service-sms ######
define command {
       command_name     notify-service-sms
       command_line     /usr/bin/printf "%s" "$HOSTADDRESS$ $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ $CONTACTPAGER$" > /usr/local/nagios/smservice.out | $USER1$/sms.sh
}
3. 修改  contacts.cfg 如果用的是 templates.cfg 模版的话就修改 templates.cfg
define contact{
        name                            generic-contact         
        service_notification_period     24x7                    
        host_notification_period        24x7                    
        service_notification_options    w,u,c,r,f,s             
        host_notification_options       d,u,r,f,s               
        service_notification_commands   notify-service-by-email,notify-service-by-msn,notify-service-sms        
        host_notification_commands      notify-host-by-email,notify-host-by-msn,notify-host-sms
        register                        0                      
### 这样就可以 三重保险了~~呵呵~~
 
我也顺便 把我的 PHP 文件都上传上来大家下载自己看看吧。
 
最后 谢谢 我公司同事,帮我看了一下PHP,我PHP有点菜~~~呵呵。


本文转自Deidara 51CTO博客,原文链接:http://blog.51cto.com/deidara/159290,如需转载请自行联系原作者
 
相关文章
|
9天前
|
API PHP
2025宝塔API一键建站系统PHP源码
2025宝塔API一键建站系统PHP源码
119 88
|
5月前
|
API 索引
String类下常用API
String类下常用API
56 1
|
29天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
5月前
|
安全 Java API
告别繁琐编码,拥抱Java 8新特性:Stream API与Optional类助你高效编程,成就卓越开发者!
【8月更文挑战第29天】Java 8为开发者引入了多项新特性,其中Stream API和Optional类尤其值得关注。Stream API对集合操作进行了高级抽象,支持声明式的数据处理,避免了显式循环代码的编写;而Optional类则作为非空值的容器,有效减少了空指针异常的风险。通过几个实战示例,我们展示了如何利用Stream API进行过滤与转换操作,以及如何借助Optional类安全地处理可能为null的数据,从而使代码更加简洁和健壮。
156 0
|
2月前
|
JSON 数据挖掘 API
如何使用PHP开发1688商品详情API接口
本文详细介绍了如何使用PHP开发1688商品详情API接口,涵盖从注册账号、申请权限、配置环境到代码实现的全过程。通过设置请求头、参数及生成签名,利用cURL或GuzzleHttp库发送请求并处理响应,最终实现商品详情数据的获取与应用,助力电商发展。
41 1
|
2月前
|
API PHP 数据库
PHP中哪个框架最适合做API?
在数字化时代,API作为软件应用间通信的桥梁至关重要。本文探讨了PHP中适合API开发的主流框架,包括Laravel、Symfony、Lumen、Slim、Yii和Phalcon,分析了它们的特点和优势,帮助开发者选择合适的框架,提高开发效率、保证接口稳定性和安全性。
98 3
|
2月前
|
XML JSON API
【PHP开发专栏】PHP RESTful API设计与开发
随着互联网技术的发展,前后端分离成为Web开发的主流模式。本文介绍RESTful API的基本概念、设计原则及在PHP中的实现方法。RESTful API是一种轻量级、无状态的接口设计风格,通过HTTP方法(GET、POST、PUT、DELETE)操作资源,使用JSON或XML格式传输数据。在PHP中,通过定义路由、创建控制器、处理HTTP请求和响应等步骤实现RESTful API,并强调了安全性的重要性。
46 2
|
2月前
|
JSON API PHP
如何使用PHP开发API接口?
本文详细介绍了如何使用PHP开发API接口,涵盖从基础概念到实战步骤的全过程。首先解释了API接口的基本原理,包括HTTP协议、REST架构风格、JSON格式和OAuth认证机制。接着介绍了开发环境的设置,包括PHP安装、Web服务器配置、数据库设置等。文章还探讨了API开发的完整流程,从需求确定、框架选择、端点设计到代码编写、测试、安全性考量及性能优化。最后通过一个实战案例演示了如何创建一个简单的API端点,并讨论了部署与监控的方法。
146 0
|
3月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP开发领域,设计模式是解决常见问题的高效方案集合。它们不是具体的代码,而是一种编码和设计经验的总结。单例模式作为设计模式中的一种,确保了一个类仅有一个实例,并提供一个全局访问点。本文将深入探讨单例模式的基本概念、实现方式及其在PHP中的应用。
单例模式在PHP中的应用广泛,尤其在处理数据库连接、日志记录等场景时,能显著提高资源利用率和执行效率。本文从单例模式的定义出发,详细解释了其在PHP中的不同实现方法,并探讨了使用单例模式的优势与注意事项。通过对示例代码的分析,读者将能够理解如何在PHP项目中有效应用单例模式。
|
4月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
62 2