监控平台 - zabbix

news2025/1/11 15:09:55

目录

一、概述

二、搭建


一、概述

1. zabbix程序结构

zabbix-server:用于数据处理及写入到数据库

zabbix-agent:用于获取被监控端的性能检测数据

zabbix-web:用于数据的展示及远程操控

数据库:用于存储监控数据

zabbix-proxy:实现zabbix分布式监控

2. zabbix-agent支持的协议

1) ssh

2) snmp:用于交换机路由器流量监控(OID)

3) IPMI:硬件监控

4) JMX:   专用于java服务监控

5) 结合procona:实现针对数据库监控

zabbix中核心的资源介绍

监控项→触发器→动作→ 模板

监控项配置

首先规划风险值

通过设计取值命令 :

配置监控项

vim /etc/zabbix/zabbix_agent.conf

UserParameter=User_num,w |awk 'NR>2{print $3}'|uniq |wc -l

客户端测试监控项

zabbix_agent2 -t User_num

User_num                                      [s|2]

web端添加监控项

1)选择需要添加监控项的主机

2)根据客户端所自定义的监控项添加即可

3)注意:添加监控项页面中的值要和监控项的key名一致

企业级配置自定义监控项

UserParameter=Nginx[*],./scripts/nginx_status.sh $1

通过web页面实现添加监控项

触发器及报警

1. 监控项获取失败排查(面试)

1)web添加监控项页面测试获取监控项值

2)服务端安装zabbix_get 

yum install zabbix-get -y

zabbix_get 用于服务端测试获取客户端中自定义的监控项

zabbix_get -s 指定客户端IP  -k 监控项名

3)在客户端通过zabbix-agent -t 检测获取监控项

如果能获取到则,客户端定义配置有问题,如果获取不到,则自定义监控项定义有问题

2. 触发器

作用:定义监控项的阈值,当超过阈值则触发警告

阈值:指某一个监控指标的定义值

定义触发器:主机→ 触发器→ 创建→ 构建表达式

设置阈值类型:

last: 最新一次的数据

avg:单位时间内的平均值

count:单位时间内的总数

max: 最大值

3. 配置动作实现zabbix自动化报警

通过动作实现

企业级常用的报警方式:邮件、微信报警、钉钉、发短信

3.1 配置右键告警方法:

添加用于接收消息的用户及用户组

添加用户的登录信息

添加用户的接收消息报警媒介

添加动作

创建动作:条件

创建动作操作:故障提醒操作、恢复提醒操作

添加发送邮件的报警媒介

管理→ 报警媒介

配置发送邮箱

配置发送消息模板

问题模板:

Problem started at {EVENT.TIME} on {EVENT.DATE}

Problem name: {EVENT.NAME}

Host: {HOST.NAME}

Severity: {EVENT.SEVERITY}

Operational data: {EVENT.OPDATA}

Original problem ID: {EVENT.ID}

{TRIGGER.URL}

恢复模板:

Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}

Problem name: {EVENT.NAME}

Problem duration: {EVENT.DURATION}

Host: {HOST.NAME}

Severity: {EVENT.SEVERITY}

Original problem ID: {EVENT.ID}

{TRIGGER.URL}

3.2 配置微信报警

3.2.1 申请企业微信    https://work.weixin.qq.com/

3.2.2 创建自定义应用

3.2.3 准备微信报警脚

cd /usr/lib/zabbix/alertscripts  上传脚本

配置脚本

corpid=企业ID

appsecret=自建项目secret

agentid=自建项目ID

3.2.4 安装pip

yum install python-pip

pip install requests

测试脚本发送消息命令

python weixin.py 当前在项目中的账号  “标题”  “消息”

chmod +x weixin.py 

rm -rf /tmp/weixin.log

3.2.5 web端添加报警媒介

{ALERT.SENDTO};{ALERT.SUBJECT};{ALERT.MESSAGE}

3.2.6 报警升级

以步骤为单位进行分步骤报警;间隔时间是按照上一个步骤持续时间定义的

3.2.7 web检测

作用:通过抓取某URL页面中的关键字或状态码,探测业务异常情况

3.2.8 zabbix解决web页面乱码问题

zabbix存放字符集的路径:/usr/share/zabbix/assets/fonts;通过软连接上传自定义的字符集文件即可

3. 3 zabbix自动化监控

方法一:自动发现

自动扫描某范围内的ip

客户端:安装zabbix-agent 配置服务端是谁

动作:自动发现操作;自动发现扫描:指定IP范围扫描地址段

实现原理:服务端通过配置自动发现规则,进行ip地址段的扫描,触发动作添加主机

问题:对服务端压力过大

方法二:主动注册

所有客户端主动找服务端

ServerActive=服务端IP

Metadata=主机名

Hostname=主机名

web配置自动注册

二、搭建

zabbix监控环境搭建

配置zabbix官方yum源

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

安装服务端与客户端

yum install zabbix-server-mysql zabbix-agent -y

安装zabbix-web

cd /etc/yum.repos.d/

vim zabbix.repo

在/etc/yum.repos.d/zabbix.repo文件中打开zabbix-frontend

[zabbix-frontend]

enabled=1

安装依赖源

yum install -y epel-release centos-release-scl

安装

yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl

安装存储数据库    yum install -y mariadb-server mariadb

数据库配置

启动数据库 systemctl start mariadb

进入数据库mysql

创建存储数据的库,并支持中文(库名: zabbix)

create database zabbix character set utf8 collate utf8_bin;

授权连接数据库的用户,并设置密码(用户名: zabbix)

create user zabbix@localhost identified by '123456';

数据库授权

grant all privileges on zabbix.* to zabbix@localhost;

查看所有库

show databases;

进入zabbix库

use zabbix;

查看当前库下表

show tables;

在Zabbix服务器主机上,导入初始架构和数据。系统将提示您输入新创建的密码

zcat /usr/share/doc/zabbix-server- mysql*/create.sql.gz | mysql -uzabbix -p zabbix

Zabbix服务器配置数据库vim /etc/zabbix/zabbix_server.conf

存储监控数据的库名100 DBName=zabbix

116 DBUser=zabbix   连接数据库的用户

设置zabbix用户密码124 DBPassword=123456

为Zabbix配置正确的时区vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

php_value[date.timezone] = Asia/Shanghai #亚洲/上海

启动所有服务

systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm

查看zabbix服务占用端口信息

netstat -anptu | grep zabbix

访问zabbix

下一步

输入设置的密码 123456

设置名字

下一步

完成安装

进入zabbix   用户名Admin 密码zabbix

更改为中文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/969654.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

夜神模拟器进行APP抓包

夜神模拟器进行APP抓包 1、fiddler安装和配置1.1配置fiddler允许监听到https1.2配置fiddler允许远程连接1.3重启Fiddler(配置完成后需要重启才能生效) 2、安装夜神模拟器,并配置代理2.1打开模拟器wifi,修改网络代理2.2打开内置浏览…

基于深度学习网络的人员吸烟行为检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 clc; clear; close all; warning off; addpath(genpath(pwd)); rng(default)load FRCNN.mat I…

忧郁菇的介绍

前言 此文章为“植物大战僵尸”专栏中的第006刊(2023年9月五刊)。 无名版中有很多紫卡植物,分别是忧郁菇、玉米加农炮、猫尾草、机枪射手、地刺王、冰西瓜投手、双子向日葵、吸金菇。 提示: 1.用于无名版; 2.用于…

(数字图像处理MATLAB+Python)第十一章图像描述与分析-第七、八节:纹理描述和其他描述

文章目录 一:纹理描述(1)联合概率矩阵法A:定义B:基于联合概率矩阵的特征C:程序 (2)灰度差分统计法A:定义B:描述图像特征的参数 (3)行程…

(16)线程的实例认识:Await,Async,ConfigureAwait

继续(15)的例子 一、ConfigureAwait()的作用 private async void BtnAsync_Click(object sender, EventArgs e)//异步{Stopwatch sw Stopwatch.StartNew();TxtInfo.Clear();AppendLine("异步检索开始...");AppendLine($"当前线程Id:{Environment.CurrentManage…

Golang复习

文章目录 golang的特点golang数据类型基本数据类型(值类型)引用数据类型 make和newmakenew 浅拷贝,深拷贝深拷贝:实现深拷贝的方式:浅拷贝:实现浅拷贝的方式 接口接口是什么 某种类型可以比较吗channel数据…

flutter 里面自定义appbar

众所周知,fluuter里面的appbar 包含title, leading,action, bottom 如果我想在appbar里面自定一些内容,他会默认继承appbar的高度,且位置也没法自定义,如下图 这个时候我该怎么办? 在appbar里面将下面的内…

【JVM】对象死亡判断

文章目录 简述引用计数算法可达性分析算法4种对象引用finalize()方法回收方法区 简述 在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”&#x…

(17)线程的实例认识:wait,waitany,waitall,及经典死锁问题

一、文件构成 1、界面:一个textbox,四个button。 2、程序:前面(15)的book类与data类 private void AppendLine(string s){txtInfo.AppendText(string.IsNullOrEmpty(txtInfo.Text) ? s : $"{Environment.NewLine}{s}");…

Redis 7 第八讲 集群模式(cluster)架构篇

集群架构 Redis 集群架构图 集群定义 Redis 集群是一个提供在多个Redis节点间共享数据的程序集;Redis集群可以支持多个master 应用场景 Redis集群支持多个master,每个master又可以挂载多个slave读写分离支持数据的高可用支持海量数据的读写存储操作集群自带Sentinel的故障…

看懂UML类图

UML 统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。 类的表示 首先看那个…

ROS2中如何从欧拉角转换成四元素

ROS1中使用from tf.transformations import quaternion_from_euler导入quaternion_from_euler()即可调用。而ROS2中默认没有安装,需要单独安装一下ros-galactic-tf-transformations(我使用的ROS2是galactic,根据版本名不同做相应修改即可): …

Python GUI入门——tkinter编辑框、复选框、下拉菜单和按钮文本框的使用

简介 接上一次的tkinter编写界面相关内容,丰富点常用控件的方法,学会了这些控件布局和相关方 法属性,能够满足日常小工具的制作需求了。 搭建的界面框架如下图所示,功能可以自己添加。 界面代码 # -*- coding: utf-8 -*- impor…

第五章 树于二叉树 七、树和森林的遍历(广度优先遍历、深度优先遍历)

1、树的遍历 树是一种递归定义的数据结构,所以我们可以使用递归实现遍历。 (1)先根遍历(最先访问根节点)(深度优先遍历) 1.使用孩子兄弟表示法将其转化为二叉树的形式。 2.使用先序遍历二叉树…

面试2:通用能力

15丨如何做好开场:给自我介绍加“特效 第一层,满足面试官对信息的期待 这是对自我介绍的基本要求,把个人信息、主要经历、经验和技能有条理地组织起来, 有逻辑地讲出来。需要找出多段经历的关联性和发展变化,形成连…

分布式事务之 Seata 的部署和集成

文章目录 一、部署Seata的tc-server1.下载2.解压3.修改配置4.在nacos添加配置5.创建数据库表6.启动TC服务 二、Docker 中跑 Seata三、微服务集成seata1.引入依赖2.修改配置文件 四、TC服务的高可用和异地容灾1.模拟异地容灾的TC集群2.将事务组映射配置到nacos3.微服务读取nacos…

Linux下go环境安装、环境配置并执行第一个go程序

一、安装 1.Golang对Linux的内核版本要求 GO对Linux内核版本最低要求是 2.6.23,对应要求操作系统版本是: RHEL 6.0CentOS 6.0即,不支持 (RHEL 和 CentOS) 的 (4.x or 5.x)。2.下载golang的代码版本 Golang的官网下载地址:https:…

Presto 之Pipeline

一. 前言 我们知道在Presto中有个叫Pipeline的概念,Pipeline其实就是一条包含各个算子的流水线,如下所示。本文主要介绍在Presto中,Pipeline是如何划分的。 二. Pipeline 在Presto中,一个Stage中包括一个或者多个Pipeline&#xf…

JavaWeb项目基础配置

这里写目录标题 前言1.pom.xml2.webxml3.连接JDBC4.常用代码4.1获取时间4.2实现上传文件需要用到第三方库fileupload 常用快捷键常用操作Tomcat基础操作&#xff1a; 前言 本文主要讲述了 1.pom.xml <?xml version"1.0" encoding"UTF-8"?><pro…

9.2QTday4作业

1 闹钟 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QtDebug> #include <QLabel> //标签类 #include <QLineEdit> //行编辑器类 #include <QPushButton> //按钮类 #include <QTextEdit> //文本编辑器…