企业级监控系统Zabbix

文章目录

  • Zabbix介绍
    • Zabbix架构
      • Zabbix server
      • Zabbix agent
      • Zabbix proxy
  • Zabbix Server的安装
  • Zabbix Agent的安装
    • 监控主机流程
    • zabbix_get
    • 自定义模板和监控项
      • 实战用户登录数监控
        • 1.指定监控项命令
        • 2.重启Agent服务
        • 3.在Server上创建监控项
        • 4.测试监控项
        • 5.查看监控项图形
  • 触发器
    • 定义触发器
  • 故障自愈
    • 实现故障自愈的步骤
      • 1.Agent开启远程命令功能
      • 2.授权zabbix用户管理权限
      • 3.创建触发器动作
  • Zabbix主动与被动模式
    • 被动模式
    • 主动模式
      • 主动模式实现步骤
        • 1.Agent端修改zabbix_agent2.conf配置
        • 2.Server端修改主动式监控项
  • 监控Java程序
    • 开启JMX监控
    • 部署Java gateway
    • zabbix_server.conf指定Java gateway
    • 在zabbix server中指定java服务的ip和端口
  • Zabbix分布式实现Proxy
    • Zabbix Server 和 Zabbix Proxy区别
    • 在Zabbix Server上添加代理Proxies
    • 配置主动模式的proxy
      • 1.修改zabbix_proxy.conf
      • 2.修改Agent为主动模式的Zabbix Proxy
    • 配置被动模式的proxy
      • 1.修改zabbix_proxy.conf
      • 2.修改Agent为被动模式的Zabbix Proxy
  • Zabbix自动注册
    • 1.修改Zabbix agent配置
    • 2.在Zabbix Server上配置动作
  • Zabbix优化
    • Zabbix高可用

Zabbix介绍

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。功能强大,成熟可靠,使用者众多。

官方网站: https://www.zabbix.com/

为什么需要监控
现在摄像头遍布大街小巷,包括汽车上的行车记录仪,当发生了什么事故时你可能第一直觉就是“调监控”来了解事故的前因后果。监控面前事实胜于雄辩!

在运维行业也是“无监控,不运维”,监控俗称“第三只眼”。没有监控,什么基础运维,业务运维都是“瞎子”,你不能实时掌握服务器的各种资源和你搭建的服务的各种使用数据指标。没有数据监控你就可能成为背锅侠。

监控功能
  1.在需要的时刻,提前预警即将出现的问题,避免故障发生;
  2.实时监控系统和业务,当出问题之后,通过发出告警,提醒相关人员,快速找到问题的根源从而及时处理问题;
  3.可以实现网站,应用或者服务器的故障自愈,保证高可用性;
  4.以图形或易于观察的方式呈现当前以及过往的状态,便于分析和预测系统发展趋势。

监控什么

硬件监控:
       通过远程控制卡: DeLL的iDRAC,HP的ILO和IBM的IMM等
       使用IPMI来完成物理设备的监控工作。通常必须要监控包括温度、硬盘故障等
       路由器,交换机(端口,光衰,日志),打印机等

系统监控:
       cpu,内存,硬盘使用率,硬盘IO,系统负载,进程数

服务监控:
       nginx, apache, php-fpm, mysql, memcache, redis, tomcat, JVM, TCP连接数等

性能监控:
       网站性能,服务器性能,数据库性能,存储性能

日志监控:
       系统会产生系统日志,应用程序会有应用的访问日志、错误日志,服务有运行日志等,
       可以使用ELK来进行日志监控
       
安全监控:
       用户登录数,passwd文件变化,本地所有文件改动
       Nginx+Lua编写一个WAF通过kibana可以图形化的展示不同的攻击类型的统计。

网络监控:
       IP端口,URL,DB,ping包,IDC带宽网络流量,网络流出流出速率,网络入流量,网络出
       流量.网络使用率,SMTP.POP3

Zabbix架构

zabbix中文使用手册:https://www.zabbix.com/documentation/6.0/zh/manual
在这里插入图片描述

Zabbix server

Zabbix server 是整个 Zabbix 软件的核心程序。

Zabbix Server负责执行数据的主动轮询和被动获取,计算触发器条件,向用户发送通知。它是Zabbix Agent 和 Proxy 报告系统可用性和完整性数据的核心组件。Server自身可以通过简单服务远程检查网络服务(如Web服务器和邮件服务器)。

Zabbix Server是所有配置、统计和操作数据的中央存储中心,也是Zabbix监控系统的告警中心。在监控的系统中出现任何异常,将发出通知给管理员。

基本的 Zabbix Server 的功能分解成为三个不同的组件。他们是:Zabbix server、Web前端和数据库。

Zabbix agent

Zabbix agent 部署在被监控目标上,以主动监控本地资源和应用程序(硬盘、内存、处理器统计信息等)。

Zabbix agent 收集本地的操作信息并将数据报告给 Zabbix server 用于进一步处理。一旦出现异常 (例如硬盘空间已满或者有崩溃的服务进程),Zabbix server 会主动警告管理员指定机器上的异常。

Zabbix agents 的极高效率缘于它可以利用本地系统调用来完成统计数据的采集。

Zabbix proxy

zabbix作为一个分布式监控系统(分布式监控解决方案),支持通过代理(proxy)收集zabbix agent的监控数据,然后由zabbix proxy再把数据发送给zabbix server,也就是zabbix proxy可以代替zabbix server收集监控数据,然后把数据汇报给zabbix server,所以zabbix proxy可以在一定程度上分担了zabbixserver的数据收集压力,从而降低了数据的采集时间、也相应的增加了zabbix server的监控能力。

部署Zabbix proxy 是可选的,但可能非常有利于分担单个 Zabbix server 的负载。 如果由代理采集数据,则 Zabbix server 上会减少 CPU 和磁盘 I/O 的开销。

Zabbix proxy 是无需本地管理员即可集中监控远程位置、分支机构和网络的理想解决方案。

Zabbix proxy 需要使用独立的数据库。

Zabbix Server的安装

ZabbixLTS(长期支持)版本没有任何额外的或隐藏的消费成本。Zabbix是一个100%开源软件,每个人都可以下载使用。

Zabbix LTS特点:
  1.支持期限更长,例如:为潜在的安全问题及bug迭代更新
  2.令人期待的高质量更新以及全新的功能点
  3.快速更新,可适用于多变的复杂环境
  4.在版本升级方面,更容易规划管理

官方安装帮助文档:https://www.zabbix.com/download

安装脚本

#!/bin/bash
# 
#********************************************************************
#Author:            wangxiaochun
#Date:              2022-06-22
#FileName:          install_zabbix5.0_for_ubuntu20.04.sh
#URL:               http://www.wangxiaochun.com
#Description:       The test script
#Copyright (C):     2022 All rights reserved
#********************************************************************
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
dpkg -i zabbix-release_5.0-1+focal_all.deb
sed -i.bak 's#http://repo.zabbix.com#https://mirror.tuna.tsinghua.edu.cn/zabbix#' /etc/apt/sources.list.d/zabbix.list
apt update
apt -y  install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent2
apt -y install mysql-server
cat << EOF | mysql
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by '123456';
grant all privileges on zabbix.* to zabbix@localhost;
EOF

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456  zabbix

sed -i.bak '/# DBPassword/a DBPassword=123456' /etc/zabbix/zabbix_server.conf
sed -i.bak '/^server/a\        listen 80;\n        server_name     zabbix.lei.org;' /etc/zabbix/nginx.conf

sed -i.bak '/date.timezone/c php_value[date.timezone] = Asia/Shanghai' /etc/zabbix/php-fpm.conf

systemctl disable --now apache2

systemctl restart  zabbix-server zabbix-agent2 nginx php7.4-fpm

systemctl enable   zabbix-server

安装完成后直接使用脚本里的域名打开zabbix
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
zabbix首页
在这里插入图片描述
登录时遇到了问题,就是我windows的ip被拒绝访问我ubuntu192.168.10.148的zabbix的mysql,于是我设置了允许了mysql的用户和ip

update user set host = '%' where user = 'root';
update user set host = '%' where user = 'zabbix';
#将数据库里面的“user”表里面“host”的“localhost”改为“%”。“%”是允许所有远程都允许远程连接连接,

在这里插入图片描述

授权法:将zabbix用户权限改为:ALL PRIVILEGES,前面的是用户名,后面的是密码。
GRANT ALL PRIVILEGES ON . TO ‘zabbix’@‘%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;

mysql> GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;   #刷新权限
Query OK, 0 rows affected (0.00 sec)

Zabbix Agent的安装

Zabbix Agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web 访问数据库在前端进行展现和绘图。

Zabbix Agent安装脚本

#!/bin/bash
#
#********************************************************************
#Author:            wangxiaochun
#Date:              2021-01-06
#FileName:          install_zabbix_agent2_5.0.sh
#URL:               http://www.wangxiaochun.com
#Description:       The test script
#Copyright (C):     2021 All rights reserved
#********************************************************************

ZABBIX_SERVER=zabbix.lei.org
ZABBIX_VER=5.0
URL="https://mirror.tuna.tsinghua.edu.cn/zabbix"

. /etc/os-release

color () {
    RES_COL=60
    MOVE_TO_COL="echo -en \\033[${RES_COL}G"
    SETCOLOR_SUCCESS="echo -en \\033[1;32m"
    SETCOLOR_FAILURE="echo -en \\033[1;31m"
    SETCOLOR_WARNING="echo -en \\033[1;33m"
    SETCOLOR_NORMAL="echo -en \E[0m"
    echo -n "$1" && $MOVE_TO_COL
    echo -n "["
    if [ $2 = "success" -o $2 = "0" ] ;then
        ${SETCOLOR_SUCCESS}
        echo -n $"  OK  "    
    elif [ $2 = "failure" -o $2 = "1"  ] ;then 
        ${SETCOLOR_FAILURE}
        echo -n $"FAILED"
    else
        ${SETCOLOR_WARNING}
        echo -n $"WARNING"
    fi
    ${SETCOLOR_NORMAL}
    echo -n "]"
    echo 
}

install_zabbix_agent2() {
    if [ $ID = "centos" -o $ID = "rocky" ];then
	     VERSION_ID=`echo $VERSION_ID|awk -F. '{print $1}'` 
         rpm -Uvh $URL/zabbix/${ZABBIX_VER}/rhel/${VERSION_ID}/x86_64/zabbix-release-${ZABBIX_VER}-1.el${VERSION_ID}.noarch.rpm
        if [ $? -eq 0 ];then
            color "YUM仓库准备完成" 0
        else
            color "YUM仓库配置失败,退出" 1
            exit
        fi
        sed -i 's#repo.zabbix.com#mirror.tuna.tsinghua.edu.cn/zabbix#' /etc/yum.repos.d/zabbix.repo
        yum -y install zabbix-agent2
    else 
        wget $URL/zabbix/${ZABBIX_VER}/ubuntu/pool/main/z/zabbix-release/zabbix-release_${ZABBIX_VER}-1+bionic_all.deb
        if [ $? -eq 0 ];then
            color "APT仓库准备完成" 0
        else
            color "APT仓库配置失败,退出" 1
            exit
        fi
        dpkg -i zabbix-release_${ZABBIX_VER}-1+bionic_all.deb
        sed -i 's#repo.zabbix.com#mirror.tuna.tsinghua.edu.cn/zabbix#'   /etc/apt/sources.list.d/zabbix.list
        apt update
        apt -y install zabbix-agent2
    fi
}

config_zabbix_agent2 (){ 
    sed -i -e "/^Server=127.0.0.1/c Server=$ZABBIX_SERVER"  -e "/^Hostname=Zabbix server/c Hostname=`hostname -I`"  /etc/zabbix/zabbix_agent2.conf
}

start_zabbix_agent2 () {
    systemctl enable zabbix-agent2.service
    systemctl restart zabbix-agent2.service
    systemctl is-active zabbix-agent2.service
    if [ $?  -eq 0 ];then  
        echo "-------------------------------------------------------------------"
        color "Zabbix Agent 安装完成!" 0
    else
        color "Zabbix Agent 安装失败" 1
        exit
    fi
}

install_zabbix_agent2
config_zabbix_agent2
start_zabbix_agent2

执行以上脚本可完成安装
在这里插入图片描述
将zabbix agent纳入zabbix server的管理中,在server页面中"创建主机"
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
初学就先使用agent的监控模板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

监控主机流程

1 安装agent,指定Zabbix Server地址;
2 在Zabbix Server 添加被监控的主机;
3 修改内置的模板,为了实验环境更快地采集数据,将模板中所有监控项的时间间隔修改为10s;
4 在被监控的主机关联模板(内置了很多的监控项) 
  Template OS Linux by Zabbix agent   --适合Linux
  Template OS Windows by Zabbix agent --适合windows
5 Web 查看数据和图形

zabbix_get

利用zabbix_get工具可以测试Zabbix Agent是否正常

zabbix_get需要安装
在这里插入图片描述

zabbix_get -s 192.168.10.152 -k agent.ping

在这里插入图片描述

自定义模板和监控项

自定义监控项流程:
  1.在Agent上创建监控项名称
  2.在Agent的配置文件中指定获取监控项的命令
  3.在Server上创建自定义的监控项
  4.在Server上关联到被监控的Agent主机上

创建自定义监控项后可将自定义监控项创建模板
  1.在Server上创建模板
  2.将自定义的监控项加入至模板
  3.将模板关联至被监控主机

vim /etc/zabbix/zabbix_agent2.conf在这里插入图片描述

实战用户登录数监控

自定义一个获取xshell用户登录数的监控项

1.指定监控项命令

在agent上的/etc/zabbix/zabbix_agent2.d下创建user_login_count.conf文件

UserParameter=user.login.count,who|wc -l

在这里插入图片描述

2.重启Agent服务

agent配置完自定义监控项后需要重启agent服务,否则server识别不了agent的自定义监控项
在这里插入图片描述

3.在Server上创建监控项

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

4.测试监控项

在这里插入图片描述

5.查看监控项图形

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

触发器

触发器是条件的定义,一个触发器是根据一个监控项的返回值将之对比预先设置的阈值,当监控项返回了不符合预定义的值范围后,;就进行触发下一步操作的警戒线,一般要对创建的监控项设置触发器以及触发方式和值的大小

可以在指定主机上创建触发器,只是针对指定主机有效

也可以在指定模板上创建触发器,则使用此模板的所有主机都有效,一个模板中可以有多触发器触发器中使用的表达式是非常灵活的。你可以使用它们去创建关于监控统计的复杂逻辑测试。

官方帮助手册:https://www.zabbix.com/documentation/5.0/zh/manual/config/triggers/expression

Zabbix支持下列6种触发器的严重程度:
在这里插入图片描述
在这里插入图片描述

定义触发器

触发器表达式

{<server>:<key>.<function>(<parameter>)}<operator><constant>

触发器表达式常用函数
在这里插入图片描述

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

故障自愈

当zabbix服务监控到指定的监控项异常时,可以通过指定的操作使故障自动恢复

我有一个监听80端口的触发器,当80端口down掉之后,就触发报警
在这里插入图片描述
我停掉了152的nginx服务,此时就触发了报警机制
在这里插入图片描述
我还开启了报警器,一旦报警就有一段刺耳的铃声
在这里插入图片描述

实现故障自愈的步骤

以nginx服务为例,当nginx服务停止时,自动重启服务,实现故障自愈功能

1.Agent开启远程命令功能

在这里插入图片描述

2.授权zabbix用户管理权限

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

3.创建触发器动作

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

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

添加动作的操作
在这里插入图片描述

故障已经自愈了
在这里插入图片描述

Zabbix主动与被动模式

Zabbix有两种工作模式:主动和被动模式
无论是模式还是被动模式,都是站在zabbix agent角度来说的工作模式
在这里插入图片描述

主动和被动模式
  1.被动模式: Server向Agent请求获取监控项的数据,Agent返回数据。
    此为默认模式,如果有100个监控项,则需要100次交互
    
  2.主动模式:Agent请求Server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy,
    如有100个监控项,只需要1次交互即可

被动模式

被动模式是指zabbix agent被动的接受zabbix server(或者Zabbix Proxy)周期性发送过来的数据收集指令

被动模式工作形式
  1.zabbix server发送什么指令那么zabbix agent就收集什么数据,
  2.zabbix server什么时候发送指令,zabbix agent就什么时候采集,
  3.zabbix server不发送指令,zabbix agent就一直不响应,所以zabbixagent也不用关心其监控项和数据采集周期间隔时间。

被动模式优点
  1.被动模式的优点就是配置简单,安装后即可使用,因此也成为zabbix的默认工作模式,

被动模式缺点
  1.被动模式的最大问题就是会加大zabbix server的负载,在数百甚至数千台服务器的环境下会导致zabbix server需要轮训向每个zabbix agent发送数据采集指令,
  2.如果zabbix server负载过高还会导致不能及时获取到最新数据
  3.被动模式因为性能的原因,一台Zabbix Server一般只能监控500台以下的主机,更多的主机建议使用主动模式

主动模式

主动模式是由每个zabbix agent打开本机的随机端口,主动向Zabbix Server (或者Zabbix Proxy)的10051端口发起tcp连接请求。

主动模式工作形式
  1.主动模式下必须在zabbix agent配置文件中指定zabbix server的IP或者主机名(必须可以被解析为IP地址)2.在连接到zabbix server之前zabbix agent是不知道自己要采集那些数据以及间隔多久采集一次数据的,
  3.在连接到zabbix server以后获取到自己的监控项和数据采集间隔周期时间,然后再根据监控项采集数据并返回给zabbix server

主动模式的优点
   主动模式下不再需要zabbix serve向zabbix agent发起连接请求,因此主动模式在一定程度上可减轻zabbix server打开的本地随机端口和进程数,
   在一定程度就减轻了zabbix server的压力。经过优化后可以轻松监控2000台,甚至5000以上的主机

以下场景下生产推荐使用主动模式
   1.Zabbix Server 出现性能瓶颈,监控队列出现大量延迟的监控项,告警不及时·
   2.监控主机超过500台以上

主动模式实现步骤

1.Agent端修改zabbix_agent2.conf配置

zabbix Agent默认是被动模式,需要修改zabbix_agent2.conf配置才能支持主动模式,配置由一下三项

server=<zabbix server>          #被动模式指向zabbix server的IP或FQDN ,默认模式
serverActive=<zabbix server>    #主动模式指向zabbix server的IP或FQDN
Hostname=<当前主机IP>            #当前主机的IP,此项必须和zabbix server中设置的主机名称相同

将ServerActive的127.0.0.1改为我的server服务器的地址192.168.10.148
在这里插入图片描述

2.Server端修改主动式监控项

2.1添加主机,名称=Hostname和客户端相同
2.2关联模板,包括的监控项是主动模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

监控Java程序

开启JMX监控

在tomcat的catalina.sh脚本中添加如下配置

CATALINA_OPTS="$CATALINA__OPTS
-Dcom.sun.management.jmxremote                      #启用远程监控JMX
-Djava.rmi.server.hostname=<JAVA主机IP>              #是tomcat主机的IP地址,不是zabbix服务器地址
-Dcom.sun.management.jmxremote.port=xXXXX           #默认启动的MX端口号
-Dcom.sun.management.jmxremote.authenticate=false   #不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false"           #不使用ssl认证
CATALINA_OPTS="$CATALINA__OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.10.153 -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

在这里插入图片描述
vim /usr/local/tomcat/bin/catalina.sh
在这里插入图片描述
配置完后重启tomcat,可以看到12345端口已正常放开
在这里插入图片描述使用windows的jconsole连接是否成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

cmdline-jmxclient-0.10.3.jar 是一个开源jar包,在zabbix中常用于测试的个工具,可以用来测试 jmx
是否配置正确。在监控方面还可以对Tomcat各种属性进行监控。下面使用java客户端cmdline-
jmxclient进行测试

wget https://github.com/qiueer/zabbix/blob/master/Tomcat/cmdline-jmxclient-0.10.3.jar

在这里插入图片描述
获取堆内存状况

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.10.153:12345 java.lang:type=Memory NonHeapMemoryUsage

在这里插入图片描述

部署Java gateway

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

apt install zabbix-java-gateway

在这里插入图片描述

zabbix_server.conf指定Java gateway

vim zabbix_server.conf

JavaGateway=127.0.0.1
StartJavaPollers=1

在这里插入图片描述

在这里插入图片描述

在zabbix server中指定java服务的ip和端口

配置主机192.168.10.153:12345
在这里插入图片描述
配置主机的监控模板
Template App Generic Java JMX模板监控项
在这里插入图片描述
在这里插入图片描述

Template App Appache Tomcat JMX模板监控项
在这里插入图片描述
在这里插入图片描述
配置完后着急看数据的话可以重启服务,此时我们可以看到153主机JMX的可用性已经绿了。
在这里插入图片描述
JMX监控数据
在这里插入图片描述

Zabbix分布式实现Proxy

官方帮助手册: https://www.zabbix.com/documentation/5.0/zh/manual/distributed_monitoring

Zabbix proxy 使用场景:
  1.监控远程区域设备,尤其是多机房和多个云环境时监控网络不稳定区域,避免跨网段监控的告警不及时
  2.当需要监控设备众多时,使用它来减轻Zabbix Server的压力
  3.简化分布式监控的维护,无需各位创建Zabbix Server,统一管理策略

在这里插入图片描述

Zabbix Server 和 Zabbix Proxy区别

Zabbix proxy功能
  1.Zabbix proxy数据库必须和server数据库分开,否则Zabbix server数据库会被破坏。
  2.zabbix proxy是一个数据收集器,它不计算触发器、不处理事件、不发送报警。

在这里插入图片描述

在Zabbix Server上添加代理Proxies

Zabbix Proxy安装完成后,需要Zabbix Server的上配置Proxies
在这里插入图片描述
在这里插入图片描述

配置主动模式的proxy

1.修改zabbix_proxy.conf

[root@zabbix-proxy-active ~]#grep '^[^#]'/etc/zabbix/zabbix_proxy.conf
ProxyMode=O                      #主动模式为0,被动模式为1,默认为0即主动模式
server=10.0.0.100                #指向zabbix server
Hostname=zabbix-proxy-active     #此名称必须和后面web管理页的agent代理程序名称相同
DBHost=localhost                 #MySQL服务器地址
DBName=zabbix_proxy_active       #MysQL数据库名
DBUser=proxy                     #连接MySQL的用户
DBPassword=123456                #连接MySQL的用户密码

2.修改Agent为主动模式的Zabbix Proxy

[root@centos8 ~]#grep '^[^#]’/apps/zabbix_agent/etc/zabbix_agent2.conf
server=10.0.0.100,10.0.0.101  #指向zabbix server(可选)和zabbix Proxy(必选)
serverActive=10.0.0.101       #指向zabbix Proxy

配置被动模式的proxy

1.修改zabbix_proxy.conf

[root@zabbix-proxy-passive ~]#grep '^[^#]'/apps/zabbix_proxy/etc/zabbix_proxy.conf
ProxyMode=1                           #被动模式为1
server=10.0.0.100                     #指向zabbix server的地址
Hostname=zabbix-proxy-passvie-magedu
LogFi1e=/tmp/zabbix_proxy. 1og
DBHost=loca1host                      #指定MySQL的地址
DBName=zabbix_proxy_passive           #指定MySQL数据库名称
DBUser=proxy                          #指定MysQL的用户
DBPassword=123456                     #指定MysQL的用户密码

2.修改Agent为被动模式的Zabbix Proxy

[root@centos8 ~]#grep '^[^#]' /etc/zabbix/zabbix_agent2.conf
server=10.0.0.100,10.0.0.102    #必须指向Proxy代理地址,否则proxy无法监控,zabbix server地址则是可选项
#ServerActive=10.0.0.100        #注释此行
Hostname=10.0.0.104
Timeout=30

Zabbix自动注册

之前都是手动将主机一台一台的添加到Zabbix中进行监控,很是繁琐,可以利用自动发现和自动注册功能,自动添加被监控的主机。

利用Zabbix的自动注册功能,实现添加主机的自动化,可以大幅减少运维的工作量,减少Zabbix Server的资源消耗
此方式和自动发现不同,是由Active agent主动发起请求zabbix server将这些agent加到主机里。

注意:Agent必须使用主动模式才支持自动注册

自动注册由于比自动发现效率更好,Zabbix Server资源消耗更少,更适合大规模及云环境IP地址不固定的场景使用

1.修改Zabbix agent配置

[root@centos8 ~]#vim /etc/zabbix /zabbix_agentd.conf
server=zabbix.wang.org
serverActive=zabbix.wang.org
Hostname=web-10.0.0.18            #指定主机名,如果不指定,则服务器将使用agent的系统主机名#HostnameItem=system.hostname     #指定主机名
HostMetadata=123456               #HostMetadataItem=system.uname

2.在Zabbix Server上配置动作

配置自动注册动作
在这里插入图片描述
创建动作
在这里插入图片描述
添加主机链接模板
在这里插入图片描述

Zabbix优化

如果主机和监控项众多,Zabbix Server有可能会出现的性能问题,主要表现如下:
  1.Web操作很卡,容易出现502错误
  2.监控图形中图层断裂
  3.监控告警不及时

可以查看队列了解Zabbix性能状态管理–队列
在这里插入图片描述

优化方法
  1.数据库:写多读少,数据采集比较频繁,可以考虑PostgreSQL;
  2.使用主动模式,减轻Zabbix Server压力;
  3.如果需要监控远程主机,使用Zabbix Proxy删除无用监控项,建议使用自定义的模板和监控项;
  4.适当增加监控项的取值间隔,减少历史数据保存周期,此工作由housekeeper进程定时清理
  5.针对zabbix历史数据和趋势图的数据表,进行周期性分表保存
  6.对Zabbix Server进程调优,发现性能瓶颈的进程,加大它的进程数量
  7.对Zabbix Server缓存调优,发现哪种缓存的剩余内存少,就加大它的缓存值

Zabbix高可用

在前面的部署架构中,Zabbix Server和MySQL都有只有一台主机,存在单点问题可以使用Keepalived 实现Zabbix Server的高可用

基础架构为LAMP或LNMP环境,采用keepalived实现zabbix服务器高可用,保证主服务器或者Httpd宕掉后能切换到从服务器

MySQL数据库做主主同步,保证两边服务器数据的一致性,实现数据库的高可用。

官方Zabbix6.0给出了高可用解决方案
https://www.zabbix.com/documentation/6.0/zh/manual/concepts/server/ha#implementa

在这里插入图片描述

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

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

相关文章

字符设备驱动程序

简单做个模板框架 字符设备开发流程 确定设备号dev_t&#xff0c;动态分配 alloc_chrdev_region() 或静态分配 register_chrdev_region()定义file_opeartion 结构体*fops *&#xff0c;在结构体成员中实现对应的 *open()、read()*等函数。cdev_init() 将 fops 与 cdev 绑定&…

STM32学习历程(day2)

GPIO解释 GPIO(General-purpose input/output) 可以配置为八种输入输出模式 引脚电平 0V-3.3V 部分引脚可容忍5v 输出模式可控制端口输出高低电平 用以驱动LED、控制蜂鸣器、模拟通信协议输出时序 输入模式可读取端口的高低电平或电压&#xff0c;用于读取按键输入、外界…

firefly rk3588 sdk安装问题记录

目录 一、python版本不对 1.1 下载python2.6 1.2 安装python2.6 1.3 安装遇到问题 二、安装hashlib 三、更新3588 SDK代码 一、python版本不对 我的环境的python版本是python3.7。初次安装的时候执行命令报错&#xff0c;说是版本不对导致 fuhdell:rk3588_sdk$ .repo/rep…

centos通过官网下载安装最新版mysql方案

官网下载步骤&#xff1a; 点击DOCUMENTATION mysql的yum仓库Using the MySQL Yum Repository 向下翻&#xff0c;查看安装命令 点击下载mysql安装包 下载对应的版本 不注册&#xff0c;直接下载社区版 下载好的安装包 安装步骤&#xff1a; 把rpm包导入到服务器…

AI 驱动的数据中心变革与前景

文章主要探讨了AI计算时代数据中心的转型&#xff0c;涉及计算技术的多样性、规格尺寸和加速器的发展、大型语言模型&#xff08;LLM&#xff09;的发展、功耗和冷却趋势、基准测试的重要性以及数据中心的发展等方面。为大家提供深入了解AI基础设施发展的视角。 计算技术的多样…

​浅谈 Linux 中的 core dump 分析方法

在 Linux 系统开发领域中&#xff0c;core dump&#xff08;核心转储&#xff09;是一个不可或缺的工具&#xff0c;它为我们提供了在程序崩溃时分析程序状态的重要线索。当程序因为某种原因&#xff08;如段错误、非法指令等&#xff09;异常终止时&#xff0c;Linux 系统会尝…

spring boot + vue3+element plus 项目搭建

一、vue 项目搭建 1、创建 vue 项目 vue create vue-element说明:创建过程中可以选择路由,也可也可以不选择,可以通过 npm install 安装 vue 项目目录结构 说明:api 为自己创建的文件夹,router 选择路由模块会自动创建 router下的index.js文件(配置路由的文件) im…

泰国内部安全行动司令部数据泄露

BreachForums 论坛的一名成员宣布发生一起重大数据泄露事件&#xff0c;涉及泰国内部安全行动司令部 (ISOC)&#xff0c;该机构被称为泰国皇家武装部队的政治部门。 目前&#xff0c;我们无法准确确认此次泄露的真实性&#xff0c;因为该组织尚未在其网站上发布有关该事件的任…

微信开发者工具报错 Error: module ‘xxx.js‘ is not defined, require args is ‘xxx.js‘

背景 报错如下 检查 代码逻辑和写法都是ok的重新打开项目又是可以的 解决方案 先确保微信开发者工具和uniapp的将js编译成es5都开着&#xff08;这个是默认开的&#xff09; 然后把微信开发者工具关了重开 一般做这一步就会好了&#xff0c;但是只是临时解决 &#xff08…

如何使用 3D 建模库在 C# 中将 3DS 转换为 USDZ?

USDZ/USD是一种 3D 文件格式&#xff0c;被广泛用于跨平台共享 3D 资产。另一方面&#xff0c;3DS是另一种以块形式存储数据的 3D 文件格式。在某些情况下&#xff0c;您需要将3DS 文件转换为 USDZ/USD文件格式。因此&#xff0c;本篇博文介绍了一个功能丰富的3D 建模库&#x…

记录一下简单导入导出excel二级表头

数据库导入导出表头 之前的工具类GenerateExcelToFile新增两个导出这种二级表头方法 package com.njry.utils;import cn.hutool.core.util.IdUtil; import com.njry.config.FileProperties; import com.njry.exception.BadRequestException; import org.apache.poi.hssf.user…

《Winodws API每日一练》8.2 static控件

在 Windows 编程中&#xff0c;"Static" 控件是一种常见的用户界面元素&#xff0c;用于显示静态文本或图像&#xff0c;而无法进行用户交互。它通常用于显示标签、标题、说明文本或静态图像等信息。Static 控件是一种静态的、只读的显示元素&#xff0c;不接受用户的…

JAVA 快递100wms工具类

快递wms工具类 import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import com.kuaidi100.sdk.api.QueryTrack; import com.kuaidi100.sdk.api.Subscribe; import com.kuaidi100.sdk.contant.ApiInfoConstant; import c…

11.SQL注入-盲注基于(base on boolian)

SQL注入-盲注基于boolian案例利用 首先总结一下sql语句中的函数意思 #查看当前所在的数据库 mysql> select database(); ------------ | database() | ------------ | pikachu | ------------ 1 row in set (0.00 sec)#函数substr里1是从第几位开始取字符&#xff0c;2…

mybatis-使用自动生成(根据数据库反向生成pojo、映射文件,映射接口)

1.在pom.xml中导入依赖和插件 <dependencies> <!-- 导入自动生成依赖--><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.4.0</version>&…

【PCIe】P2P DMA

PCIe P2P (peer-to-peer communication)是PCIe的一种特性&#xff0c;它使两个PCIe设备之间可以直接传输数据&#xff0c;而不需要使用主机RAM作为临时存储。如下图3的走向 比如EP1要发送和数据给EP2,操作流程如下&#xff1a; 1. 打开EP1的dma控制器&#xff1b;--client侧 …

go开源webssh终端源码main.go分析

1.地址: https://github.com/Jrohy/webssh.git 2.添加中文注释地址: https://github.com/tonyimax/webssh_cn.git main.go分析 主包名&#xff1a;main package main //主包名 依赖包加载 //导入依赖包 import ("embed" //可执行文件…

密码学复习

目录 基础 欧拉函数 欧拉函数φ(n)定义 计算方法的技巧 当a=a_1*a_2*……*a_n时 欧拉定理 剩余系 一些超简单密码 维吉尼亚 密钥fox 凯撒(直接偏移) 凯特巴氏(颠倒字母表) 摩斯密码(字母对应电荷线) 希尔(hill)密码 一些攻击 RSA 求uf+vg=1 快速幂模m^…

苹果获得OpenAI董事会观察员职位、Runway最新估值40亿美元

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 据知情人士透露&#xff0c;苹果应用商店&#xff08;App Store&#xff09;负责人、前营销主管Phil Schiller被选中担任这一职位。这位知情人士说&#xff0c;作为董事会观察员&#xff0c;他不会以正…

二次搭建无人车平台遇到的问题(mid360+joy游戏手柄操纵无人车)

joy节点启动 报错&#xff1a; ROS path [0]/opt/ros/noetic/share/ros ROS path [1]/home/jetson/yahboomcar_ws/src/yahboomcar_autodrive ROS path [2]/home/jetson/yahboomcar_ws/src/yahboomcar_bringup ROS path [3]/home/jetson/yahboomcar_ws/src/yahboomcar_ctrl ROS…