• Spring Cloud
  • 为你的spring cloud微服务添加宕机邮件通知

    M马也 2年前 3865次点击 来自 Spring Cloud

    在恶劣线上环境中,我们最担心的是服务挂掉,每当这个时候,运维就想吃柠檬了,一些运维工具也可以实现这个功能,但是,既然用了spring cloud,就可以享受它带来的福利吧。 此功能基于spring boot admin这个监控工具,了解轻戳:http://blog.csdn.net/rickiyeat/article/details/73109328
    来看看它的guide reference怎么说的: http://codecentric.github.io/spring-boot-admin/1.4.6/#_notifications RemindingNotifier会在应用上线或宕掉的时候发送提醒,也就是把notifications发送给其他的notifier,notifier的实现很有意思,不深究了,从类关系可以知道,我们可以以这么几种方式发送notifications:Pagerduty、Hipchat 、Slack 、Mail、 Reminder

    1、添加pom依赖:
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
    2、在spring boot admin工程添加配置类:
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.scheduling.annotation.EnableScheduling;

    import com.netflix.governator.annotations.binding.Primary;

    import de.codecentric.boot.admin.notify.Notifier;
    import de.codecentric.boot.admin.notify.RemindingNotifier;

    /** * * @Title: 为监控的服务添加邮件通知 * @Package com.lovnx * @author yezhiyuan * @date 2017年6月14日 上午10:18:13 * @version V1.0 */

    @Configuration
    @EnableScheduling
    public class NotifierConfiguration {

    @Autowired
    private Notifier notifier;
    
    //服务上线或者下线都通知
    private String[] reminderStatuses = { "DOWN" };
    
    @Bean
    @Primary
    public RemindingNotifier remindingNotifier() {
        RemindingNotifier remindingNotifier = new RemindingNotifier(notifier);
        //设定时间,5分钟提醒一次
    

    // remindingNotifier.setReminderPeriod(TimeUnit.MINUTES.toMillis(5));
    //设定监控服务状态,状态改变为给定值的时候提醒
    remindingNotifier.setReminderStatuses(reminderStatuses);
    return remindingNotifier;
    }
    }
    3、配置文件添加接受者邮件地址:
    spring.mail.host=smtp.xxx.com
    spring.boot.admin.notify.mail.to=yezhiyuan@xxx.com
    4、由于spring boot admin是从eureka来读取服务信息的,所以我们要启动Eureka,再拿一个子服务来做测试,依次启动eureka、B2服务、spring boot admin:

    5、可以看到现在服务还很健康,现在我们关掉B2服务:

    6、查看邮箱:

    代码托管:https://github.com/Lovnx/micro-service

    目前暂无回复
    关于 广告投放
    ©2016 - 2019 V4.1.6 Powered by 北京雏森科技有限公司