zabbix常见配置集合

本文详细介绍了Zabbix的各种配置,包括自定义key、网络发现、Web监控、主动检测、SNMP监控、JMX监控、Zabbix Proxy的设置以及Zabbix的调优。通过实例演示了如何监控网络设备、网站性能、主机状态,并利用SNMP和JMX接口收集数据。此外,还讲解了Zabbix代理的部署,以减轻中央服务器的压力,实现分布式监控。
摘要由CSDN通过智能技术生成

转载来源 : 20171128 Zabbix(二) : https://www.jianshu.com/p/a945956cf1f1

目录

自定义key
网络发现
Web监控
主动检测
基于SNMP监控
基于JMX监控
Zabbix Proxy
Zabbix调优

一、自定义key

  • 定义key:在zabbix agent端的配置文件上由用户通过UserParameter指令定义的key
  • 配置文件路径:编辑/etc/zabbix/zabbix_agentd.conf文件,或者在/etc/zabbix/zabbix_agentd.d建立单独文件
  • 语法格式:
    不带参数:UserParameter=,
    带参数:UserParameter=<key[*]>,
  • 实验1:实现查看被监控主机已使用内存情况
  • 本文中所有实验主机ip情况:
ode0.hellopeiyang.com: 192.168.136.230, zabbix agent
node1.hellopieyang.com: 192.168.136.130, zabbix agent
node2.hellopeiyang.com: 192.168.136.131, zabbix server
  • 步骤1:在被监控主机编辑配置文件
// 定义无参数的key
vim /etc/zabbix/zabbix_agentd.d/memory_usage.conf
UserParameter=memory.used,free -m | awk '/^Mem/{print $3}'

systemctl restart zabbix-agent.service
  • 步骤2:在zabbix的web管理界面增加items,手动输入定义的key
    在这里插入图片描述
  • 实验2:通过一个带参数的key实现查看被监控主机多个内存使用指标
  • 步骤1:在被监控主机编辑配置文件
// 定义有参数的key,$1,$2...代表参数
vim /etc/zabbix/zabbix_agentd.d/memory_usage.conf
UserParameter=memory.stats[*], cat /proc/meminfo | awk '/^$1/{print $$2}'
// 当command中出现$符号时,使用$$逃逸符代表属于command命令本身而非参数

systemctl restart zabbix-agent.service
  • 步骤2:在zabbix的web管理界面增加items,手动输入定义的key,通过配置不同参数,可以快速添加多个items。
  • 在这里插入图片描述
    在这里插入图片描述

二、网络发现:

  • 网络发现:zabbix server扫描指定网络范围内的主机,并作出响应;
  • 发现方式:在ip地址范围内定期扫描;
  • 发现可用服务
    ftp, ssh, http等协议
    zabbix_agent的响应
    snmp_agent的响应
    网络发现分两个阶段:
  • discovery:发现,包含四种状态 UP/DOWN, DICOVERED/LOST
  • actions:以discovery events为触发条件,可以采取如下动作 send message:发消息 remote
    command:远程执行命令 add/remove host:添加/删除主机 enable/disable host:激活/禁用主机
    add host to group:添加主机至主机组 link template to host:连接模板至主机
  • 实验3:在IP地址范围内发现主机后添加主机,并将指定模板链接至主机
  • 步骤1:配置发现规则,指定IP范围、扫描间隔时间、检测所用的key
    实际生产环境的间隔时间1h,本实验为加快实验速度调至1min
    在这里插入图片描述
    步骤2:配置执行动作,设置执行本动作的条件为步骤1设置的发现规则值为Up
    在这里插入图片描述
  • 步骤3:设置具体的执行动作:添加主机,链接至模板
    在这里插入图片描述

三、Web监控:

  • 功能:监控指定的站点的资源下载速度,及页面响应时间,还有响应代码
  • 基本概念: web scenario:web场景,监控站点 web
    step:web步骤,监控页面,每个页面都自动配置3个内建key,用于监控
  • 内建key: web.test.in[Scenario,Step,bps]:传输速率
    web.test.time[Scenario,Step]:响应时长 web.test.rspcode[Scenario,Step]:响应码
  • 实验4:实现监控站点
  • 步骤1:建立web场景,指定更新间隔和访问网页的浏览器信息
    在这里插入图片描述
  • 步骤2:建立web步骤,分别给站点的不同网页添加监控,可以要求只返回头部,要求返回的状态码为200;
    在这里插入图片描述
  • 步骤3:最终配置完成如图
    在这里插入图片描述
  • 步骤4:可以在monitoring查看web监控状态
    在这里插入图片描述

四、主动检测:

(一)主动检测:

  • 主动检测:agent向server请求与自己相关监控项配置,主动地将server配置的监控项相关的数据发送给server
  • agent端所需要基本配置:
    ServerActive=
    Hostname=
    HostnameItem=
    Hostname和HostnameItem同时存在时,以HostnameItem值为准;
  • 实验5:实现主动检测
  • 步骤1:编辑配置文件,确保开启主动检测功能
ServerActive=192.168.136.131
Hostname=node0.hellopeiyang.com
systemctl restart zabbix-agent
  • 步骤2:定义item,选择active模式
    在这里插入图片描述
  • 步骤3:可以看到监控情况
    在这里插入图片描述

(二)zabbix_sender发送数据:

  • server端配置:
    item type为"zabbix trapper",定义一个不与其它已有key冲突的key

  • agent端zabbix_sender命令格式:
    zabbix_sender
    -z zabbix_server_ip
    -p zabbix_server_port
    -s zabbix_agent_hostname
    -k key
    -o value

  • 实验6:使用zabbix_sender主动向zabbix server发送数据;

  • 步骤1:定义items,选择zabbix trapper模式
    在这里插入图片描述

  • 步骤2:agent端向zabbix server发送指定数据

zabbix_sender -z 192.168.136.131 -p 10051 -s node0.hellopeiyang.com -k send.test.data -o 384
  • 步骤3:server端成功接收数据
    在这里插入图片描述

五、基于SNMP监控:

(一)SNMP:简单网络管理协议

  • 支持的网管操作:get, getnext(读)、set(写)、trap(陷阱)读、写操作是
  • 端口:161/udp (get, set), 162/udp (trap)
  • 发展历程:
    v1: 1989
    v2c: 1993,目前最广泛使用
    v3: 1998
  • 关键概念:
  • NMS:网络管理系统,向管理员提供界面以获取与改变设备的配置、信息、状态、操作等信息;NMS与Agent进行通信,执行相应的Set和Get操作,并接收代理发过来的警报(Trap);
  • Agent:代理,负责NMS和设备SNMP操作的传递
  • MIB:管理信息库,定义代理进程中所有可被查询和修改的参数
  • OID:对象识别符,唯一指定管理信息库MIB中可访问的网络设备及其属性
  • 经常使用的OID:
    .1.3.6.1.2.1.
    1.1.0:系统描述信息,SysDesc
    1.3.0:监控时间, SysUptime
    1.5.0:主机名,SysName
    1.7.0:主机提供的服务,SysService
    2.1.0:网络接口数目
    2.2.1.2:网络接口的描述信息
    2.2.1.3:网络接口类型

(二)Linux启用snmp

  • 安装包:net-snmp net-snmp-utils;
  • 配置文件:
    /etc/snmp/snmpd.conf,定义ACL(允许指定范围OID能被读取)
  • 启动服务:
    systemctl start snmpd.service
  • 测试工具:
    snmpget:获取指定OID信息
    snmpwalk:获取指定OID根节点下所有OID叶节点的信息,遍历操作
    options: -v, 协议版本 -c 认证,语法如下:
    snmpget -v 2c -c public HOST OID
    snmpwalk -v 2c -c public HOST OID

(三)实验:实现使用snmp v2协议监控

  • 实验7:实现使用snmp v2协议监控指定网卡入栈的数据包数
  • 步骤1:启用snmp服务,设置允许远程读操作的OID范围
yum install net-snmp net-snmp-utils
vim /etc/snmp/snmpd.conf
view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.2    // 网络接口的相关数据
view    systemview    included   .1.3.6.1.4.1.2021 // 系统资源负载:memory, disk io, cpu load 
view    systemview    included   .1.3.6.1.2.1.25.1.1
  
systemctl start snmpd.service
  • 步骤2:在zabbix-server上增加host的snmp监控接口
    在这里插入图片描述
  • 步骤3:增加items,使用snmp v2协议监控,key值可以任意指定,监控信息由OID指定,按照 /etc/snmp/snmpd.conf中的信息设置认证community
    在这里插入图片描述
  • 步骤4:稍候片刻,可以看到监控信息图
    在这里插入图片描述

六、基于JMX监控

  • 基本概念:
    JMX:查询JVM信息的专用接口
    Java-gateway:用于监控JMX应用的程序
  • JMX检测自带key:
    jmx[object_name,attribute_name]
    object name - 它代表MBean的对象名称
    attribute name - 一个MBean属性名称,可选的复合数据字段名称以点分隔
  • 实验8:实现通过JMX监控Tomcat程序的堆内存使用情况
  • 步骤1:tomcat主机设置:开启JMX监控tomcat
vim /etc/sysconfig/tomcat                
CATALINA_OPTS="-Djava.rmi.server.hostname=192.168.136.230 -Djavax.management.builder.initial= -Dcom.sun.management.jmx remote=true   -Dcom.sun.management.jmxremote.port=12345  -Dcom.sun.management.jmxremote.ssl=false  -Dcom.sun.management.jmxremote.authenticate=false"

systemctl start tomcat.service
  • 步骤2:zabbix-java-gateway主机设置
    zabbix-java-gateway可以搭建在zabbix-server上,也可以单独搭建 本实验将其搭建在zabbix-server上
yum install zabbix-java-gateway
vim /etc/zabbix/zabbix_java_gateway.conf   // 默认设置即可,不需修改
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052

systemctl start zabbix-java-gateway.service
  • 步骤3:zabbix-server主机设置,开启java gateway功能
vim /etc/zabbix/zabbix_server.conf       
JavaGateway=192.168.136.131
JavaGatewayPort=10052
StartJavaPollers=5

systemctl restart zabbix-server.service
  • 步骤4:在zabbix-server上增加host的jmx监控接口
    在这里插入图片描述
  • 步骤5:增加items,使用JMX agent监控
    在这里插入图片描述
  • 步骤6:稍候片刻,可以看到监控信息图
    在这里插入图片描述

七、Zabbix Proxy

  • 降低zabbix server的network I/O的方法:
    采用主动检测
    通过proxy代理
  • zabbix proxy的原理:
    由proxy收集本网段被监控主机的信息,以一定间隔时间向zabbix server同步信息
  • zabbix proxy的作用:
    降低zabbix server的network I/O
    实现分布式监控
    解决跨网监控很难穿越防火墙的问题
  • 实验9:实现zabbix proxy监控
  • 实验环境:
    node1.hellopeiyang.com: 192.168.136.130, zabbix agent
    node2.hellopeiyang.com: 192.168.136.131, zabbix server
    node3.hellopeiyang.com: 192.168.136.132, zabbix proxy
  • 步骤1:安装zabbix-proxy,并配置数据库
// 安装程序包
yum install zabbix-proxy-mysql zabbix-get zabbix-agent zabbix-sender              
yum install mariadb-server
// 数据库服务器配置
vim /etc/my.cnf.d/server.cnf
[server]
innodb_file_per_table = ON
skip_name_resolve = ON
max_connections = 2000
innodb_buffer_pool_size = 256M
systemctl start mariadb
mysql_secure_installation
// 建立zabbix proxy数据库
mysql -uroot -pmagedu
MariaDB [(none)]> create database zbxproxydb;
MariaDB [(none)]> grant all on zbxproxydb.* to zbxproxyuser@'192.168.136.%' identified by 'centos';
cp /usr/share/doc/zabbix-proxy-mysql-3.4.4/schema.sql.gz /root
gzip -d /root/schema.sql.gz
mysql -uzbxproxyuser -pcentos -h192.168.136.132  zbxproxydb < /root/schema.sql
  • 步骤2:配置zabbix proxy
vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.136.131      // zabbix server主机地址
ServerPort=10051            // zabbix server监听端口,默认值
// 当前代理服务器的名称;在server添加proxy时,必须使用此处指定的名称
Hostname=node4.hellopeiyang.com

// 数据库设置
DBHost=192.168.136.132
DBName=zbxproxydb
DBUser=zbxproxyuser
DBPassword=centos
              
ConfigFrequency=10          // proxy向server同步配置数据的时间间隔(s)
DataSenderFrequency=1       // proxy向server发送监控数据的时间间隔(s)
systemctl start zabbix-proxy.service
  • 步骤3:配置zabbix agent
yum install zabbix-agent zabbix-sender
vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.136.132     // zabbix proxy的ip地址
ListenPort=10050
ListenIP=0.0.0.0
ServerActive=192.168.136.132
Hostname=node1.hellopeiyang.com

systemctl start zabbix-agent.service

在这里插入图片描述

  • 步骤5:在server端配置通过此proxy监控的主机
    在这里插入图片描述
  • 步骤6:添加items
    建议使用主动检测"Zabbix agent (active)"
    在这里插入图片描述
    在这里插入图片描述
  • 步骤7: 稍候片刻,可以看到监控信息图
    在这里插入图片描述

八、Zabbix调优

  • zabbix调优的目的:
    降低nvps(new values per second)值
    降低zabbix server的磁盘I/O与网络I/O
    降低mysql数据库的读写压力

  • zabbix调优方向:
    数据的调整
    server的调整
    数据库的调整

  • 数据调优要点:

  • 历史数据不要保存太长时长

  • 尽量让数据缓存在数据库服务器的内存中

  • 触发器表达式:
    减少使用min(), max(), avg()
    尽量使用last(),nodata()

  • 数据收集:
    polling较慢,减少使用SNMP/agentless/agent
    尽量使用trapping, agent(active)

  • 数据类型:
    文本型数据处理速度较慢,尽量少收集类型为text或string类型的数据
    多使用类型为numeric的

  • zabbix服务器的进程:

  • 服务器组件的数量,在/etc/zabbix/zabbix_server.conf alerter, discoverer,
    escalator, http poller, housekeeper, icmp pinger, ipmi polller,
    poller, trapper, configration syncer, …

  • 设定合理的缓存大小
    CacheSize=8M
    HistoryCacheSize=16M
    HistoryIndexCacheSize=4M
    TrendCacheSize=4M
    ValueCacheSize=4M

  • 数据库优化:分表
    主要分为以下三个方面的表:
    history_*
    trends*
    events*

参考链接 :20171128 Zabbix(二) : https://www.jianshu.com/p/a945956cf1f1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值