@

实战

Zabbix server源码安装使用示例

部署

# 下载zabbix的源码包
wget https://github.com/zabbix/zabbix/archive/refs/tags/6.2.4.tar.gz
# 解压下载好的zabbix源安装包
mkdir /usr/local/zabbix
tar -zxvf zabbix-6.2.4.tar.gz -C /usr/local/zabbix/
# 为编译安装依赖
yum -y install net-snmp-devel libevent-devel mysql-devel libxml2-devel curl-devel gcc gcc-c++ pcre-devel OpenIPMI-devel
cd /usr/local/zabbix/zabbix-6.2.4
./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi
make install

配置

mysql就使用前面部署好的容器zabbix-docker-624_mysql-server_1,通过docker inspect zabbix-docker-624_mysql-server_1找到"IPAddress": "172.16.239.2"

vi /usr/local/zabbix/etc/zabbix_server.conf

DBHost=172.16.239.2                      ---数据库本机
DBName=zabbix ---数据库库名
DBUser=zabbix ---数据库账号
DBPassword=zabbix ---数据库密码
DBSocket=/var/lib/mysql/mysql.sock ---指定sock路径
ListenPort=10051 ---服务端监听端口
ListenIP=0.0.0.0 ---监听IP范围
# 停掉基于容器的zabbix-agent和zabbix-server
docker stop zabbix-agent1
docker stop zabbix-docker-624_zabbix-server_1
# 复制启动配置
cp /usr/local/zabbix/zabbix-6.2.4/misc/init.d/fedora/core/zabbix_server /etc/init.d/
# 修改BASEDIR
vim /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix
# 启动zabbix-server
service zabbix_server start

由于前面是容器启动修改主机Zabbix server,这里修改为本机127.0.0.1地址,

vi /usr/local/zabbix/etc/zabbix_agentd.conf ,下面这三项保持默认设置即可

Server=127.0.0.1         ---填写server端IP,server链接agent获取数据
ServerActive=127.0.0.1 ---填写server端IP,agent主动提交数据
Hostname=Zabbix server ---给agent设定一个名字,默认为Zabbix server
# 复制服务配置
cp /usr/local/zabbix/zabbix-6.2.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
vi /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix
# 启动服务
service zabbix_agentd start

查看zabbix-server和zabbix-agent的进程信息和监听端口

等待一小段时间后查看web的主机信息Zabbix server已为可用状态

Zabbix agent2使用示例

部署

部署Agent和Agent2使用rpm安装是比较方便的

# 安装Zabbix仓库
rpm -Uvh https://repo.zabbix.com/zabbix/6.2/rhel/7/x86_64/zabbix-release-6.2-3.el7.noarch.rpm
yum clean all
# 安装Zabbix agent2
yum install zabbix-agent2 zabbix-agent2-plugin-*

编辑zabbix-agent2的配置文件 vi /etc/zabbix/zabbix_agent2.conf

# 被动检查相关配置,允许zabbix-server的IP到当前服务器上获取数据,可以写多个IP
Server=192.168.50.95
# Option: Hostname ,区分大小写且在zabbix server唯一的值
Hostname=agent2-host1
# Server和ServerActive都是zabbix_server端的ip
ServerActive=192.168.50.95

启动zabbix-agent2

systemctl start zabbix-agent2
systemctl enable zabbix-agent2
netstat -ntulp |grep 10050

配置

  • 创建名称为agent-group的主机组
  • 创建名称为agent2-host1的主机,选择模板群组Templates下的Linux by Zabbix agent模板,添加Agent

等待一小段时间后查看web的主机信息agent2-host1已为可用状态

Zabbix proxy使用示例

部署

# 安装Zabbix仓库
rpm -Uvh https://repo.zabbix.com/zabbix/6.2/rhel/7/x86_64/zabbix-release-6.2-3.el7.noarch.rpm
yum clean all
# 安装zabbix-proxy
yum install zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy

在数据库主机上运行以下代码。

# mysql -uroot -ppassword
mysql> create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

导入初始架构和数据,系统将提示您输入新创建的密码。

cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix_proxy
mysql> set global log_bin_trust_function_creators = 0;

配置

编辑配置文件 vim /etc/zabbix/zabbix_proxy.conf

# 0 - proxy in the active mode主动,1 - proxy in the passive mode被动
ProxyMode=0
#填写zabbix-server所在服务器IP
Server=192.168.5.95
Hostname=Zabbix proxy
DBHost=192.168.5.52
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306
#更新配置文件频率
ConfigFrequency=300
# 启动zabbix-proxy
systemctl start zabbix-proxy

通过Zabbix的web的管理-Proxy中创建Proxy,名称为hostname一致也即是Zabbix proxy,默认主动模式

也可以选择被动模式

部署、配置和启动另外一台Agent,主机名称为agent2-host2

# 配置为zabbix proxy的地址
Server=192.168.5.52
# Option: Hostname ,区分大小写且在zabbix server唯一的值
Hostname=agent2-host2
# 配置为zabbix proxy的地址
ServerActive=192.168.5.52

yum install -y zabbix-get后通过zabbix_get -s 192.168.5.53 -p 10050 -k vm.memory.size[available]验证获取监控项可用

通过Zabbix的web的配置-主机,创建新的主机,并选择由agent程序监测中上面新创建的Zabbix proxy,点击添加按钮

过一会查看配置-主机可以看到agent2-host2主机通过Zabbix proxy上报到Zabbix server,实现分布式监控(主动模式)

自定义监控使用示例

如果模板没有我们需要的监控项,可以使用自定义监控来实现。自定义监控流程如下:

  • 客户端

    • 通过命令、脚本取出对应的值。
    # 本机81端口是否存在,>0则存在
    ss -lntup | grep -w 81 | wc -l

    • 根据Zabbix的要求格式书写配置文件,创建键值。
    # 在zabbix_agent的配置文件中/etc/zabbix/zabbix_agent2.conf可以看到Include的配置项
    Include=/etc/zabbix/zabbix_agent2.d/*.conf
    # 在/etc/zabbix/zabbix_agent2.d/目录下创建web.conf的文件,UserParameter=key,cmd,key为键值,建议采用x.y.z格式,cmd可以为命令或者脚本,脚本如sh /home/a.sh
    vim /etc/zabbix/zabbix_agent2.d/web.conf
    UserParameter=nginx.port_count,ss -lntup | grep -w 81 | wc -l
    • 重启客户端测试键值是否可用。
    # 重启zabbix-agent2
    systemctl restart zabbix-agent2
    # 通过客户端查配置,nginx.port_count值为1
    zabbix_agent2 -t nginx.port_count
    # 杀死nginx
    pkill nginx
    # 再次客户端查配置,nginx.port_count值为0
    zabbix_agent2 -t nginx.port_count

  • 服务端

    • 测试键值是否
    # 重新启动nginx
    systemctl start nginx
    # 在zabbix server端执行,成功取得客户端的监控项值
    zabbix_get -s 192.168.5.98 -p 10050 -k nginx.port_count

    • web页面键值与监控项关联并测试,在配置-主机中,找到刚才的部署自定义监控的客户端的主机,点击监控项进入后创建监控项,输入键值,可以

在监测-最新数据,找到主机后查看监控项最新值为当前正确的值

触发器使用示例

点击配置-主机,找到上面创建主机名称为agent2-host1,点击触发器,然后通过右上方的创建触发器,输入名称、添加问题表现形和恢复表达式

点击添加按钮,回到触发器列表,通过名称点击"应用"按钮查询到刚才添加的触发器信息

通过杀死主机agent2-host1上的nginx进程(pkill nginx),过一会查看监测-仪表盘中的当前问题可以看到触发了问题结果。

重启启动nginx过一小会后,在仪表盘的当前问题就消失了,而在监测-问题中的最近的问题和历史记录可以看到问题已经触发恢复表达式状态自动变为为“已解决”,且刚恢复几分钟内zabbix还是非常比较人性化将“已解决”状态字眼呈现一闪一闪更为生动。

图形使用示例

配置-主机,找到上面创建主机名称为agent2-host1,点击图形,右上角点击添加图形按钮,输入图形名称和监控项图形设置

可以点击预览查看图形

模板使用示例

  • 创建模板,在配置-模板中添加模板,点击添加

  • 添加自定义监控项

从对应主机找到所需的监控项,勾选监控项后点击复制按钮,

选择目标类型为模板,模板名称为刚创建的web template,点击复制

  • 添加触发器

触发器和上面的监控项一样通过复制的方式操作

  • 添加图形

图形和上面的监控项一样通过复制的方式操作

通过上面的添加监控项、触发器、图形后后查看模板已有对应的信息

  • 模板关联主机

在主机列表中勾选需要绑定模板的主机,查看当前监控项、触发器、图形的数量

点击“批量更新”按钮,勾选模板连接,选择上面创建模板web template,点击更新按钮

在主机列表中可以看到监控项、触发器、图形的数量都增加了一个

将自定义监控使用示例中创建的/etc/zabbix/zabbix_agent2.d/web.conf分发到agent2-host2上,重启agent2-host2的zabbix-agent2

由于agent2-host2上面没有nginx服务,所以查看监测-仪表盘中当前问题可以看到agent2-host2主机触发了,验证模板已绑定到主机的流程

SNMP监控使用示例

# 这里先linux开启SNMP做例子,但后续SNMP更多在交互机、路由器使用
yum install net-snmp net-snmp-utils -y
# 修改配置文件,添加一个采集项.1,意味着可以采集到所有mib tree的信息,
vim /etc/snmp/snmpd.conf
view all included .1

# 被监控端开启snmp服务
systemctl start snmpd
# 监控端开启的服务(如果允许被监控端启动主动监控时启用)
systemctl start snmptrapd
# snmpget测试
snmpget -v 2c -c public 192.168.5.98 sysName.0
# snmpwalk测试
snmpwalk -v 2c -c public 192.168.5.98 sysName.0
snmpwalk -v 2c -c public 192.168.5.98 .1.3.6.1.2.1.1.1

在配置-主机中找到agent2-host1(192.168.5.98),点击修改模板为linux snmp模板和添加snmp接口,点击更新按钮

等待一小段时间后,还可以再主机的宏添加变量{$SNMP_COMMUNITY}为public的值,主机的snmp服务监控已变为“可用状态”

自动发现使用示例

自动发现为服务端主动扫描局域网内所有的机器有则添加,配置简单方便,效率不高。

  • 配置自动发现规则

先勾选前面页面创建的主机,点击删除将原来主机信息删除掉

配置-自动发现配置发现规则,先选择没有agent代理程序,IP范围,添加检查类型,最后添加添加按钮

配置-动作中发现动作中,点击右上角的创建动作,输入名称和条件

再添加一个auto discover host with agent的发现规则,选择Zabbix proxy为agent代理程序自动发现,添加IP范围,点击添加

切换到操作页面,添加操作详情,包括添加主机、添加到主机群组、链接到模板、启动主机,最后点击添加按钮

稍等一小会查看主机列表多了两个自动发现的主机信息

自动注册使用示例

自动注册为客户端主动向服务端注册,服务端只需要等待与验证即可,配置有点复杂,效率高。

先关闭上面的自动发现的规则(自动发现规则列表对应的规则右方单击“已启用”之后变为"停用"状态即可)和自动发现的动作(发现动作列表对应的动作右方单击“已启用”之后变为"停用"状态即可)

然后再删除上面的自动发现的2个主机信息

  • 修改Zabbix 客户端配置文件,vim /etc/zabbix/zabbix_agentd.conf
# ServerActive按照实际填写为zabbix-server或zabbix-proxy
ServerActive=192.168.50.95
# 主机唯一标识名称
Hostname=agent2-host1
# 主机的元数据属性
HostMetadata=agent2-host1
# 自动获取主机名,与Hostname二选一
HostnameItem=system.hostname
# 自动获取主机的元数据,与HostMetadata二选一
HostMetadataItem=system.hostname
  • 配置-动作-自动注册动作,点击创建动作,输入如下名称和条件

切换到操作按钮,配置和上面自动发现操作一样,点击添加按钮

  • 重启zabbix-agent2(systemctl restart zabbix-agent2)

过几分钟后查看有2台主机主动注册的信息

JMX监控使用示例

从 Zabbix 2.0 开始,以 Zabbix 守护进程方式原生支持监控 JMX 应用程序就存在了,称之为“Zabbix Java gateway”。JMX可用于监控java的应用程序,例如常见的tomcat服务,提前安装好tomcat。

  • 安装zabbix-java-gateway
yum install zabbix-java-gateway
  • 修改zabbix_java_gateway配置文件,vim /etc/zabbix/zabbix_java_gateway.conf
START_POLLERS=5
  • 启动zabbix-java-gateway
# 启动zabbix-java-gateway
systemctl restart zabbix-java-gateway
# 开启自启动
systemctl enable zabbix-java-gateway
  • 修改Zabbix Server配置 关联 Java 网关
JavaGateway=192.168.5.52
JavaGatewayPort=10052
StartJavaPollers=5
  • 重启zabbix-server

  • 修改tomcat启动脚本,vim tomcat/bin/catalina.sh,在OS specific support. $var must be set to either true or false的前面添加下面一行即可

#!/bin/sh
CATALINA_OPTS="-Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
  • 创建主机,模板选择Apache Tomcat by JMX,接口为JMX接口,点击添加按钮

过一会查看主机名称为tomcat-host的信息,JMX服务以为可用

**本人博客网站 **IT小神 www.itxiaoshen.com

成熟企业级开源监控解决方案Zabbix6.2关键功能实战-下的更多相关文章

  1. 成熟企业级开源监控解决方案Zabbix6.2关键功能实战-上

    @ 目录 概述 定义 监控作用 使用理解 监控对象和指标 架构组成 常用监控软件分析 版本选型 俗语 安装 部署方式 部署 zabbix-agent 概述 定义 Zabbix 官网地址 https:/ ...

  2. Zabbix企业级开源监控解决方案

    Zabbix企业级开源监控解决方案 目录 Zabbix企业级开源监控解决方案 一.Zabbix 1. 监控系统的必要性 2. 监控软件的作用 3. Zabbix的定义 4. Zabbix的监控原理 5 ...

  3. zabbix企业级的分布式开源监控解决方案 v5.0 LTS

    目录 zabbix简介 服务模块 客户端守护进程 监控流程 功能拆解 安装 zabbix 5.0 LTS 参考官网 zabbix 5.0.12-1.el7 zabbix-server相关优化 1. 字 ...

  4. zabbix、Cacti、Nagios、open-falcon、Ganglia、Prometheus开源监控比较

    Zabbix 一个基与WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案(普遍) 能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的 ...

  5. 初识Opserver,StackExchange的监控解决方案

    Opserver是闻名遐迩的网站Stack Overflow的开源监控解决方案,由Stack Exchange发布.它基于.NET框架构建,这在监控工具领域有些与众不同. 旨在为每个受监控系统的健康状 ...

  6. GIS项目中数据开源、工具开源、开发开源的解决方案

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 摆脱免费地图开发包的约束,拒绝商业地图软件的费用,高效.精确.完备是我 ...

  7. 【开源监控】Prometheus+Node Exporter+Grafana监控linux服务器

    Prometheus Prometheus介绍 Prometheus新一代开源监控解决方案.github地址 Prometheus主要功能 多维 数据模型(时序由 metric 名字和 k/v 的 l ...

  8. 强大的开源企业级数据监控利器Lepus安装与配置管理

    开篇介绍 官方网站:http://www.lepus.cc 开源企业级数据库监控系统 简洁.直观.强大的开源数据库监控系统,MySQL/Oracle/MongoDB/Redis一站式性能监控,让数据库 ...

  9. 强大的开源企业级数据库监控利器Lepus

    Lepus监控简单介绍 官方网站:http://www.lepus.cc 开源企业级数据库监控系统 简洁.直观.强大的开源数据库监控系统,MySQL/Oracle/MongoDB/Redis一站式性能 ...

随机推荐

  1. C#基础_XML文件读写

    使用C#对XML文件进行操作,包括生成一个XML文档,以及读取XML文档中的内容,修改某个元素中的内容 using System; using System.Collections.Generic; ...

  2. 01 - 快速体验 Spring Security 5.7.2 | 权限管理基础

    在前面SpringBoot 2.7.2 的系列文章中,已经创建了几个 computer 相关的接口,这些接口直接通过 Spring Doc 或 POSTMAN 就可以访问.例如: GET http:/ ...

  3. OOM故障处理流程

    一.OOM机制概述 Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,为防止内存耗尽而自动把该进程 ...

  4. Spark 读取HDFS csv文件并写入hive

    package com.grady import org.apache.spark.SparkConf import org.apache.spark.sql.{Row, SaveMode, Spar ...

  5. centos7换清华源

    一 删除其他源 cd /etc/yum.repos.d/ 二 创建源 vim CentOS-Base.repo # CentOS-Base.repo # # The mirror system use ...

  6. HK32F030MF4P6的Linux GCC工具链和VSCode开发环境

    HK32F030MF4P6简介 航顺的 HK32F030MF4P6, TSSOP20封装, Arm Cortex M0 内核, 内建32MHz时钟, 16K Flash, 2K RAM(实际上可用的有 ...

  7. CAP 6.2 版本发布通告

    前言 今天,我们很高兴宣布 CAP 发布 6.2 版本正式版,在这个版本中我们主要做了一些功能优化,以及针对目前已经发现的几个 BUG 进行了修复了. 那么,接下来我们具体看一下吧. 总览 可能有些人 ...

  8. Kubernetes Operator: CRD

    Custom Resource Define 简称 CRD,是 Kubernetes(v1.7+)为提高可扩展性,让开发者去自定义资源的一种方式.CRD 资源可以动态注册到集群中,注册完毕后,用户可以 ...

  9. CentOS7添加永久路由

    CentOS7永久静态路由需要写到 /etc/sysconfig/network-scripts/route-****** 文件中,故在/etc/sysconfig/network-scripts/下 ...

  10. ELK Stack 日志平台性能优化

    转载自: https://mp.weixin.qq.com/s?__biz=MzAwNTM5Njk3Mw==&mid=2247487789&idx=1&sn=def0d8c2e ...