vigil 是一个不错的系统可用性报告系统,具有还不错的ui 界面,同时也有通知配置,以下是一个简单的
demo 使用状态文件,以及http body 匹配的模式进行web 应用状态的监控,只是简单的demo,状态的
会写可能是其他任务操作的,这个只是演示一种可行的方法

环境准备

  • docker-compose 文件
version: "3"
services:
app:
image: valeriansaliou/vigil:v1.9.0
volumes:
- "./config.cfg:/etc/vigil.cfg"
ports:
- "9090:9090"
web:
image: openresty/openresty:alpine-fat
volumes:
- "./nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf"
- "./53c2e115-da65-47fd-8e6c-13bb95d3f2c6:/opt/53c2e115-da65-47fd-8e6c-13bb95d3f2c6"
ports:
- "8080:8080"
  • config.cfg 配置
    使用基于http body 匹配的模式,进行状态检测
# Vigil
# Microservices Status Page
# Configuration file
# Example: https://github.com/valeriansaliou/vigil/blob/master/config.cfg [server] log_level = "error"
inet = "0.0.0.0:9090"
workers = 4
reporter_token = "appkey" [assets] path = "./res/assets/" [branding] page_title = "服务监控状态"
page_url = "https://www.badi.com/"
company_name = "demo"
icon_color = "#3C82E7"
icon_url = "https://help.sonatype.com/repomanager3/_/7F0000010161B31F409A4915783C449A/1555428150908/assets/img/SON_logo_main_small@2x.png"
logo_color = "#3C82E7"
logo_url = "https://help.sonatype.com/repomanager3/_/7F0000010161B31F409A4915783C449A/1555428150908/assets/img/SON_logo_main_small@2x.png"
website_url = "https://www.badi.com"
support_url = "mailto:1141591465@qq.com"
custom_html = "" [metrics] poll_interval = 20
poll_retry = 2 poll_http_status_healthy_above = 200
poll_http_status_healthy_below = 400 poll_delay_dead = 20
poll_delay_sick = 10 push_delay_dead = 20 push_system_cpu_sick_above = 0.90
push_system_ram_sick_above = 0.90 [notify]
reminder_interval = 300 [notify.email] from = "notify-email@email.com"
to = "to email user"
smtp_host = "smtp server"
smtp_port = 587
smtp_username = "emailaccount"
smtp_password = "accountpassword"
smtp_encrypt = true [probe] [[probe.service]] id = "nginx_web"
label = "nginx_web" [[probe.service.node]] id = "nginx_web"
label = "nginx_web"
mode = "poll"
replicas = ["http://web:8080/53c2e115-da65-47fd-8e6c-13bb95d3f2c6"]
http_body_healthy_match ="ok"

原理说明

检测任务回写状态信息到53c2e115-da65-47fd-8e6c-13bb95d3f2c6 文件,vigil 通过http_body_healthy_match 进行
状体识别,是了方便nginx 使用了精准匹配

  • nginx 配置文件
worker_processes 1;
user root;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
gzip_min_length 2k;
gzip_buffers 4 16k;
gzip_comp_level 4;
gzip_types text/plain text/css image/png application/javascript image/jpeg image/gif;
server {
listen 8080;
## 修改为实际的主机信息
server_name localhost;
charset utf-8;
default_type text/html;
root html;
location / {
index index.html index.htm;
}
location =/53c2e115-da65-47fd-8e6c-13bb95d3f2c6 {
root /opt;
default_type text/plain;
}
}
}

启动&&测试

  • 启动
docker-compose up -d
  • 效果

    修改状态文件,模式故障
    修改53c2e115-da65-47fd-8e6c-13bb95d3f2c6 内容为error

说明

这个简单demo 只是演示一种可行的基于http body 匹配以及状态文件检测的方法进行系统监控的方法,实际还需要自己编写一个状体
检查的脚本

参考资料

https://crates.io/crates/vigil-server
https://github.com/rongfengliang/vigil-http-body-match-probe-demo

 
 
 
 

最新文章

  1. eclipse 版本号
  2. MySQL创建数据库[保存mojo格式的数据库]已经常用的utf8格式数据库
  3. JAVA接口示例
  4. Android中多表的SQLite数据库(译)
  5. document.body is null
  6. java 中有几种方法可以实现一个线程? 用什么关键字修 饰同步方法? stop()和 suspend()方法为何不推荐使用?
  7. Oracle SQL操作计划基线总结(SQL Plan Baseline)
  8. shell-改变分隔符
  9. 升级到appcompat v7 21.0.2之后遇到的问题解决方法
  10. func_get_args  获取一个函数的所有参数
  11. 【JVM虚拟机】(2)---GC 算法与种类
  12. 微信小程序flex佈局
  13. ABP Quartz 作业调度第三篇
  14. PDO中的预处理
  15. 【驱动】linux下I2C驱动架构全面分析
  16. 【html】优酷视频去广告代码
  17. 【转】.net core 一次坑爹的类库打包过程
  18. java学习第02天(语言基础组成:关键字、标识符、注释、常量和变量)
  19. [COGS 0407][NOIP 2009] 靶形数独
  20. python全栈开发-前方高能-内置函数2

热门文章

  1. CI中如何配置BootStrap
  2. nginx1.14.0版本location路径,多级文件目录配置,root与alias的配置区别
  3. The Day Two 找到一个具有最大和的连续子数组,返回其最大和
  4. 前端开发 Angular
  5. vue watch 的简单使用
  6. elementUI——主题定制
  7. Spring Cloud原理详解
  8. web项目中添加定时任务
  9. PLC编程的基础知识的总结
  10. CentOS 7.x 配置静态 IP 并启用