用 Webhook+Python+Shell 编写一套 Unix 类系统监控工具


本文来自作者  Alinx  GitChat 上分享 「用 Webhook+Python+Shell 编写一套 Unix 类系统监控工具」

前言

告警系统是对系统监控必须掌握的技能、不管是用 zabbix、cacti 等监控平台还是其他的监控工具,都需要有一个实时的监控与反馈机制,能让问题、故障实时的通知到工程师的手里,及时得到解决,以最大化的保障业务的正常。

本次编写部署监控是为了更好的学习、经验的总结、也希望能给给位带来一点帮助,在大家刚好需要的时候,这篇文章能帮助你解决你所需要的。

一、shell 原理认识1. shell 介绍

Shell(计算机壳层),在计算机科学中,shell 俗称壳,是提供使用者使用界面的软件(命令解析器)。它类似于 DOS 下的 command.com 和后来的 cmd.exe。它接收用户命令,然后调用相应的应用程序。

同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令,或者自动地解释和执行预先设定好的一连串的命令;

作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

基本上 shell 分两大类:

  • 图形界面 shell(Graphical User Interface shell 即 GUI shell)

  • 命令行式 shell(Command Line Interface shell 即 CLI shell)

  • 2. shell 的类型

    在 UNIX 中主要有:

  • Bourne shell ( sh)

  • Korn shell ( ksh)

  • Bourne Again shell ( bash)

  • POSIX shell ( sh)

  • C shell (包括 csh and tcsh)

  • C shell ( csh)

  • TENEX/TOPS C shell ( tcsh)

  • ……

  • 3. shell 原理

    在 Unix 类系统之中,一个可执行的程序是一个机器指令及其数据的序列,一个进程是程序运行时的内存空间和设置。

    Unix 系统中的内存分为系统空间和用户空间,进程存在于用户空间,用户空间是存放运行的程序和它们数据的一部分内存空间。

    建立一个进程时,内核要找到存放程序指令和数据的空闲内存页。内核还要建立数据结构来存放相应的内存分配情况和进程属性。

    shell 是一个管理进程和运行程序的程序,Unix 系统有很多可用的 shell。

    shell 对输入的命令的分析:

    在 Linux 中,有一些命令,例如 cd 是包含在 shell 内部的命令,还有一些命令,例如 cp、mv 或 rm 是存在于文件系统中某个目录下的单独的程序。对于用户而言,没必要关心一个命令是在 shell 内部还是在 shell 外部。

    shell 对于命令的分析过程如下:

    首先,检查用户输入的命令是否是内部命令,如果不是再检查是否是一个应用程序;shell 在搜索路径或者环境变量中寻找这些应用程序;

    如果键入命令不是一个内部命令并且没有在搜索路径中查找到可执行文件,那么将会显示一条错误信息; 

    如果能够成功找到可执行文件,那么该内部命令或者应用程序将会被分解为系统调用传给 Linux 内核,然后内核在完成相应的工作。

    二、深入理解 shell

    只要有操作系统的地方就有 shell、学习 shell 也可以说是学习它的系统,掌握 shell 也等同于熟练的掌握了系统的使用规则。

    Shell、内核、硬件的关系如图所示:

    1. 学习 shell 好处

  • 变化小,一旦学会,受用终身

  • 远程控制方面字符界面比 GUI 更节省网络带宽

  • 编程功能可以大大提高系统管理的效率

  • 对 Linux 内部的运行机制有更深入的了解

  • 2. bash 作为管理内核的 Shell,其优点如下:
  • 支持通配符和一些特殊字符

  • 支持输入输出重定向

  • 支持管道操作

  • 命令的记忆与编辑功能

  • 命令的别名设定功能

  • 自动补全功能

  • 强大的编程功能

  • 3. Shell 命令的通配符和特殊字符

    常用的特殊字符表

    利用通配符可以同时引用多个文件,常用的通配符有 * 和 ? ,* 号表示可以匹配任意长度的任何字符,? 号代表了任意一个字符。

    例如:

    微信扫一扫 分享到朋友圈
    微口订阅号

    关注订阅号

    社交媒体运营经验交流
    流量电商行业动态讨论

    热点事件
    微口订阅号

    关注订阅号

    社交媒体运营经验交流
    流量电商行业动态讨论

    阅读下一篇
    微口订阅号

    自媒体运营攻略
    行业经验交流

    关闭

    创建藏点

    藏点名称
    藏点说明
    藏点封面
    转藏至我的藏点 +新建藏点
      关闭
      确定 取消