当前位置: 首页 > news >正文

利用 zabbix 监控服务端口

后台和服务端开发,一般会有很多服务需要监控和维护。有的时候,运维资源有限,再加上服务还没有达到一定的规模,服务前期都要靠开发自己运维维护。

一般情况,我会在每个服务中写个监控报警邮件,当服务挂了就发邮件提示。但这并不能解决问题,第一,每次新写一个服务,特别是分布式系统,一下几十台机器,都要加个监控报警,重复造轮子;第二,有些是需要借助第3方服务的,改源码也很浪费时间。基于上面的各种原因,我打算自己写个监控报警的模块服务,一劳永逸,但平时业务太忙,一直没有时间,而且我的代码功力还不太成熟,架构也是一知半解,做出来好不好用也未可知。最近接触到zabbix这个运维工具,发现非常好用,分分钟解决了上述我的问题,也不用我写代码重复造轮子了。这个工具不仅能监控服务,还能监控主机的各项指标,比如进程是否存活,主机硬盘,性能等等各项指标,所以这个工具是万能的运维工具。此外,我不是专业运维,只是找合适的工具协助排查问题,据说现在专业运维已经不使用这个工具了,他们用的是google的prometheus工具。

zabbix工具简介

言归正传,今天给大家介绍的是zabbix这款工具。

安装zabbix的服务器,主要是3个关键部分,前端界面(前端运维操作),服务器和数据库,一般用docker创建一个环境,安装非常方便。安装完成后,服务器和数据库启动后,前端界面打开如下图所示。

从上图可以看出,这个系统有2级菜单,主要是5大功能模块,每个模块下还有很多二级功能菜单。由于该工具功能太强大,本次将介绍其中的一部分使用功能。

zabbix监控模式

Zabbix监控分为多个模式,常见的有2种。

一种是zabbix服务器主动发起监控,比如查看某个主机的端口是否存活,这种模式比较局限,使用范围比较窄,只能监控一部分数据,比如某个主机的进程是否存活,这个模式监控不了,但这个模式非常简单。

另外一种是zabbix客户端(agent)模式,这个模式非常强大,能监控到主机的任何信息,比如内存,硬盘,cpu,进程,服务等,能监控这么多数据也是有前提的,需要在被监控的目标服务器上安装zabbix agent客户端工具,这个工具可以主动或被动的上报收集的数据。

本文目的是为了简单监控服务,不需要监控那么多数据,所以采用第一种模式。

监控服务端口步骤

1

创建主机

2

建监控项

创建完成之后,点击进入该主机,创建监控项,主要监控该主机的9998端口。

注意,这里选的类型是简单检查,而不是zabbix agent模式。几个重要的参数已圈出来,比如键值,是为了监控该主机的9998端口。其他的参数按照实际业务填写吧,比如更新间隔,这里默认是30s,可以适当修改。

3

根据以上监控项新建触发器

添加[表达式]时,会有如上弹窗,选择对应的监控项,一般监控服务返回为1,只有当返回为0时,触发警报。

4

触发问题展示

那触发的警报一般会显示在什么位置呢,警报展示在顶级菜单监控下面的问题菜单中。

5

创建图形

接着,根据监控项创建图形。

6

图形展示

创建图形,是为了更形象的观察结果。一般图像展示在顶级菜单监控项下面的图形菜单中。

此外,grafana支持zabbix的数据源,可以根据创建的图形,在grafana上进行展示汇总,关于grafana可以参考之前的介绍。

以上是监控服务端口的全部介绍,注意上述操纵均是Admin账号配置。配置完成后,可以通过顶级菜单监测项中的问题和图形(同时可以借助grafana)实时查看结果。但还是存在一个问题,服务也不知道什么时候挂掉,总不能老是盯着监测结果。

邮件通知配置

一旦出现问题,能够智能邮件通知的功能也是可以配置。

1

配置邮件服务

需要邮件通知,首先需要配置邮件服务。

上图是配置了邮件服务,这个前提是有邮件服务,如果没有,请先搭建一个邮件服务(具体搭建步骤不赘述了,网上很多资料)。

2

创建用户

创建接收邮件的用户。

创建用户的时候,有一个地方需要特别注意,就是用户权限,如果没有主机的读权限,是接收不到任何邮件的(这是一个大坑)。有2种方法,第一是用户类型选择超级管理员,那么对所有主机群组都有读写权限。第二是创建一个用户群组,有该主机所在主机群组的读权限,然后将用户加入到这个群组,也能收到邮件。

3

创建动作

创建报警动作。

注意,这里也有个小坑,操作是和动作挂钩的,但后面的恢复操作和更新操作是对用户群组整个生效的,只要拥有群组的读权限,就能收到对应的邮件,如果开启,用户群组也没有设计好,会收到大量的无关邮件。反之,如果用户群组设计好了,后面2个操作报警也有很大的帮助。

总结

本文就介绍到这里,简单总结一下,主要是借助zabbix运维工具简单检查服务端口是否正常,达到预警和提示的目的。

更多技术文章

相关文章:

  • FastAPI 学习之路(二十九)使用(哈希)密码和 JWT Bearer 令牌的 OAuth2
  • 【愚公系列】2022年08月 微信小程序-纵向和横向选项卡功能实现
  • 猿创征文|Java实现自定义注解
  • 全网唯一OpenCyphal/UAVCAN教程(8)libcanard介绍
  • Redis的主从复制搭建
  • java毕业设计物资租赁管理系统mybatis+源码+调试部署+系统+数据库+lw
  • java计算机毕业设计评标专家管理信息系统源码+数据库+系统+lw文档+mybatis+运行部署
  • java毕业设计希望酒店信息管理系统mybatis+源码+调试部署+系统+数据库+lw
  • 数仓项目拉链表
  • 如何写砸一本小说
  • java计算机毕业设计企业运营管理系统的设计与实现源码+数据库+系统+lw文档+mybatis+运行部署
  • AWS灾难恢复的重要参考指标
  • java基于springboot+vue的课程资源在线学习网站
  • 998. 最大二叉树 II(难度:中等)
  • 【原创】基于SSM的快递代取管理系统(快递代取系统毕设源代码)
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 345-反转字符串中的元音字母
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • ES10 特性的完整指南
  • flask接收请求并推入栈
  • IDEA常用插件整理
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • SQLServer之创建显式事务
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 力扣(LeetCode)965
  • 排序(1):冒泡排序
  • 学习JavaScript数据结构与算法 — 树
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​一些不规范的GTID使用场景
  • #数学建模# 线性规划问题的Matlab求解
  • (175)FPGA门控时钟技术
  • (2)MFC+openGL单文档框架glFrame
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (力扣)1314.矩阵区域和
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (三)uboot源码分析
  • (算法)求1到1亿间的质数或素数
  • (转载)(官方)UE4--图像编程----着色器开发
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .net6+aspose.words导出word并转pdf
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET中统一的存储过程调用方法(收藏)
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [Android]通过PhoneLookup读取所有电话号码
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [C# WPF] 如何给控件添加边框(Border)?
  • [C++数据结构](31)哈夫曼树,哈夫曼编码与解码
  • [CF]Codeforces Round #551 (Div. 2)
  • [cocos creator]EditBox,editing-return事件,清空输入框
  • [html] 动态炫彩渐变背景