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

 
 
 
 

使用状态文件+vigil 监控系统状态的更多相关文章

  1. sar监控系统状态

    sar 命令很强大,它可以监控系统所有资源状态,比如平均负载.网卡流量.磁盘状态.内存使用等等. 它不同于其他系统状态监控工具的地方在于,它可以打印历史信息,可以显示当天从零点开始到当前时刻的系统状态 ...

  2. 使用haproxy 2.0 prometheus metrics 监控系统状态

    haproxy 2.0 已经发布一段时间了,提供内部直接暴露的prometheus metrics 很方便 ,可以快速的监控系统的状态 以下是一个简单的demo 环境准备 docker-compose ...

  3. Linux watch 监控系统状态

    1.linux下watch命令的基本用法 # watch --helpUsage: watch [-dhntv] [--differences[=cumulative]] [--help] [--in ...

  4. Linux atop 监控系统状态

    atop是一个功能非常强大的linux服务器监控工具,它的数据采集主要包括:CPU.内存.磁盘.网络.进程等,并且内容非常的详细,特别是当那一部分存在压力它会以特殊的颜色进行展示,如果颜色是红色那么说 ...

  5. linux系统常用监控系统状态信息命令

    [root@bogon ~]# uptime #平均负载 23:33:21 up 2:09, 3 users, load average: 0.02, 0.05, 0.05 [root@bogon ~ ...

  6. Linux 笔记 - 第十三章 Linux 系统日常管理之(一)系统状态监控

    博客地址:http://www.moonxy.com 一.前言 如果你是一名 Linux 运维人员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行.系统运行状态主要包括:系统负载.内存状态 ...

  7. Linux 常用命令:系统状态篇

    前言 Linux常用命令中,有些命令可以用于查看系统的状态,通过了解系统当前的状态,能够帮助我们更好地维护系统或定位问题.本文就简单介绍一下这些命令. 1. 查看系统运行时间--uptime 有时候我 ...

  8. 【第十三课】监控Linux系统状态

    目录 1.查看系统负载命令:w.uptime 2.vmstat详解 3.top动态查看负载 4.sar命令(监控网卡流量) 5.nload命令(监控网卡流量) 6.iostat iotop(监控IO性 ...

  9. Centos-实时监控系统处理器状态-top

    top 实时监控处理器状态的实时监控,能够显示系统中各个进程的资源占用状况 相关选项 -d 指定每两次屏幕信息刷新之间间隔秒数 -i  不显示闲置或者僵死进程信息 -c 显示进程整个命令路径 -s 安 ...

随机推荐

  1. Codeforces 1207 G. Indie Album

    Codeforces 1207 G. Indie Album 解题思路 离线下来用SAM或者AC自动机就是一个单点加子树求和,套个树状数组就好了,因为这个题广义SAM不能存在 \(len[u] = l ...

  2. enum的应用及flags特性

    enum的作用不做描述,这是C#的基础 设置enum 很简单,本文不做讨论. 但是enum设置值有种特殊方式,如 enum en { a=, b=, c=, d=, e=, …… } 你会发现这个枚举 ...

  3. [jsp学习笔记]servelt get post

    1.post提交数据是隐式的,get是通过在url里面传递的(可以看一下你浏览器的地址栏),用来传递一些不需要保密的数据. 2.用get时,传输数据的大小有限制 (注意不是参数的个数有限制),为2K: ...

  4. Mybatis基于xml的动态sql实现

    动态sql可以很方便的拼接sql语句,主要用于复合条件查询: 主要通过这几个标签实现: if 标签: where 标签 choose标签: foreach标签: if 标签: <select i ...

  5. Django:web认识,jinja2模块,如何安装Django

    一内容概要 1.HTTP协议 1.1简介 ​ 超文本传输协议(英文:Hyper Text Transfer Protocol,HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是 ...

  6. angular异步获取数据后在ngOnInit中无法获取,显示undefined解决办法

    两种方法 1 通过*ngif动态加载要数据渲染的dom 2 通过路由导航resolve 第一种感觉太麻烦了,要是一个页面请求多个接口,那就不得不写多个*ngif,本人还是更倾向与第二种发法 具体步骤: ...

  7. [SOLVED] “Error 1067: The process terminated unexpectedly” on Windows 10, 7 & 8

    Windows background services enable Windows features function properly. If some errors happen to serv ...

  8. mac环境下Android 反编译

    连接地址: https://www.jianshu.com/p/3a305f32c4a3

  9. SAP Marketing Cloud功能简述(四) : 线索和客户管理

    这个系列的前三篇文章Grace Dong已经给大家带来了下面的内容: SAP Marketing Cloud功能简述(一) : Contacts和Profiles SAP Marketing Clou ...

  10. linux下载并安装redis

    1 到http://redis.io/download 官网下下载最新稳定的redis 2 下载的redis安装包移动到要安装的位置 3 解压安装包 tar zxvf redis-3.0.5.tar. ...