Zabbix监控

文章目录

  • Zabbix基本概念
    • zabbix介绍
    • zabbix特性
    • zabbix结构
  • 安装和配置Zabbix
    • 节点规划
    • 案例实施
      • 基础环境配置
      • Zabbix安装
      • 安装和配置数据库
      • 启动zabbix服务
  • Zabbix界面
    • (1)登录界面
    • (2)中文界面
    • (3)修改登录密码
    • (4)添加被监控机器
    • (5)图形乱码解决
    • (6)发送告警到邮箱
      • 创建动作
      • 添加操作
      • 邮件发件人
      • 用户收件人
      • 测试

Zabbix基本概念

zabbix官方文档

zabbix介绍

下图来自百度百科

image-20230723075025732

用通俗易懂的话来说,Zabbix是一个监控系统,它可以帮助我们实时检查设备的状态,比如服务器、网络设备等。当设备出现问题时,它会及时通知我们,让我们可以采取措施来解决。同时,它还可以把收集到的数据转化成图表和报告,让我们更直观地了解设备的运行情况

zabbix特性

数据采集:Zabbix Agent方式会定期收集设备的各种指标数据,比如CPU使用率、内存占用、网络流量等。这些数据会被Zabbix Server主动获取。

触发检测告警:Zabbix会根据我们事先设定的阈值和触发条件,对采集到的数据进行检测。如果某个指标超过了阈值或满足了触发条件,Zabbix会触发一个告警。Zabbix会根据事先设置的通知方式,比如邮件、短信等,通知相关的人员或团队。这样我们可以及时知道设备出现了问题。

数据存储:Zabbix将采集到的数据存储在数据库中

数据展示:Zabbix提供了丰富的可视化功能,可以将采集到的数据转化成各种图表和报表。这样我们可以直观地了解设备的运行状态和趋势。

zabbix结构

image-20230723085112234

Zabbix-server:收集监控数据,计算是否满足触发条件,向用户发送通知

Zabbix-database:所有配置信息和Zabbix收集到的数据都被存储在数据库中

Zabbix-Web:为了在任何地方和任何平台都能轻松地访问Zabbix,Zabbix提供了基于Web的界面。该界面是

Zabbix Server的一部分,通常跟Zabbix Server运行在同一台物理机器上。

Zabbix-proxy:Zabbix Proxy可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix 软件可选择部署的一部分。当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。

Zabbix-agent:Zabbix Agents监控代理部署在监控目标上,主动监控本地资源和应用(硬件驱动,内存等)

安装和配置Zabbix

节点规划

IP主机名节点
192.168.200.10zabbix-serverServer节点
192.168.200.20zabbix-agentAgent节点

案例实施

基础环境配置

(1)主机名配置

一台server节点一台agent节点

[root@localhost ~]# hostnamectl set-hostname zabbix-server
[root@localhost ~]# bash
[root@zabbix-server ~]# 

[root@localhost ~]# hostnamectl set-hostname zabbix-agent
[root@localhost ~]# bash
[root@zabbix-agent ~]# 

(2)关闭防火墙和SElinux并重启生效

将server节点和agent节点的防火墙和Selinux关闭并重新启动

systemctl stop firewalld && systemctl disable firewalld &&  sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config &&  reboot

image-20230723094642927

(3)配置YUM源

配置server和agent的YUM源

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

这个时候你查看你的yum.repos.d就会发现立马多个了一个zabbx.repo仓库

image-20230723102902961

可以查看一下里面的内容,可以看到连接的是官方镜像仓库,有可能因为我们网络不给力可能会下载不了,所以我们更改为阿里云的镜像仓库

image-20230723101303304

更换zabbix.repo镜像仓库地址

sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
# 这样可以将Zabbix软件源从官方的地址替换为阿里云镜像地址,以提高软件包的下载速度

可以看到已经由官方镜像仓库改为了阿里云镜像仓库

image-20230723103112301

启用zabbix-web仓库

image-20230723103729624

安装Software Collections 和 epel-release仓库

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

至此,2个节点的Yum源全部配置完毕

Zabbix安装

zabbix安装

[root@zabbix-server ~]# yum install -y zabbix-server-mysql zabbix-agent zabbix-web-mysql-scl zabbix-apache-conf-scl

安装和配置数据库

(1)安装数据库

[root@zabbix-server ~]# yum install -y mariadb-server
[root@zabbix-server ~]# systemctl enable mariadb-server --now

(2)初始化数据库

[root@zabbix-server ~]# mysql_secure_installation 

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):   # 提供当前root用户的密码 没有就回车
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y     # 是否设置root密码
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!  # 设置root密码成功


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y # y表示移除匿名用户的权限
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n #  n表示允许root用户远程登录
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y # 是否移除test测试数据库
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y  # 使所有更改立即生效
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

(3)添加数据库用户,以及zabbix所需的数据库信息

# 登录数据库
[root@zabbix-server ~]# mysql -uroot -p000000

# 创建一个名为zabbix的数据库,并指定字符集为utf8
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

# 创建一个名为zabbix的用户,并设置该用户可以在本地连接,身份验证密码为000000
MariaDB [(none)]> create user zabbix@localhost identified by '000000';

# 给zabbix用户授予对zabbix数据库的全部权限
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;flush privileges;

# 退出数据库
MariaDB [(none)]> exit

(4)使用zabbiix-mysql命令,导入数据库信息

[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix
# 这条命令将会将zabbix服务器所需的数据库结构和初始数据导入到名为zabbix的数据库中

# 测试 能看到信息就证明导入成功了
[root@zabbix-server ~]# mysql -uroot -p000000 -e "use zabbix;show tables;"

(5)修改zabbix server配置文件,修改数据库的密码

[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf
# 修改如下信息
DBPassword=000000

image-20230723120216562

(6)修改时区

[root@zabbix-server ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
# 修改如下内容
php_value[date.timezone] = Asia/Shanghai

启动zabbix服务

重启zabbix服务,并设置开机自启

[root@zabbix-server ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@zabbix-server ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

查看端口号,验证 zabbix-server 的服务端口 10051 是否存在

[root@zabbix-server ~]# netstat -tlnp|grep 10051
tcp        0      0 0.0.0.0:10051     0.0.0.0:*     LISTEN     27246/zabbix_server 
tcp6       0      0 :::10051         :::*           LISTEN      27246/zabbix_server 

Zabbix界面

(1)登录界面

[root@zabbix-server ~]# hostname -I
192.168.200.10 

在浏览器访问 192.168.200.10/zabbix

进入 Zabbix 安装向导,单击右下角Next step按钮,进入下一步操作

image-20230723121140075

显示 PHP 版本信息等内容,然后单击右下角Next step按钮,进入下一步操作

image-20230723121152137

填写连接数据库的必要信息,Password 为 000000,填写完毕后单击右下角Next step按钮,进行下一步操作

image-20230723121237573

Name 字段可以随意填写,是给监控平台起个名字。然后单击右下角Next step按钮,进行下一步操作

image-20230723121603859

平台配置概况

image-20230723121648738

安装 Zabbix,安装成功后,单击右下角Finish按钮,结束安装

image-20230723121719356

单击Finish按钮后,进入登录界面,使用默认的用户名和密码 Admin/zabbix 登录

image-20230723121814625

进入 Zabbix 主页

image-20230723121904362

(2)中文界面

单击左下角User settings按钮,进入设置界面

image-20230723154337854

将Language一栏修改为Chinexe(zh CN),然后单击下方Update按钮

image-20230723154429119

中文界面的 Zabbix 监控界面已配置完成

image-20230723154454826

(3)修改登录密码

image-20230723183106587

image-20230723183122416

(4)添加被监控机器

回到 zabbix-agent 节点,安装 zabbix-agent 服务

[root@zabbix-agent ~]# yum install -y zabbix-agent

修改/etc/zabbix/zabbix_agentd.conf配置文件,配置 zabbix-agent,修改如下

[root@zabbix-agent ~]# vim /etc/zabbix/zabbix_agentd.conf
# 修改如下信息
Server=192.168.200.10
ServerActive=192.168.200.10
Hostname=zabbix-agent

启动 zabbix-agent 服务,并查看 10050 端口是否存在

[root@zabbix-agent ~]# systemctl enable zabbix-agent --now


[root@zabbix-agent ~]# netstat -tlnp |grep 10050
tcp        0      0 0.0.0.0:10050      0.0.0.0:*   LISTEN      51248/zabbix_agentd 
tcp6       0      0 :::10050          :::*        LISTEN      51248/zabbix_agentd 

验证zabbix-agent2的连通性

[root@zabbix-server ~]# yum install -y zabbix-get
[root@zabbix-server ~]# zabbix_get -s '192.168.200.20' -p 10050 -k 'agent.ping'
1
[root@zabbix-server ~]# zabbix_get -s '192.168.200.20' -p 10050 -k 'system.hostname'
zabbix-agent

回到 Web 界面,选择菜单栏配置→主机→创建主机命令,会跳转到如图

image-20230723161041973

填写信息,将 zabbix-agent 节点添加到被监控机器,然后单击下方“添加”按钮

image-20230723173955303

添加完毕后如图

image-20230723174040393

添加监控项,单击Zabbix agent名称,然后单击模板标签,进行添加模板操作界面,如图

image-20230723162120282

单击图中的选择按钮,进行监控模板添加,在跳转界面勾选用户想要监控的复选框,然后单击下方选择按钮

image-20230723162732387

选择完模板后,如图,单击添加按钮,显示链接的模板,然后单击更新按钮

image-20230723162908359

单击更新按钮后,zabbix-agent 节点被添加到监控中

image-20230723175456300

(5)图形乱码解决

image-20230723180758641

image-20230723180834218

解决方法

1. 安装字体
[root@zabbix-server ~]# yum install -y wqy-microhei-fonts
[root@zabbix-server ~]# cp -rf /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf 
cp:是否覆盖"/usr/share/fonts/dejavu/DejaVuSans.ttf"? Y

image-20230723181123424

(6)发送告警到邮箱

创建动作

配置→动作→创建动作

image-20230723185732970

名称为send_Email,条件添加触发器,所有触发器内容

image-20230723185846638

添加操作

image-20230723190117065

image-20230723190153901

image-20230723190204385

image-20230723190223639

邮件发件人

准备一个邮箱这里使用的是QQ邮箱

点击设置

image-20230415205821885

点击账户

image-20230415205918003

往下滑找到 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

开启服务

image-20230415210442458

可能会弹出一个绑定手机号的先绑定手机号

image-20230415210527719

绑定成功后会出现授权码

image-20230415210927897

打开zabbix Web页面

点击管理→报警媒介类型→点击Email

image-20230723192731581

测试

image-20230723191602890

image-20230723193221414

发送成功

image-20230723193233742

image-20230723201152103

用户收件人

管理→用户→点击Admin→选择报警媒介

image-20230723193641448

image-20230723193746077

点击更新

image-20230723193817008

测试

查看触发器

image-20230723200853926

[root@zabbix-agent boot]# df -h /boot
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda1      1014M  151M  864M   15% /boot

我们给/boot目录增加内存压力测试是否发送邮件

[root@zabbix-agent boot]# dd if=/dev/zero of=csq bs=1M count=800
记录了800+0 的读入
记录了800+0 的写出
838860800字节(839 MB)已复制,0.495063 秒,1.7 GB/秒

image-20230723200948615
将创建的文件删除查看问题是否解决
image-20230723201048383

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

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

相关文章

行为型模式 - 访问者模式

概述 定义: 封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。 结构 访问者模式包含以下主要角色: 抽象访问者(Visitor)角色:定义了对每一个元素&…

通过自动化单元测试的形式守护系统架构

目录 0前言 1 背景 2 为什么选择 Archunit 3 Archunit 是什么 4 引入 Archunit 4.1 开始就是如此简单 4.2 如何组织架构规则 4.3 团队如何规范化 0前言 通过自动化单元测试的形式守护系统架构是一种有效的方式,可以确保系统在不断演进和修改的过程中保持稳…

关于Swift中闭包和OC中block对局部变量基本数据类型值的捕获

翻了很多文章,发现关于Swift闭包关于上下文变量捕获这块,都没有说的很详细,或者Swift2这样的老版本已经不适用了,问了GPT也是和自己实验的结果不一样,记录下来。 一:OC的block 首先,回顾一下O…

java本地socket服务端暴露至公网访问【内网穿透】

前言 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于恒川的日常汇报系列,大家有兴趣的可以看一看 📘相关专栏C语言初…

JavaScript中truthy(真值)或者Falsy(假值)

● 在JavaScript中,有五个值是falsy ○ 0 ○ ’ ’ ○ undefined ○ null ○ NaN 除此之外,任何不是空值的都是真值; 假值是什么意思呢?就是转换为布尔值都是false,反则就是true 例如: console.log(Boole…

[ 容器 ] Docker 的数据管理

目录 一、Docker 的数据管理1.1 数据卷2. 数据卷容器 二、 端口映射三、容器互联(使用centos镜像)四、Docker 镜像的创建1.基于现有镜像创建2.基于本地模板创建3.基于Dockerfile 创建3.1 联合文件系统(Unio…

【Matlab】基于遗传算法优化 BP 神经网络的时间序列预测(Excel可直接替换数据)

【Matlab】基于遗传算法优化 BP 神经网络的时间序列预测(Excel可直接替换数据) 1.模型原理2.文件结构3.Excel数据4.分块代码4.1 arithXover.m4.2 delta.m4.3 ga.m4.4 gabpEval.m4.5 initializega.m4.6 maxGenTerm.m4.7 nonUnifMutation.m4.8 normGeomSel…

【Linux从入门到精通】进程的控制(进程退出+进程等待)

本篇文章主要讲述的是进程的退出和进程等待。希望本篇文章的内容会对你有所帮助。 文章目录 一、fork创建子进程 1、1 在创建子进程中操作系统的作用 1、2 写时拷贝 二、进程终止 2、1 常见的进程退出 2、2 进程的退出码 2、2、1 运行结果正确实例 2、2、2 运行结果不正确实例…

怎样原生制作lis的CentOS容器镜像

本文介绍从一个空白的裸机CentOS自己构造检验允许的docker环境。来达到运行环境的高度定制,而不是只能依赖VS或者微软或者数据库厂商提供的镜像当做基础制作。更容易理解基础原理。最终输出产物为lisnew.tar,一个开箱即用的lis运行环境。 制作的整个过程…

1 快速构建mybatis项目

1.1 使用Maven的quickstart框架 注意是不出现w的quickstart&#xff1a; 1.2 加入依赖 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</s…

AIGC分享交流平台、GPT-4、GPT实时联网、Claude

拥有无限畅谈的AI个人助理&#xff0c;提高效率和创造力&#xff0c;引领未来的智能生活&#xff1b; 不仅承载着最前沿的科技理念&#xff0c;更集成了对人工智能可能性的深度理解。 已支持基于GPT、Claude等主流大模型的对话内容生成、支持GPT联网查询实时信息&#xff1b;基…

软件外包开发代码管理工具

在多人开发的软件中必然需要软件代码管理工具来协助&#xff0c;软件代码管理工具主要包括版本控制系统和代码仓库。以下是一些常见的软件代码管理工具&#xff0c;以及它们的一些主要特点&#xff0c;这些代码管理工具根据实际需求和开发团队的大小、目标和需求&#xff0c;都…

Jenkins环境配置篇-邮件发送

作为持续集成的利器Jenkins已经得到了广泛地应用&#xff0c;仅仅作为一个工具&#xff0c;Jenkins已然有了自己的生态圈&#xff0c;支持其的plugin更是超过1300。在实际中如何使用以及如何更好地使用jenkins&#xff0c;一直是大家在实践并讨论的。本系列文章将会从如何使用j…

HTTP中GET请求和POST请求的区别

前言 HTTP&#xff08;超文本传输协议&#xff09;是用于在 Web 浏览器和 Web 服务器之间传输数据的协议。在 HTTP 中&#xff0c;GET 和 POST 是两种常见的请求方法。一般我们在浏览器输入一个网址访问网站都是 GET 请求&#xff1b;在 FORM 表单中&#xff0c;可以通过设置 …

文件被识别为病毒,被删除,如何解决

我们的文件有时候有用&#xff0c;但是电脑却识别为病毒&#xff0c;直接给我删除掉了&#xff0c;这让人是真的很XX&#xff0c;那该怎么办呐。 我最近用了这个方法很多次&#xff0c;蛮好用&#xff0c;分享给大家&#xff01; 1、先找到安全中心 2、找不到排除项 3、点击添…

详细总结Webpack5的配置和使用

打包工具 使用框架&#xff08;React、Vue&#xff09;&#xff0c;ES6 模块化语法&#xff0c;Less/Sass 等 CSS预处理器等语法进行开发的代码要想在浏览器运行必须经过编译成浏览器能识别的 JS、CSS 等语法&#xff0c;才能运行。 所以需要打包工具帮我们做完这些事。除此之…

面试 | 双法妙解压缩字符串【遍历统计 + 双指针】

一、题目描述 原题传送门 二、思路分析 首先我们来分析一下解决本题所需要的思路 题目的意思很简单&#xff0c;就是统计原本的字符串中的每个字符出现的次数&#xff0c;然后以【字符&#xff0c;出现的次数】这样的结构来字符串&#xff0c;以起到一个压缩的效果&#xff0c…

概率论和随机过程的学习和整理--番外16,N合1的合成问题的求平均个数,次数,阶数

目录 1 问题 2 用条件期望&#xff0c;求合成的次数 2.1 思路1 2.2 思路2 3 用条件期望&#xff0c;求合成的个数 3.1 令X表示用材料1往上合成时&#xff0c;合成材料2的个数 3.2 令Y表示用材料1往上合成时&#xff0c;合成材料3的个数 4 用条件期望&#xff0c;求合成…

【算法基础:数学知识】4.4 快速幂

文章目录 快速幂例题列表875. 快速幂⭐⭐⭐⭐⭐&#xff08;重要&#xff01;&#xff09;代码写法1——递归代码写法2——迭代递归写法 与 迭代写法的 对比 876. 快速幂求逆元&#x1f6b9;&#xff08;需要理解逆元的概念&#xff09;TODO乘法逆元介绍解法代码 快速幂 https…

[MySQL]MySQL用户管理

[MySQL]MySQL用户管理 文章目录 [MySQL]MySQL用户管理1. 用户的概念2. 用户信息3. 创建用户4. 修改用户密码5. 删除用户6. MySQL中的权限7. 给用户授权8. 回收权限 1. 用户的概念 MySQL中的用户分为超级用户&#xff08;root&#xff09;和普通用户。超级用户的操作是不受权限…