zabbix6.0安装及常用监控配置

文章目录

      • 部署zabbix-server
      • zabbix监控节点部署
        • 解决zabbix中文乱码
          • 创建主机组
          • 创建模版
          • 配置主机与模版关联
        • 监控boot分区
        • 监控网卡流量
        • 出网卡流量监控
        • 进入和出的总流量
        • 监控内存
        • 监控服务器端口
        • 用户自定应监控key值 (监控mysql查询数量)
        • zabbix触发器
          • 监控cpu
          • 监控入网卡流量
        • 邮件告警
        • 内置宏变量
        • 自动发现
        • 自定义监控key(监控tcp链接状态)
          • 优化:使用传参数的方式

修改主机名

hostnamectl set-hostname zyj86
hostnamectl set-hostname zyj87

部署zabbix-server

安装mysql

mkdir packages
tar -xf mysql-8.0.36-1.el8.x86_64.rpm-bundle.tar -C packages/
cd packages 
yum install -y ./*
systemctl enable --now mysqld

cat /var/log/mysqld.log | grep pass
2024-10-12T11:38:07.021454Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: hHuk/UeP!0LQ

mysqladmin -uroot password aaA...111 -p

MySQL安全配置向导
mysql_secure_installation
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

systemctl restart mysqld.service

# 可选
# 设置root可以远程连接
update user set host='%' where user='root';
grant all privileges on *.* to root@"%";
flush privileges;

安装zabbixserver

# 配置yum仓库
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-5.el8.noarch.rpm
dnf clean all 

# 安装Zabbix server,Web前端,agent
dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent zabbix-get

# 创建初始数据库
mysql> drop user zabbix@'localhost';
mysql> flush privileges;

mysql -uroot -paaA...111
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user 'zabbix'@'localhost' identified by 'aaA...111';
mysql> grant all privileges on zabbix.* to'zabbix'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

# 导入初始架构和数据,系统将提示您输入新创建的密码。
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

# Disable log_bin_trust_function_creators option after importing database schema.
mysql -uroot -paaA...111
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

# 为Zabbix server配置数据库
编辑配置文件 vim /etc/zabbix/zabbix_server.conf
DBPassword=aaA..111

# 启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启:
systemctl restart zabbix-server zabbix-agent httpd php-fpm
systemctl enable zabbix-server zabbix-agent httpd php-fpm

web界面进行安装,访问 192.168.3.86:80/zabbix
在这里插入图片描述
在这里插入图片描述

点击下一步后 这里遇到一个错误: php版本低,不支持使用mysql的caching_sha2_password验证插件

无法连接到数据库 The server requested authentication method unknown to the client

PHP 7.2.8和PHP 7.1.20已经可以支持caching_sha2_password,直接连接MySQL8。

切换php版本至7.4

dnf module switch-to php:7.4

重启httpd服务

systemctl restart httpd

再次点击下一步继续安装即可

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装完成

默认登录账号密码为: Admin zabbix

zabbix监控节点部署

# 配置yum仓库
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-5.el8.noarch.rpm
dnf clean all 

# 被监控机器安装zabbix-get和zabbix-agent 
yum install zabbix-get zabbix-agent -y

# 修改zabbix-agent 配置文件指向server端地址
vim /etc/zabbix/zabbix_agentd.conf

117 Server=192.168.3.86
171 ServerActive=192.168.3.86

# 启动zabbix-agent
systemctl enable --now zabbix-agent.service

监控信息的两种方式

主动模式:定时查看业务状态,及时性好。占用资源多。

被动模式:监控对象上报故障,占用资源少,如网络,存储资源。及时性差。

使用 zabbix_get 命令手动获取

zabbix_get -s 127.0.0.1 -k system.uname
Linux zyj86 4.18.0-553.el8_10.x86_64 #1 SMP Fri May 24 13:05:10 UTC 2024 x86_64

将主机添加到zabbix中 选择主机所属的群组
在这里插入图片描述

配置主机模版

在这里插入图片描述

在查看图形数据中存在乱码 如图

在这里插入图片描述

解决zabbix中文乱码

上传到 zabbix 服务器 simkai.ttf 中文楷体字体,也可上传其他字体。

cd /usr/share/zabbix/assets/fonts/
rz simkai.ttf 
mv graphfont.ttf ./graphfont.ttf.bak
mv simkai.ttf graphfont.ttf

刷新网页后就不会出现乱码了

创建主机组

在这里插入图片描述

创建模版

选择关联的群组 (模版是一个监控项,图形,触发器等集合,一个群组可包括多个模版)

在添加主机后放置到群组中后 与群组关联的模版即生效,可以看到有很多监控项图形触发器等监控条目。

在这里插入图片描述

配置主机与模版关联

在这里插入图片描述

当我们在模板中添加监控项后就可以在web页面中查看了,如下例监控boot分区

监控boot分区

创建监控项

在这里插入图片描述

在这个模板中创建图形 选择刚才创建的监控项 为该数据展示图形
在这里插入图片描述

查看图表

在这里插入图片描述

监控网卡流量

创建监控项

在这里插入图片描述

添加两个预处理步骤

在这里插入图片描述

添加网卡的图形

在这里插入图片描述

将模板和主机关联

在这里插入图片描述

出网卡流量监控
键值net.if.out[ens160,bytes]
单位bps
进入和出的总流量
键值net.if.total[ens160,bytes]
单位bps
监控内存
键值vm.memory.size[buffers]
单位B
监控服务器端口
键值net.tcp.listen[3306]
# 使用zabbix_get 查看获取的数据
[root@zyj86 ~]# zabbix_get -s 127.0.0.1 -k net.tcp.listen[3306]
1

键值net.tcp.listen[3306]
# 使用zabbix_get 查看获取的数据
[root@zyj86 ~]# zabbix_get -s 127.0.0.1 -k net.tcp.port[127.0.0.1,3306]
1

在这里插入图片描述

用户自定应监控key值 (监控mysql查询数量)
# 使用shell命令获取mysql查询数
mysqladmin status -uroot -paaA...111 2>&1
mysqladmin status -uroot -paaA...111 2>&1 | grep "^Uptime" | awk '{print $6}'
104

自定义key

vim /etc/zabbix/zabbix_agentd.d/self_define_parameter_mysql.conf

UserParameter=mysql.questions,mysqladmin status -uroot -paaA...111 2>&1 | grep "^Uptime" | awk '{print $6}'

使用zabbix_agentd -t 指定key名查看是否可以获取

[root@zyj87 ~]# zabbix_agentd -t mysql.questions
mysql.questions                               [t|110]

重启agent客户端

systemctl restart zabbix-agent.service 

创建模版

在这里插入图片描述

UserParameter=mysql.questions 使用前面自定义的mysql.questions 作为key
在这里插入图片描述

添加图形

在这里插入图片描述

将模版与主机关联

在这里插入图片描述

zabbix触发器

触发器用于定义item的报警阈值,触发器对象可以用于主机或模版。

监控cpu

创建一个 用于监控cpu的模版

在这里插入图片描述

创建监控项 监控cpu的负载

在这里插入图片描述

添加触发器

触发器表达式解释:

last(/cpualert/system.cpu.load[all,avg1])>1
cpualert使用这个模版的主机的system.cpu.load所有cpu的1分钟平均值,最近一次数据的平均值大于1报警

在这里插入图片描述

完整设置如下

在这里插入图片描述

添加图形展示

在这里插入图片描述

将主机和模版关联

在这里插入图片描述

生成 大文件 压测cpu

dd if=/dev/zero of=/1.txt bs=1M count=10000

cpu利用率大于1 高于阈值出发告警

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查看首页有告警信息

在这里插入图片描述

监控入网卡流量

在这里插入图片描述

当入网卡流量过高时会报警

在这里插入图片描述

邮件告警

开启授权码

在这里插入图片描述

BZgBZWARUac4TePu

添加一个邮箱报警媒介

在这里插入图片描述

创建此媒介的告警消息模板

在这里插入图片描述

点击添加后如下图所示

在这里插入图片描述

配置好后会在媒介中有字节添加的电子邮件告警栏目,可以点击右方测试按钮进行测试

在这里插入图片描述

如有以下结果说明上述步骤均配置成功

在这里插入图片描述

创建运维用户组 group_cloud2024_yunwei

在这里插入图片描述

创建属于group_cloud2024_yunwei组的用户group_cloud2024_zhangsan

在这里插入图片描述

添加该用户的报警媒介,使用163邮箱报警

在这里插入图片描述

设置用户为超级管理员权限

在这里插入图片描述

点击添加

创建触发器动作,例如: zyj87 主机宕机,监控项检测不到数值后触发器就会触发动

在这里插入图片描述

设置触发该动作的满足条件

在这里插入图片描述

添加操作

在这里插入图片描述

点击添加

在这里插入图片描述

内置宏变量

如定义报警消息时使用

在这里插入图片描述

主题: 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
消息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
自动发现

需安装zabbix-agent

# 修改zabbix-agent 配置文件指向server端地址
vim /etc/zabbix/zabbix_agentd.conf

117 Server=192.168.3.86
171 ServerActive=192.168.3.86

创建自动发现规则

在这里插入图片描述

创建发现动作

在这里插入图片描述

创建动作

在这里插入图片描述

添加相应操作

在这里插入图片描述

稍等片刻zabbix会自动扫描局域网内的机器并添加到zabbix的监控中,如下图192.168.3.88

在这里插入图片描述

TCP连接状态

在这里插入图片描述

1、LISTENING状态
HTTPD服务启动后首先处于侦听(LISTENING)状态。

2、ESTABLISHED状态
ESTABLISHED的意思是建立连接。表示两台机器正在通信。

3、CLOSE_WAIT

对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭

4、TIME_WAIT

我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分 段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情 况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。

目前有一种避免TIME_WAIT资源浪费的方法,就是关闭socket的LINGER选项。但这种做法是TCP协议不推荐使用的,在某些情况下这个操作可能会带来错误。

5、SYN_SENT状态

SYN_SENT状态表示请求连接,当你要访问其它的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为 ESTABLISHED,此时SYN_SENT状态非常短暂。但如果发现SYN_SENT非常多且在向不同的机器发出,那你的机器可能中了冲击波或震荡波 之类的病毒了。这类病毒为了感染别的计算机,它就要扫描别的计算机,在扫描的过程中对每个要扫描的计算机都要发出了同步请求,这也是出现许多 SYN_SENT的原因。

自定义监控key(监控tcp链接状态)

准备自定义key

vim /etc/zabbix/zabbix_agentd.d/tcp_status.conf
# Format:UserParameter=<key>,<shell commmand>
UserParameter=tcp.status.listen,ss -an | grep :80 |grep -i 'LISTEN' | wc -l
UserParameter=tcp.status.timewait,ss -an | grep :80 |grep -i 'TIME-WAIT' | wc -l
UserParameter=tcp.status.established,ss -an | grep :80 |grep -i 'ESTAB' | wc -l
UserParameter=tcp.status.syn_recv,ss -an | grep :80 |grep -i 'SYNC-RECV' | wc -l
UserParameter=tcp.status.syn_sent,ss -an | grep :80 |grep -i 'SYNC-SENT' | wc -l
UserParameter=tcp.status.close,ss -an | grep :80 |grep -i 'CLOSE' | wc -l

重启zabbix-agent

systemctl restart zabbix-agent.service

使用zabbix_get 指定key获取数据

zabbix_get -s 192.168.3.87 -k tcp.status.established

创建模版用于监控tcp状态
在这里插入图片描述

创建使用自定义key值的监控项 tcp.status.established

在这里插入图片描述

在模板中添加图形展示

在这里插入图片描述

设置主机与群组下的模板关联

在这里插入图片描述

用户访问httpd服务,查看图形展示

在这里插入图片描述

优化:使用传参数的方式
vim /etc/zabbix/zabbix_agentd.d/tcp_status.conf

UserParameter=tcp.status.[*],ss -an | grep :80 |grep -i '$1' | wc -l

重启zabbix-agent

systemctl restart zabbix-agent.service

使用key获取数据

zabbix_get -s 192.168.3.87 -k tcp.status.[listen]

设置监控项键值使用 tcp.status.[listen] [] 中的listen为传入$1的参数 ,使用这种穿传参的方式就简化了配置文件,只需要在设置健康项的时候出入需要监控的值即可。如传入:time_wait listen 等

在这里插入图片描述

当然也可以在shell脚本中使用函数调用的方式再进行优化。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何将使用unsloth微调的模型部署到ollama?

目录 一、将模型保存为gguf格式 二、下载llama.cpp 三、生成 llama-quantize 可执行文件 四、使用llama-quantize 五、训练模型 六、将模型部署到ollama 一、将模型保存为gguf格式 在你的训练代码 trainer.train() 之后添加&#xff1a; model.save_pretrained_gguf(&q…

【Hadoop面试题2025】

文章目录 简单题故障及相应的处理方法中等难度高难度小文件小文件的产生小文件问题的影响小文件治理方案推荐方案 冷文件冷文件的产生冷文件问题的影响冷文件治理方案推荐方案 简单题 一、基础概念类 什么是Hadoop&#xff1f; 答案&#xff1a;Hadoop是一个开源的分布式计算框…

2025.1.21——六、BUU XSS COURSE 1 XSS漏洞|XSS平台搭建

题目来源&#xff1a;buuctf BUU XSS COURSE 1 目录 一、打开靶机&#xff0c;整理信息 二、解题思路 step 1&#xff1a;输入框尝试一下 step 2&#xff1a;开始xss注入 step 3&#xff1a;搭建平台 step 4&#xff1a;利用管理员cookie访问地址 三、小结 二编&#…

[论文阅读] (36)CS22 MPSAutodetect:基于自编码器的恶意Powershell脚本检测模型

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座&#xff0c;并分享给大家&#xff0c;希望您喜欢。由于作者的英文水平和学术能力不高&#xff0c;需要不断提升&#xff0c;所以还请大家批评指正&#xff0c;非常欢迎大家给我留言评论&#xff0c;学术路上期…

IPhone16 Plus 设备详情

目录 产品宣传图内部图——前内部图——后设备详细信息 产品宣传图 内部图——前 内部图——后 设备详细信息 信息收集于HubWeb.cn

PyTorch入门 - 为什么选择PyTorch?

PyTorch入门 - 为什么选择PyTorch? Entry to PyTorch - Why PyTorch? by JacksonML $ pip install pytorch安装完毕后&#xff0c;可以使用以下命令&#xff0c;导入第三方库。 $ import pytorch

Jmeter 动态参数压力测试时间段预定接口

&#x1f3af; 本文档详细介绍了如何使用Apache JMeter进行压力测试&#xff0c;以评估预定接口在高并发场景下的性能表现。通过创建线程组模拟不同数量的用户并发请求&#xff0c;利用CSV文件动态配置时间段ID和用户token&#xff0c;确保了测试数据的真实性和有效性。文档中还…

字节跳动自研HTTP开源框架Hertz简介附使用示例

字节跳动自研 HTTP 框架 Hertz Hertz 是字节跳动自研的高性能 HTTP 框架&#xff0c;专为高并发、低延迟的场景设计。它基于 Go 语言开发&#xff0c;结合了字节跳动在微服务架构中的实践经验&#xff0c;旨在提供更高效的 HTTP 服务开发体验。 1. 背景介绍 随着字节跳动业务…

Spring Boot 自定义属性

Spring Boot 自定义属性 在 Spring Boot 应用程序中&#xff0c;application.yml 是一个常用的配置文件格式。它允许我们以层次化的方式组织配置信息&#xff0c;并且比传统的 .properties 文件更加直观。 本文将介绍如何在 Spring Boot 中读取和使用 application.yml 中的配…

HarmonyOS Next构建工具 lycium 原理介绍

HarmonyOS Next构建工具 lycium 原理介绍 背景介绍 HarmonyOS Next中很多系统API是以C接口提供&#xff0c;如果要使用C接口&#xff0c;必须要使用NAPI在ArkTS与C间交互&#xff0c;这种场景在使用DevEco-Studio中集成的交叉编译工具&#xff0c;以及cmake构建工具就完全够用…

数据结构(Java)——二叉树

1.概念 二叉树是一种树形数据结构&#xff0c;其中每个节点最多有两个子节点&#xff0c;通常被称为左子节点和右子节点。二叉树可以是空的&#xff08;即没有节点&#xff09;&#xff0c;或者由一个根节点以及零个或多个左子树和右子树组成&#xff0c;其中左子树和右子树也分…

ansible自动化运维实战--script、unarchive和shell模块(6)

文章目录 一、script模块1.1、功能1.2、常用参数1.3、举例 二、unarchive模块2.1、功能2.2、常用参数2.3、举例 三、shell模块3.1、功能3.2、常用参数3.3、举例 一、script模块 1.1、功能 Ansible 的 script 模块允许你在远程主机上运行本地的脚本文件&#xff0c;其提供了一…

【期末速成】Oracle数据库

选择题 从中选 10 道。 Oracle的管理与开发工具不包括&#xff08; D &#xff09;。 A. OEM B. SQL*PLUS C. ONCA D. PHP PHP 是一种编程语言&#xff0c;不是 Oracle 的工具。 下面文件属于物理文件的是&#xff08; C &#xff09;。 A. 概要文件 B. 闪回文件 C. 数据文件 D…

auto的用法

文章目录 一、auto 一、auto 在这里插入代码片在这里插入代码片感谢大家能看到这里&#xff0c;多多支持&#xff01;

UE求职Demo开发日志#7 强化属性完善

1 实现思路设计 定义一个结构体记录技能树一个单元的信息&#xff0c;命名为FStrengthenCellInfo&#xff0c;一个TArray记录技能树整体信息&#xff0c;需要以下信息&#xff1a; 1.TArray前置技能index 2.FString 描述文本 3.TArray<FMyItemInfo>激活需要的物品ID和…

java常量池

目录 1 Class常量池 2 运行时常量池 3 字符串常量池 3.1 为什么要设计字符串常量池 3.2 字符串对象三种创建姿势 3.3 字符串的操作 3.4 字符串的不可变性 4 包装类型常量池 1 Class常量池 class 文件的资源仓库javap命令可以查看class常量池 主要包含字面量和符号引用字面量 由…

C语言-内存管理

1、malloc()函数 用于动态分配一块指定大小的内存&#xff0c;并返回指向这块内存的指针。如果分配失败&#xff0c; 返回 NULL。 int* ptr (int*)malloc(sizeof(int) * 10); // 分配一个包含 10 个整数的内存 if (ptr NULL) {printf("Memory allocation failed!\n&q…

基于ESP32-IDF驱动GPIO输出控制LED

基于ESP32-IDF驱动GPIO输出控制LED 文章目录 基于ESP32-IDF驱动GPIO输出控制LED一、点亮LED3.1 LED电路3.2 配置GPIO函数gpio_config()原型和头文件3.3 设置GPIO引脚电平状态函数gpio_set_level()原型和头文件3.4 代码实现并编译烧录 一、点亮LED 3.1 LED电路 可以看到&#x…

YOLOv5训练自己的数据及rknn部署

YOLOv5训练自己的数据及rknn部署 一、下载源码二、准备自己的数据集2.1 标注图像2.2 数据集结构 三、配置YOLOv5训练3.1 修改配置文件3.2 模型选择 四、训练五、测试六、部署6.1 pt转onnx6.2 onnx转rknn 七、常见错误7.1 训练过程中的错误7.1.1 cuda: out of memory7.1.2 train…

MATLAB 如何避免复杂shp文件对inpolygon的影响

**任务描述&#xff1a;**当我想用inpolygon函数将属于非洲的pixel选出来时&#xff0c;发现因为周边小岛的影响&#xff0c;pixel选取有问题&#xff0c;如下图。 第一种解决办法&#xff1a; 首先将复杂shp文件查分成简单的shp文件&#xff0c;即将不相交的元素分离开 [QGIS…