检测 - 主机 - 选择我们的zabbix-server - 鼠标单击然后选择配置

更换agent的地址为zabbix-server的地址
因为我们此刻是在zabbix-server的机器上安装了一台zabbix-agent,目的是为了检测我们zabbix-server所在机器的状态。
- 如果大家将zabbix-agent安装在了其他机器上,更换为对应机器ip地址即可

3. 等待几分钟刷新页面即可
bug1:
如果发现可用性仍然没有变成绿色,并且页面报错
Asuming that agent dropped connect because of access permision,表明是我们没有开启对应的权限
- 首先查看是否关闭了防火墙
- 关闭防火墙命令:systemctl stop firewalld
- 如果使用的是云服务器,查看云服务器的对应安全组策略是否开启
- 权限不够:修改zabbix-agent的配置文件
- vim /etc/zabbix/zabbix_agentd.conf
- 找到Server位置,将其修改为自己server所在ip地址加网段,如:172.159.92.3/24;如果为了方便也可以将其修改为0.0.0.0/0(代表运行所有的服务器访问)
完成之后,:wq保存退出,systemctl restart zabbix-agent.service重启zabbix-agent,等待几分钟之后在刷新zabbix的web页面即可- 如果上述方法都不行,就对应查看日志报错信息,来对应处理:
查看日志信息:tail -f /var/log/zabbix/zabbix_agentd.log
- 报错信息:Unable to connect to [127.0.0.1]:10051 [cannot connect to [[127.0.0.1]:10051]: [111] Connection refused]
- 表明是服务器地址配置错了,
vim /etc/zabbix/zabbix_agentd.conf,将配置文件中的ServerActive更改为zabbix-server的地址,如:10.253.50.145,记住只需要修改ip,不用携带port端口
bug2:
如果查询agent的日志文件发现报错信息:
23946:20230722:121107.962 no active checks on server [10.253.50.145:10051]: host [Zabbix server] not found
- 查询日志文件命令:tail -f /var/log/zabbix/zabbix_agentd.log
- 解决办法:修改agent配置文件中的Hostname,
- 查看配置文件中的HostName:
cat /etc/zabbix/zabbix_agentd.conf | grep Hostname- 在zabbix web页面Monitoring->Configuration->Hosts 页面更改Host name和zabbix_agentd.conf里面的Hostname一样。
- 重启zabbix-agent
需求实战(HTTP代理+zabbix5)
客户需要监控我方服务的状态,因此我方只需要提供一个自定义模板即可(xml文件)+自定义告警模板即可
- 方案实现:我方暴露一个API接口给Zabbix,通过HTTP代理的方式用于获取数据。【因此无需安装zabbix-agent】
①环境搭建:zabbix-server、web、mysql
- 安装并启动docker
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install docker
systemctl start docker
拉取mysql和zabbix的docker,因为zabbix 6以上,需要centos 8,受限于环境,这里演示zabbix 5版本的
- 拉取镜像并创建数据卷
# 拉取镜像
docker pull mysql:5.7
docker pull docker.io/zabbix/zabbix-web-nginx-mysql:centos-5.4-latest
docker pull docker.io/zabbix/zabbix-server-mysql:centos-5.4-latest
# 拉取完成后,开始安装
docker volume create -d local mysql_data #存放mysql数据
docker volume create -d local mysql_logs #存放mysql日志
docker volume create -d local mysql_conf #存放mysql配置文件
- 创建对应容器(mysql、zabbix-server、zabbix-web)
docker run --name mysql-server -t \
-v mysql_data:/var/lib/mysql \
-v mysql_logs:/var/log/mysql \
-v mysql_conf:/etc/mysql \
-e MYSQL\_DATABASE="zabbix" \
-e MYSQL\_USER="zabbix" \
-e MYSQL\_PASSWORD="123456" \
-e MYSQL\_ROOT\_PASSWORD="123456" \
--restart=unless-stopped \
-d mysql:5.7 \
--character-set-server=utf8 \
--collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
docker volume create -d local zabbix_server
docker run --name zabbix-server-mysql -t \
-v zabbix_server:/etc/zabbix \
-e DB\_SERVER\_HOST="mysql-server" \
-e MYSQL\_DATABASE="zabbix" \
-e MYSQL\_USER="zabbix" \
-e MYSQL\_PASSWORD="123456" \
-e MYSQL\_ROOT\_PASSWORD="123456" \
--link mysql-server:mysql \
--restart=unless-stopped \
-p 10051:10051 \
--hostname zabbix-server \
-d zabbix/zabbix-server-mysql:centos-5.4-latest
docker run --name zabbix-web-nginx-mysql -t \
-e PHP\_TZ="Asia/Shanghai" \
-e ZBX\_SERVER\_HOST="zabbix-server-mysql" \
-e DB\_SERVER\_HOST="mysql-server" \
-e MYSQL\_DATABASE="zabbix" \
-e MYSQL\_USER="zabbix" \
-e MYSQL\_PASSWORD="123456" \
-e MYSQL\_ROOT\_PASSWORD="123456" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 80:8080 \
--restart unless-stopped \
--hostname zabbix-web \
-d zabbix/zabbix-web-nginx-mysql:centos-5.4-latest
- 创建好后,访问http://ip/zabbix。用Admin,zabbix即可登录。注意Admin是大写开头

②创建自动发现、自定义模板
- 自动发现
因为客户部署我方的机器过多,所以采用zabbix的自动发现来自动发现主机
- 创建自动发现(填写对应ip范围及协议端口)
- 配置关联动作(将发现的主机添加到主机组、并添加到我方提供给客户的自定义模板)
- 自定义模板(Template)
我方提供给客户所需要的模板,用于监控指定服务的数据(调用我方提供的接口获取所需要监控的信息)
- 自定义模板下创建监控项,如:我方接口返回多个Agent信息,那么就创建一个监控项,叫Agent Item
- 在自定义模板Template下创建自动发现(HTTP代理)、监控项原型(agent的信息等,如:name、cpu useage)、触发器【根据自定义模板下的HTTP代理请求回来的数据,自动创建多个Agent,每个Agent包含对应监控项原型:name、cpu useage等】,当采集到的数据不合理时,则触发对应的触发器
完整步骤
1. 配置-模板-创建模板

2. 将模板加入templates组,配置模板宏(方便后续自动发现时,http代理使用)

3. 在我们新创建好的模板Ziyi Template下创建自动发现规则


在自动发现规则这里我们引用开始创建好的宏:

根据自己接口返回数据的格式,判断是否需要预处理:

比如我接口返回的是
{
"code":1,
"msg":"success",
"content":[
{
"id":1,
"name":"jack"
},
{
"id":2,
"name":"tom"
}
]
}
//那么我通过$.content预处理之后就可以获取到:
[
[
{
"id": 1,
"name": "jack"
},
{
"id": 2,
"name": "tom"
}
]
]
//不过zabbix自带一层for处理,因此我们可以通过$.content.name直接遍历出每个name

4. 创建监控项

根据http代理获取对应监控项的值:

5. 创建自动发现的监控项原型
自动发现-创建监控项原型
- 配置-模板-自动发现
点击创建监控项原型(配合自动发现规则的宏使用可自动动态创建出监控的数据项):


修正:上面的键值应满足对应规则,样例:
键值(合法):ziyi.content.[{#USER_NAME}]
主要项选择我们第4步创建好的监控项
User
6. 配置监控项原型的预处理
通过配置预处理步骤,来判断什么时候去获取值

tip:jsonpath用法:

jsonPath样例:https://www.cnblogs.com/lxmtx/p/12916659.html
7. 添加主机并应用我们的模板
监测 - 主机 - 创建主机
8. 观察数据
监测 - 最新数据


9. 创建触发器(可选)
如果我们希望在数据异常时,在页面上显示告警,那么可以通过触发器实现
- 配置-模板-自动发现-触发器类型-创建触发器原型
配置告警规则:
配置消警:
③邮件告警
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。





既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)


最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow

第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
本文详细介绍了如何使用Docker快速搭建Zabbix环境,包括zabbix-server、web和mysql,并展示了创建自动发现和自定义模板的步骤。在过程中,还解决了可能出现的配置问题,如权限和防火墙设置,以及邮件告警的配置。此外,讨论了通过HTTP代理获取监控数据的方案,简化了在客户环境中部署的复杂性。









8924

被折叠的 条评论
为什么被折叠?



