部署zabbix分布式监控

2023-11-05

使用zabbix部署分布式监控

一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。



前言

zabbix的主要特点:

  • 安装与配置简单,学习成本低
  • 支持多语言(包括中文)
  • 免费开源
  • 自动发现服务器与网络设备
  • 分布式监视以及WEB集中管理功能
  • 可以无agent监视
  • 用户安全认证和柔软的授权方式
  • 通过WEB界面设置或查看监视结果
  • email等通知功能。

一、基础环境搭建

zabbix分布式监控工作流程如下图:
在这里插入图片描述

1.地址、角色分配

使用1台centos8作为zabbix-server,3台centos7,其中1台作为zabbix-proxy,其他两台作为zabbix-agent。
server监控agent1和proxy,proxy监控agent2具体配置如下:

主机名称 IP地址 角色
zbx.server.cn 192.168.115.128 server
zbx.proxy.cn 192.168.115.129 proxy
zbx.agent1 192.168.1115.131 agent
zbx.agent2 192.168.115.132 agent

2.时间服务器设置

时间服务只需要在server端和proxy端设置
这里使用的时间服务器由阿里提供(ntp1.aliyun.com)
centos8配置如下:

#在centos8中使用chrony插件
vim /etc/chrony.conf
...
#pool 2.centos.pool.ntp.org iburst
server ntp1.aliyun.com iburst
...

centos7配置如下:

yum install ntp ntpdate -y
ntpdate ntp1.aliyun.com

3.引入yum源

由于我们要使用centos7作为proxy代理所以要使用zabbix5.0的yum源(zabbix5.2的不支持centos7安装zabbix-proxy)
代码如下(示例):

#下载并安装zabbixyum源仓库
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all
#以上操作需要在4台机器上执行

4.所有机器关闭防火墙和 selinux

二、Server端

1.安装zabbix插件

代码如下(示例):

#使用yum方式安装插件
yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql zabbix-web zabbix-web-mysql

2.安装并设置数据库

1.创建mariadb.repo

vim /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB 
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64 
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB 
gpgcheck=1

也可以去官网下载所需安装包

2.修改mariadb的配置文件

vim /etc/my.cnf.d/server.cnf
	[mysqld]
    skip_name_resolve = ON          # 跳过主机名解析
    innodb_file_per_table = ON      # 开启独立表空间
    innodb_buffer_pool_size = 256M  # 缓存池大小
    max_connections = 2000          # 最大连接数
    log-bin = master-log            # 开启二进制日志

3.启动并初始化数据库

systemctl start mariadb
mysql_secure_installation

4.创建数据库并授权用户

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all on zabbix.* to 'zbxuser'@'localhost' identified by 'keer';

5.导入zabbix服务表;

利用create.sql.gz压缩文件

#这个压缩文件有zabbix-server-mysql提供
[root@zbx ~]# rpm -ql zabbix-server-mysql
/etc/logrotate.d/zabbix-server
/etc/zabbix/zabbix_server.conf
/usr/lib/.build-id
/usr/lib/.build-id/69
/usr/lib/.build-id/69/dcfe332bdfafaf33d1f61de905db4609e1577f
/usr/lib/systemd/system/zabbix-server.service
/usr/lib/tmpfiles.d/zabbix-server.conf
/usr/lib/zabbix/alertscripts
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql
/usr/share/doc/zabbix-server-mysql/AUTHORS
/usr/share/doc/zabbix-server-mysql/COPYING
/usr/share/doc/zabbix-server-mysql/ChangeLog
/usr/share/doc/zabbix-server-mysql/NEWS
/usr/share/doc/zabbix-server-mysql/README
/usr/share/doc/zabbix-server-mysql/create.sql.gz
/usr/share/doc/zabbix-server-mysql/double.sql
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix
解压后将其导入数据库
msyql -uroot -p zabbix < create.sql
Enter password:

3.配置zabbix-server

修改配置文件

vim /etc/zabbix/zabbix_server.conf
	ListenPort=10051            # 默认监听端口
	SourceIP=192.168.115.128     # 发采样数据请求的 IP
	DBHost=192.168.37.111       #数据库对外的主机
    DBName=zabbix               #数据库名称
    DBUser=zbxuser              #数据库用户
    DBPassword=keer             #数据库密码
    DBPort=3306                 #数据库启动端口

配置完成后启动zabbix-server

systemctl start zabbix-server

4.配置zabbix-agent

在zabbix默认是监听本地的,但是需要将zabbix-agent启动

systemctl restart zabbix-agent

5.配置web GUI

vim /etc/httpd/conf.d/zabbix.conf
···
	<IfModule mod_php5.c>
        php_value max_execution_time = 300
        php_value memory_limit = 128M
        php_value post_max_size = 16M
        php_value upload_max_filesize = 2M
        php_value max_input_time = 300
        php_value max_input_vars = 1000
        php_value always_populate_raw_post_data -1
    </IfModule>
···

修改php.ini文件

max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
date.timezone = Asia/Shanghai

启动httpd服务

systemctl start httpd

6.使用浏览器访问并设置初始化

使用浏览器访问http://192.168.115.128/zabbix
登陆名:Admin ,密码:zabbix(默认)
在这里插入图片描述
在这里插入图片描述
这里默认是英文界面在选择语言时可以设置为中文

三、Proxy端

1.安装zabbix-proxy需要的插件

zabbix-proxy-mysql zabbix-get zabbix-agent zabbix-sender

2.安装并设置数据库

这里可以采纳上面的过程

1.创建数据库与授权用户

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all on zbxproxydb.* to 'zbxproxyuser'@'192.168.115.%' identified by 'zbxproxypass';

2.初始化数据库与导入表

这里的初始化使用zabbix-proxy-mysql包里的schema.sql.gz步骤与上面相同

3.配置zabbix-proxy

vim /etc/zabbix/zabbix_proxy.conf
	Server=192.168.115.128       # server 的IP
	ServerPort=10051             # server 的端口

	Hostname=zbx.proxy.cn
	ListenPort=10051
	EnableRemoteCommands=1
	LogRemoteCommands=1
	# 数据库的配置
	DBHost=192.168.192.168.115.129
	DBName=zbxproxydb  
	DBUser=zbxproxyuser
	DBPassword=zbxproxypass
	ConfigFrequency=30  #这里设置30秒,默认3600s
	DataSenderFrequency=1  # 每一秒向server 端发一次数据,发送频度

开启zabbix-proxy服务

systemctl start zabbix-proxy

四、配置agent端

1.安装zabbix-agent

在两台agent主机上安装

yum install zabbix-agnet

2.配置zabbix-agent

首先配置被server直接监控的agent1主机

vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.115.128
ServerActive=192.168.115.128
Hostname=zbx.agent1.cn
LogFileSize=0

在agent1上启动zabbix-agent

systemctl start zabbix-agent

配置被proxy代理监控的agent2主机

vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.115.128,192.168.115.129
ServerActive=192.168.115.128,192.168.115.129
Hostname=zbx.agent2.cn
LogFileSize=0

五、使用浏览器监控主机

登陆后的界面如下:
在这里插入图片描述
创建两台主机agent1,agent2(使用代理)
在这里插入图片描述
在这里插入图片描述
分别创建监控项,这里为了好区别创建同样的监控项
在这里插入图片描述
在这里插入图片描述
然后分别创建图形,再创建聚合图形是否能够正常运行
在这里插入图片描述


总结

使用代理监控zabbix proxy,就是zabbix server的代理服务,它能帮助zabbix server采集数据,然后再统一的发送给zabbix server ;它的功能和zabbix server 很类似,zabbix server 能做到它几乎都能做;主要作用就是代理zabbix server ;
主要的目的是减轻zabbix-server的压力,proxy代替server去收集数据,然后将数据统一汇报给sever,避免server再向所有主机获取信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

部署zabbix分布式监控 的相关文章

  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • ALSA:snd_pcm_writei 调用时缓冲区不足

    当运行我最近从灰烬中带回来的旧程序时 我遇到了缓冲区不足的情况 该程序将原始声音文件完全加载到内存中 2100 字节长 525 帧 并准备 ALSA 进行输出 44 1khz 2 通道 有符号 16 位 if err snd pcm set
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • 调用 printf 系统子例程在汇编代码中输出整数错误[重复]

    这个问题在这里已经有答案了 来回 在windows7控制台窗口中运行gcc s2 asm 然后生成一个exe文件 运行a exe 然后崩溃 为什么 s2 asm 代码由以下源代码生成 int m m 1 iprint m s2 asm请参考
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • linux-x64 二进制文件无法在 linuxmusl-x64 平台上使用错误

    我正在安装Sharp用于使用 package json 的 Nodejs 项目的 docker 映像上的映像压缩包 当我创建容器时 我收到有关 Sharp 包的以下错误 app node modules sharp lib libvips
  • 如何在 Ubuntu 中创建公共 HTML 文件夹?

    简单的问题 但由于某种原因我无法在谷歌上找到确切的答案 我在 Slicehost 上安装了全新的 Ubuntu 并且想在我的主目录中为包含一堆静态 HTML 文件的简单网站创建一个公共目录 我该怎么做呢 只是打字的问题吗mkdir publ
  • Linux 上的 Pervasive ODBC 错误 [01000][unixODBC][驱动程序管理器]无法打开 lib '/usr/local/psql/lib/odbcci.so':找不到文件

    我正在尝试让 Pervasive v10 客户端 ODBC 在 Centos 6 上运行 据我所知 没有 64 位 ODBC 客户端 因此我必须使用 32 位客户端 我终于成功安装了它 但尝试使用时出现以下错误 isql v mydsn 0
  • 如何阻止ubuntu在使用apt安装或更新软件包时弹出“Daemons using outdatedlibraries”? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我最近新安装了 Ubuntu 22 04 LTS 我发现每次使用 apt 安装或更新软件包时 它都会询问我有关Which servic
  • 使用非规范地址检索内存数据会导致 SIGSEGV 而不是 SIGBUS

    我无法使用以下汇编代码产生 总线错误 这里我使用的内存地址不是合法的 规范地址 那么 我怎样才能触发该错误呢 我在带有 NASM 2 14 02 的 Ubuntu 20 04 LTS 下运行这段代码 但它会导致负载出现 SIGSEGV 分段
  • 添加文件时运行 shell 命令

    我的 Linux 机器上有一个名为 images 的文件夹 该文件夹连接到一个网站 该网站的管理员可以向该网站添加图片 但是 当添加图片时 我想要一个命令来运行调整目录中所有图片的大小 简而言之 我想知道当新文件添加到特定位置时如何使服务器
  • CMake 链接 glfw3 lib 错误

    我正在使用 CLion 并且正在使用 glfw3 库编写一个程序 http www glfw org docs latest http www glfw org docs latest 我安装并正确执行了库中的所有操作 我有 a 和 h 文
  • 使用 shell 脚本将行附加到 /etc/hosts 文件

    我有一个新的 Ubuntu 12 04 VPS 我正在尝试编写一个安装脚本来完成整个 LAMP 安装 我遇到问题的地方是在 etc hosts文件 我当前的主机文件如下所示 127 0 0 1 localhost Venus The fol
  • 在 Mono 上运行 .Net MVC5 应用程序

    我正在 Windows 上的 Visual Studio 2013 中开发 Net 4 5 1 MVC5 应用程序 现在我想知道 是否可以在Linux Ubuntu 12 04 上运行这个应用程序 可以使用OWIN吗 Owin 可以自托管运
  • 如何在 Linux 中使用 C 语言使用共享内存

    我的一个项目有点问题 我一直在试图找到一个有据可查的使用共享内存的例子fork 但没有成功 基本上情况是 当用户启动程序时 我需要在共享内存中存储两个值 当前路径这是一个char and a 文件名这也是char 根据命令参数 启动一个新进
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • linux下如何从文本文件中获取值

    我有一些文本格式的文件 xxx conf 我在这个文件中有一些文本 disablelog 1 当我使用 grep r disablelog oscam conf 输出是 disablelog 1 但我只需要值1 请问你有什么想法吗 一种方法
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • 如何让 Node.js 作为后台进程运行并且永不死掉?

    我通过 putty SSH 连接到 linux 服务器 我尝试将其作为后台进程运行 如下所示 node server js 然而 2 5 小时后 终端变得不活动 进程终止 即使终端断开连接 我是否也可以使进程保持活动状态 Edit 1 事实
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设

随机推荐

  • C基础(五)作用域和内存管理

    目录 一 作用域 1 1 作用域和生命周期 二 内存区域划分 三 堆内存的分配和释放 3 1 malloc分配堆内存 3 2 free释放堆内存 3 3 思考 解决函数返回值是指针的问题 方案一 返回一个在堆内存分配的地址指针变量 方案二
  • Java中this关键字

    含义 this关键字指代当前对象 本质就是 创建好的对象的地址 当一个对象创建后 Java虚拟机就会给对象分配一个内存空间和一个引用自身的指针 这个指针的名字就是this 用法 1 访问类中的成员变量 用来区分成员变量和局部变量 publi
  • 关于JDBC中properties默认编码格式为ISO-8859-1导致使用资源绑定器的getString方法出现乱码的解决办法

    在JDBC的注册驱动与连接数据库方面 通常将driver url user password来放入配置文件中 并使用资源绑定器ResourceBundle来更快捷灵活地进行编程 而资源绑定器的实例方法getString key 如果传入的k
  • 区块链相关

    区块链 一个个区块组成的链表 一 密码学原理 哈希碰撞 x不等于y 但是H x H y 不同的输入 输出却一致 这就称为 哈希碰撞 collision resistance puzzle friendly 不能预测输入最终的输出结果 hid
  • Unity 鼠标控制物体的移动

    一 鼠标控制物体移动 using System Collections using System Collections Generic using UnityEngine public class ControlMove MonoBeha
  • 试用74LS161和必要的门电路实现11进制计数器(要求用同步置数法实现)

    题目要求实现11进制计数器 则电路共有11个有效状态 我们可以选择0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010这11个状态作为电路的有效状态 按照上述状态选择方式 应向下图示接
  • 【 PMU】信号生成、采样、分割、估计器应用和误差计算(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 PMU 信号生成 采样 分割 估计器应用和
  • 一个简单的虹膜定位程序

    一个简单的虹膜定位实现 虹膜定位程序 clear close all I imread ip1 jpg f rgb2gray I imhist f 求图像的直方图 F Size M F Size N size f 获取f的行和列 T 84
  • Java驱动方式JDBC连接SQL Server

    Java驱动方式JDBC连接SQL Server 第一步 下载微软官方的SQL Server JDBC 驱动程序 6 0 https www microsoft com zh CN download details aspx id 1177
  • 设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性

    设顺序表va中的数据元素递增有序 试写一算法 将x插入到顺序表的适当位置上 以保持该表的有序性 先建立一个待插入的结点 然后依次与与链表中的各结点的数据域比较大小 找到插入该结点的位置 最后插入该结点 算法如下 include
  • 遇到的debug整理20190107

    已解决 最后的链结失败 错误的值 RT0 o relocation R X86 64 PC32 against symbol phgTetFaceVertexi can not be used when making a shared ob
  • Java学习笔记-多线程

    4 5 多线程 线程与进程 进程 是指一个内存中运行的应用程序 每个进程都有一个独立的内存空间 线程 是进程中的一个执行路径 共享一个内存空间 线程之间可以自由切换 并发执行 一个进程最少有一个线程 线程实际上是进程基础之上的进一步划分 一
  • 【算法】回溯

    子集树 include
  • C++ 指向类成员函数的指针

    记录两种可以间接调用类成员函数的方法 一种是直接使用函数指针 另一种使用C 11的function模板配合bind函数实现对固定类对象的成员函数调用 定义类 新建类的对象 class Cfun public void fun int x c
  • 【Matlab】 读取文件各种方法

    本技术支持指南主要处理 ASCII binary and MAT files 要得到MATLAB中可用来读写各种文件格式的完全函数列表 可以键入以下命令 help iofunMATLAB中有两种文件I O程序 high level and
  • 五分钟了解机器学习十大算法

    作者 Fahim ul Haq 译者 刘志勇 策划 赵钰莹 编辑 程序员大白公众号 仅作学术交流 如有侵权 请联系删文 本文为有志于成为数据科学家或对此感兴趣的读者们介绍最流行的机器学习算法 机器学习是该行业的一个创新且重要的领域 我们为机
  • 关于安装第三方包:dpkg: 处理软件包 redis-server (--configure)时出错:----说是redis-server未配置等原因,导致无法安装成功---bug

    在使用memcached 安装时报的redis错误 tarena tarena sudo apt get install memcached sudo tarena 的密码 正在读取软件包列表 完成 正在分析软件包的依赖关系树 正在读取状态
  • 这才是真正的技术,从0到高手的进阶!

    很多人以为学会了urlib模块和xpath等几个解析库 学了Selenium就会算精通爬虫了 但到外面想靠爬虫技术接点私活 才发现寸步难行 今天就告诉你 真正的爬虫高手应该学哪些东西 就算你毫无基础 你也能知道应该怎么去学习 话不多说 我们
  • 【Excel自动化办公Part6】:插入图片、插入柱状图、插入条形图

    目录 一 插入图片 二 插入柱状图 三 插入条形图 一 插入图片 sheet add image 创建的对象 单元格 导入模块 from openpy drawing image import Image 例 将一张云中君的皮肤图片插入到表
  • 部署zabbix分布式监控

    使用zabbix部署分布式监控 一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 zabbix能监视各种网络参数 保证服务器系统的安全运营 并提供灵活的通知机制以让系统管理员快速定位 解决存在的各种问题 zabb