初始监控工具--zabbix和安装

news2025/2/5 17:52:18

一、Zabbix

1. 监控系统的必要性

作为一个技术人员,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果和网站的健康状态。

2. 监控软件的作用

利用一个优秀的监控软件,我们可以:

● 通过一个友好的界面进行浏览整个网站所有的服务器状态

● 可以在 Web 前端方便的查看监控数据

● 可以回溯寻找事故发生时系统的问题和报警情况

3. Zabbix的定义

● zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

● zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

● zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。

● zabbix server 可以通过 SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能, 它可以运行在 Linux 等平台上。

● zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。

3.1 zabbix的主要特点

  • 安装配置简单,学习成本低

  • 支持多语言,包括中文

  • 免费开源

  • 自动发现服务器与网络设备

  • 分布式监控以及web集群中的管理功能

  • email功能通知,短信,语言,微信,钉钉

3.2 监控主要功能

内存使用、磁盘使用率、网络状态、CPU 负载、业务监控、端口监视、日志监视、插件开发自定义

3.3 zabbix运行机制

zabbix-agent 数据采集---》zabbix-server(数据分析/报警)---》数据库(数据存储)---》zabbix-web(数据展示)

3.4 监控模式

被动监控:server向agent发起连接

主动监控:agent向server发起连接

3.5 zabbix架构

3.5.1 server-client

server-client 第一种架构也就是zabbix最简单的架构,监控机器和被监控机器之间不经过任何处理,直接由zabbix-server和zabbix-client之间进行数据交换。适用于网络比较简单,尽量在局域网内,设备比较少的监控环境使用

3.5.2 server-proxy-client

用于跨机房跨网络的中型架构--大于500台以上使用

其中proxy和server,client之间沟通的一个桥梁,proxy本身有前端,而且本身不存放数据,只是将agent发来的数据暂时存放,而后再交给server,这种架构经常是master-proxy-client,一般适用于跨机房,跨网络的中型网络监控架构,

3.5.3 master-node-client

Master-Node-Client该架构是Zabbix最复杂的监控架构,适用于跨网络跨机房设备多的大型环境。每个Node同时接一个Sever端,Node下面可以接Proxy端,也可以直接连接Client,Node有自己的配置文件和数据库,其要做的是将配置信息和监控数据向Master进行数据同步,Master故障损坏对Node其下架构的完整性无任何影响

4. Zabbix的监控原理

zabbix agent安装在被监控的主机上,zabbix agent负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像。当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、install 等)。

5. Zabbix常见的五个程序、

zabbix_server、zabbix_agent、zabbix_proxy、zabbix_get、zabbix_sender 等。

5.1 zabbix server

zabbix 服务端守护进程,其中 zabbix_agent、zabbix_get、zabbix_sender、zabbix_proxy 的数据最终都提交给 zabbix server。

5.2 zabbix agent

客户端守护进程,负责收集客户端数据,例如:收集 CPU 负载、内存、硬盘使用情况等。

5.3 zabbix proxy

zabbix 分布式代理守护进程,通常大于 500 台主机,需要进行分布式监控架构部署。

5.4 zabbix get

zabbix 数据接收工具,单独使用的命令,通常在 server 或者 proxy 端执行获取远程客户端信息的命令。

5.5 zabbix sender

zabbix 数据发送工具,用户发送数据给 server 或 proxy 端,通常用户耗时比较长的检查。

二、安装部署Zabbix 5.0

1. 部署Zabbix服务端

1.1 服务器配置

服务器配置ip地址主机名主要软件
zabbix-server内存至少2G,推荐4G192.168.80.115zabbix_serverzabbix-server-mysql、zabbix-agent

1.2 服务器环境

[root@localhost ~]# hostnamectl set-hostname zabbix_server
[root@localhost ~]# su
[root@zabbix_server ~]# systemctl disable --now firewalld
[root@zabbix_server ~]# setenforce 0
setenforce: SELinux is disabled

1.3 获取zabbix的下载源

[root@zabbix_server ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

1.4 更换zabbix.repo为在线源(这里使用阿里源)

[root@zabbix_server ~]# cd /etc/yum.repos.d/
[root@zabbix_server yum.repos.d]# sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
[root@zabbix_server yum.repos.d]# yum clean all && yum makecache

1.5 下载安装zabbix以及组件

[root@zabbix_server yum.repos.d]# yum install -y zabbix-server-mysql zabbix-agent
[root@zabbix_server yum.repos.d]# yum install -y centos-release-scl

安装SCL(Software Collections),便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /opt/rh 目录下。

 

1.6 修改zabbix-front前端源,安装zabbix前端环境到scl环境下

[root@zabbix_server yum.repos.d]# vim zabbix.repo
 
······
[zabbix-frontend]
##11行,开启安装源
enabled=1
 
[root@zabbix_server yum.repos.d]# yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
[root@zabbix_server yum.repos.d]# cd /opt/rh
[root@zabbix_server rh]# ls
rh-php72

1.7 安装zabbix所需的数据库并启动

[root@zabbix_server rh]# yum install -y mariadb-server mariadb
[root@zabbix_server rh]# systemctl enable --now mariadb

1.8 初始化数据库并设置密码

[root@zabbix_server yum.repos.d]# mysql_secure_installation
 
Enter current password for root (enter for none): 
#使用root的当前密码登录,回车
Set root password? [Y/n] y
#是否设置root密码,y
New password: 
#设置密码
Re-enter new password: 
#再次输入密码
Remove anonymous users? [Y/n] y
#移除匿名用户,y
Disallow root login remotely? [Y/n] y
#禁止root远程登录,y
Remove test database and access to it? [Y/n] y
#移除test数据库,y
Reload privilege tables now? [Y/n] y
#重新加载权限表,y

1.9 添加数据库用户,以及zabbix所需的数据库权限

[root@zabbix_server yum.repos.d]# mysql -u root -p
Enter password: 
 
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
#创建zabbix数据库,并使用utf8字符编码
Query OK, 1 row affected (0.00 sec)
 
MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'%' identified by 'zabbix';
#zabbix用户在任何主机拥有zabbix库中的全部权限,密码为zabbix
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [(none)]> flush privileges;
#刷新权限
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zabbix             |
+--------------------+
4 rows in set (0.00 sec)
 
MariaDB [(none)]> use zabbix;
Database changed
MariaDB [zabbix]> show tables;
Empty set (0.00 sec)
 

1.10 导入数据库信息

[root@zabbix_server yum.repos.d]# rpm -ql zabbix-server-mysql 

[root@zabbix_server yum.repos.d]# zcat /usr/share/doc/zabbix-server-mysql-5.0.16/create.sql.gz | mysql -uroot -p123456 zabbix
[root@zabbix_server yum.repos.d]# mysql -u root -p
Enter password: 
 
MariaDB [(none)]> show databases;

MariaDB [(none)]> use zabbix;

MariaDB [zabbix]> show tables;

zcat命令用于不真正解压缩文件,就能显示压缩包中文件的内容的场合。zcat是一个命令行实用程序,用于查看压缩文件的内容,而无需对其进行解压缩。 它将压缩文件扩展为标准输出,使您可以查看其内容。 另外,zcat与运行gunzip -c命令完全相同。

1.11 修改zabbix_server配置文件

[root@zabbix_server yum.repos.d]# vim /etc/zabbix/zabbix_server.conf 
 
##124行,取消注释,指定zabbix数据库的密码
DBPassword=zabbix

1.12 修改zabbix的php配置文件

[root@zabbix_server yum.repos.d]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 
 
##24行,取消注释,修改时区
php_value[date.timezone] = Asia/Shanghai

1.13 启动zabbix相关服务

[root@zabbix_server yum.repos.d]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@zabbix_server yum.repos.d]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

1.14 浏览器访问

浏览器访问:http://192.168.80.115/zabbix 若linux虚拟机中的firefox浏览器无法连接到mysql,可使用宿主机访问

点击下一步,设置数据库的密码 zabbix

安装完成后,默认的登录账号和密码为:Admin/zabbix

登录成功

设置文件界面:点击左边菜单栏的【User settings】,【Language】选择 Chinese(zh_CN),再点击 Update 更新。

img

1.15 解决zabbix_serber的Web乱码问题

主机-图形查看,发现很多乱码

img

[root@zabbix_server yum.repos.d]# yum install -y wqy-microhei-fonts
[root@zabbix_server yum.repos.d]# \cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

回到Web页面,检查乱码是否仍然存在

img

已无乱码,问题解决。

2. 部署zabbix客户端

2.1 服务器配置

服务器ip地址主机名主要软件
zabbix-agent192.168.80.111zabbix_agentzabbix-agent2
zabbix 5.0 版本采用 golang 语言开发的新版本客户端 agent2 。
zabbix 服务端 zabbix_server 默认使用 10051 端口,客户端 zabbix_agent2 默认使用 10050 端口。

2.2 服务器环境

[root@localhost ~]# hostnamectl set-hostname zabbix_agent
[root@localhost ~]# su
[root@zabbix_agent ~]# systemctl disable --now firewalld
[root@zabbix_agent ~]# setenforce 0

2.3 服务端和客户端配置时间同步

服务端

[root@zabbix_server ~]# yum install -y ntpdate
[root@zabbix_server ~]# ntpdate -u ntp.aliyun.com

客户端

[root@zabbix_agent ~]# yum install -y ntpdate
[root@zabbix_agent ~]# ntpdate -u ntp.aliyun.com

2.4 客户端配置时区,与服务器保持一致

[root@zabbix_agent ~]# mv /etc/localtime{,.bak}
[root@zabbix_agent ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2.5 设置zabbix的下载源,安装zabbix-agent2

[root@zabbix_agent ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 
[root@zabbix_agent ~]# sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
[root@zabbix_agent ~]# yum install -y zabbix-agent2

2.6 修改agent2配置文件

[root@zabbix_agent ~]# vim /etc/zabbix/zabbix_agent2.conf 
 
##80行,指定zabbix服务端的IP地址
Server=192.168.80.115
##120行,指定zabbix服务端的IP地址
ServerActive=192.168.80.115
##131行,指定当前zabbix客户端的主机名
Hostname=zabbix_agent

2.7 启动zabbix-agent2

[root@zabbix_agent ~]# vim /etc/zabbix/zabbix_agent2.conf 
[root@zabbix_agent ~]# systemctl enable --now zabbix-agent2.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent2.service to /usr/lib/systemd/system/zabbix-agent2.service.
[root@zabbix_agent ~]# netstat -natp | grep zabbix
tcp6       0      0 :::10050                :::*                    LISTEN      26725/zabbix_agent2 

2.8 在服务端验证zabbix-agent2的连通性

[root@zabbix_server ~]# yum install -y zabbix-get
#安装zabbix主动获取数据的命令
[root@zabbix_server ~]# zabbix_get -s '192.168.80.111' -p 10050 -k 'agent.ping'
#返回1即连通成功,返回0则连通失败
1
[root@zabbix_server ~]# zabbix_get -s '192.168.80.111' -p 10050 -k 'system.hostname'
#显示客户端的主机名
zabbix_agent

2.9 在web页面中添加agent主机

1、点击左边菜单栏【配置】中的【主机】,点击【创建主机】

2、【主机名称】设置成 zabbix_agent

     【可见的名称】设置成 zabbix_agent-192.168.80.111

     【群组】选择 Linux servers

    【Interfaces】的【IP地址】设置成 192.168.80.111

    再点击上方菜单栏【模板】

3、【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent,点击 【添加】

img

img

img

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

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

相关文章

Qt 创建控件的两种方式

目录 Qt 创建控件的两种方式 通过ui界面创建控件 通过代码方式创建控件 Qt 创建控件的两种方式 通过ui界面创建控件 这里当然我们是需要先有一个项目的,按照我们之前创建项目的步骤,我们可以先创建一个 Widget 的项目,但是 MainWindow 也…

【代码随想录】day46:单词拆分,多重背包

单词拆分 1.把单词看成物品,字符串看成背包—>完全背包问题 2.排列问题:因为物品之间的组成顺序很重要,所以需要考虑顺序 。因为"apple" “apple” “pen” 或者 “pen” “apple” “apple” 是不可以的 d[j]:字符串长度为…

LD3320语音模块开发以及未来拿到其他模块的开发方式

当我们拿到一块模块进行开发的时候,一定要拿到配套的使用手册,不然在短时间内根本下不了手 一、使用source Insight来阅读源码 1.建立文件夹 2. 在source Insight放入该文件 3.添加源码 4.解决Source Insight乱码的问题 5.让各个代码模块之间有关联 二、…

数据结构面试题(常见概念题)

什么是 AVL 树? AVL 树是平衡二叉查找树,增加和删除节点后通过树形旋转重新达到平衡。右旋是以某个节点为中心,将它沉入当前右子节点的位置,而让当前的左子节点作为新树的根节点,也称为顺时针旋转。同理左旋是以某个节…

SpringBoot通过UUid实现文件上传接口及问题解决

在controller中,添加对应的方法体: PostMapping("/upload")ResponseBodypublic ApiRestResponse upload(HttpServletRequest httpServletRequest, RequestParam("file")MultipartFile file) throws IOException {String fileName f…

国外新闻媒体稿件宣发:海外pr发稿干货秘籍-大舍传媒

一、了解目标市场和受众 发布新闻稿件的首要步骤是了解你的目标市场和受众。在撰写新闻稿件之前,你需要研究你的目标市场,了解他们的需求、兴趣和习惯。你还需要了解你的受众,包括他们的年龄、性别、职业、地理位置和媒体使用习惯等。这些信…

基于springboot实现在线考试系统设计【项目源码+论文说明】

基于springboot实现在线考试管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于JavaWeb技术的在线考试系统设计与实现的开发全过程。通过分析基于Java Web技术的在线考试系统设计与实现管理的不…

数据结构复习指导之绪论(算法的概念以及效率的度量)

文章目录 绪论: 2.算法和算法评价 知识总览 2.1算法的基本概念 知识点回顾与重要考点 2.2算法效率的度量 知识总览 1.时间复杂度 2.空间复杂度 知识点回顾与重要考点 归纳总结 绪论: 2.算法和算法评价 知识总览 2.1算法的基本概念 算法( Al…

Spring Boot 整合 Redis 集群详解

前言: 项目中需要使用 Redis 做缓存数据库,本文分享一下 Spring Boot 项目集成 Redis 的过程以及踩过的坑。 Spring Boot 集成 Redis 可以分为三大步,如下: 在 proerties 或者 yml 文件中添加 redis 和 lettuce 配置。项目 pom…

[已解决]问题:root.users.hdfs is not a leaf queue

问题:root.users.hdfs is not a leaf queue CDH集群报错: Exception in thread “main” org.apache.hadoop.yarn.exceptions.YarnException: Failed to submit application_1713149630679_0005 to YARN : root.users.hdfs is not a leaf queue 思路 …

mybatis-puls 条件分析插件

一,能做什么 我们在平时的开发中,会遇到一些慢sql. MP也提供了性能分析插件,如果超过这个时间就停止运行! 二,如何实现 2.1引入条件分析插件 //性能分析BeanProfile({"dev","test"}) //设置dev 和 test环境开启public Performanc…

RAG学习笔记系列(三)

RAG 中的 Agent Agent Agent 是使用 LLM 进行推理,为其提供一系列工具完成一个任务。 工具包括一系列定义好的函数,比如:代码函数、外部API、其他的 Agent。 OpenAI 助理 OpenAI 助理基本上实现了很多工具供 LLM 选择,比如&a…

一文读懂BTC生态新贵Giants Planet,将L2与现实世界整合

前言 获新加坡主权基金鼎力扶持,Giants Planet将引爆Web3新风向。 随着年前BTC现货 ETF 的获批,加密世界涌入大量的资金,BTC价格也成功突破新高。与之相比,传统金融的弊端日益凸显,且大部分资产涨幅都低于BTC&#xf…

最新IntelliJ IDEA 2024.1 安装和快速配置教程

IntelliJ IDEA 2024.1 最新版如何快速入门体验?IntelliJ IDEA 2024.1 安装和配置教程 图文解说版 文章目录 IntelliJ IDEA 2024.1 最新版如何快速入门体验?IntelliJ IDEA 2024.1 安装和配置教程 图文解说版前言 第一步: IntelliJ IDEA 2024.1安装教程第 0 步&…

Linux入门(Linux介绍,安装,常用命令,防火墙的设置,注意事项)

目录 一、Linux介绍 1. Linux简介 1 什么是Linux 2 Linux的应用 3 为什么要学习Linux 2. Linux分类 1 按照市场需求分 2 按照原生程度分 3.小结 二、Linux安装 1. vmware介绍 2. 安装VMWare 3. 安装CentOS 4. 登录查看ip 5. 远程连接工具 1 使用FinalShell连接L…

一次网卡驱动BUG故障的排错历程

前言 在日常运维中,总会遇到一些棘手的故障或问题,尤其面临多系统融合的兼容性或一些融合节点可能存在未知bug等方面,排错难度都会增加。 本文将从一次小事件为入口进行延伸,将宿主机esxi基础系统的多融合节点故障的排错历程展开…

[linux]进程控制——进程终止

一、main函数的返回值 我们在编写C语言的程序时,通常会这样写: int main() {return 0; } 那么我们为什么要返回(return)0 呢? 其实,main函数也是一个函数,它也会被调用,所以谁调…

go限流、计数器固定窗口算法/计数器滑动窗口算法

go限流、计数器固定窗口算法/计数器滑动窗口算法 一、问题 问题1:后端接口只能支撑每10秒1w个请求,要怎么来保护它呢? 问题2:发短信的接口,不超过100次/时,1000次/24小时,要怎么实现&#xff…

RN向上向下滑动组件封装(带有渐变色)

这段组件代码逻辑是出事有一个View和下面的块,下面的块也就是红色区域可以按住向上向下滑动,当滑动到屏幕最上面则停止滑动,再向上滑动的过程中,上方的View的背景色也会有个渐变效果,大概逻辑就是这样 代码如下 import React, {useEffect, useRef, useState} from react; impo…

这样的看板你喜欢吗?

看板这个功能很多项目管理软件都有这个功能。基本上都是分类列表,大致分为 已完成、开发中、规划中 分类也是可以自己添加的 每个分类就是一个列表。 但是我个人觉得相对于文字来说人对图像更敏感,项目管理中一个重要的因数时间在上面看板并没与体现出来…