乐维社区_乐乐 乐维社区_乐乐
关注数: 4 粉丝数: 67 发帖数: 13 关注贴吧数: 3
干货!Zabbi server常见配置参数详解 AlertScriptsPath/usr/local/share/zabbix/alertscripts 自定义报警脚本位置(取决于datadir编译时安装变量) AllowRoot0 是否允许以root的身份允许,如果禁止,且服务器仍以root身份启动,服务端会切换到用户zabbix 0-不允许,1-允许 AllowUnSupportedDBVersions0 是否允许server使用不受支持的数据库版本,为开发适配其它数据库使用 0-不允许,1-允许 CacheSize32M 配置缓存的大小,用于存储主机、监控项和触发器数据的共享内存大小 范围:128K-64G 常见错误: Zabbix server: Zabbix value cache working in low memory mode 将CacheSize的值调大 zbx_mem_realloc(): out of memory #zabbix内存溢出,将CacheSize的值调小 DBHostlocalhost 数据库主机名 DBName 数据库名称 DBPassword 数据库密码 DBPort 不使用本地套接字时的数据库端口 DBSchema 数据库架构名称。用于PostgreSQL DBSocket MySQL套接字文件的路径 DBUser 数据库用户 DebugLevel3 指定调试等级 范围:0-5 5(DEBUG):记录最详细的日志,包括调试信息、函数调用、变量值等 4(TRACE):记录更多内部状态,包括内存分配、线程活动等。 3(INFO):记录常规操作信息,如服务启动/停止、配置加载、监控项处理等 2(WARNING):记录潜在问题或异常情况,如监控项采集失败、触发器状态变更等 1(ERROR):记录严重错误,如数据库连接失败、配置文件语法错误等 0(FATAL):仅记录致命错误,通常导致服务无法继续运行 ExternalScripts/usr/local/share/zabbix/externalscripts 外向监控类型监控项脚本位置,取决于编译时安装变量 FpingLocation/usr/sbin/fping fping 的位置。确保fping二进制文件具有root所有权并设置了 SUID 标志 该参数可以不设置,Zabbix server内部逻辑默认会尝试在几个常见的路径(包括/usr/sbin/fping,/sbin/fping, /usr/bin/fping,/bin/fping)中搜索 fping 可执行文件。如果这些路径下确实存在fping可执行文件并且Zabbix Server进程(通常是 zabbix 用户)有执行它的权限,那么即使FpingLocation参数没有显式配置,Zabbix也能自动找到并使用fping进行ICMP检查(如ICMP ping,ICMP ping simple,ICMP ping agent 等) Fping6Location/usr/sbin/fping6 fping6 的位置。确保fping6二进制文件具有root所有权并设置了 SUID 标志 HistoryCacheSize16M 历史缓存数据大小,用于存储历史数据的共享内存大小。减少直接查询数据库的频率,值越大,查询同等历史数据的响应时间越短,但所有缓存参数总和不宜超过70% 范围:128K-2G HistoryIndexCacheSize4M 历史索引缓存的大小,用于索引存储在历史缓存中的历史数据的共享内存大小。索引缓存大小大约需要 100 个字节来缓存一个监控项。 范围:128K-2G HousekeepingFrequency1 用于控制数据库自动清理过去数据的频率,单次清理周期最大删除4倍于HousekeepingFreque时间跨度的过期数据,如果服务刚启动,则推迟30分钟后执行删除操作 范围:0-24 Include 子配置文件的路径 JavaGateway zabbix java网关的IP地址,仅在启动Java轮询器时需要 JavaGatewayPort 10052 Zabbix Java 网关监听的端口 #以上两个配置默认不开启,如果有设备的监控项类型是JMX agent时就需要配置开启 ListenIP0.0.0.0 trapper应该监听的逗号分隔的IP地址列表 ListenPort10051 trapper的监听地址 范围:1024-32767 LoadModule server端启动时加载的模块,这些模块用来扩展server的功能 LoadModulePath server模块路径 LogFile 日志文件的名称 LogFileSize1 日志文件的最大大小(MB),如果日志文件大小达到限制并且日志轮转失败,无论出于什么原因,现有的日志文件将被截断并重新开始 范围:0-10240表示禁用 LogTypefile 日志输出类型 file:写入由LogFile参数指定的日志文件 system:写入系统日志 console:输出到控制台 LogSlowQueries0 确定数据库查询在被记录为慢查询之前的最长时间(毫秒) 范围:0-36000000:不记录慢查询 MaxHousekeeperDelete5000 一个housekeeping周期内,一个任务删除的最大行数,此参数仅适用于已删除监控项的历史和趋势数据的删除。 范围:0-10000000:不使用什么限制 PidFile/tmp/zabbix_server.pid PID 文件的名称 ProxyConfigFrequency3600 zabbix server向zabbix proxy发送配置数据的频率,单位为秒。仅用于被动模式的proxies 范围:1-604800 ProblemHousekeepingFrequency60 Zabbix删除已删除触发器的问题的频率,单位为秒。 范围:1-3600 ProxyDataFrequency1 Zabbix server从Zabbix proxy请求历史数据的频率,单位为秒。仅用于被动模式的proxies 范围:1-3600 SNMPTrapperFile/tmp/zabbix_traps.tmp 临时文件,用于从SNMP trap守护进程向服务器传递数据的临时文件 SocketDir/tmp 存储内部Zabbix服务使用的IPC套接字的目录 SourceIP 对外连接的源IP地址 SSHKeyLocation SSH检查和操作的公钥和私钥的位置 SSLCertLocation 用于客户端身份验证的SSL客户端证书文件的位置 SSLKeyLocation 用于客户端身份验证的SSL 私钥文件的位置 SSLCALocation 为SSL服务器证书验证覆盖证书颁发机构(CA)文件的位置。如果不设置,系统范围的目录将被使用 StartAlerters3 控制Zabbix server启动时预派生的alerters实例数量。这些实例负责发送有动作操作生成的通知,如果告警量很大,增加StartAlerters的值可以提高告警发送的并发度,从而减少告警延迟。 范围:1-100 StartDBSyncers4 控制Zabbix server启动时history syncers实例数量。这些实例负责增加实例数量可以提高Zabbix Server与数据库之间的数据同步效率,特别是在处理大量数据或高并发场景时。 范围:1-400 StartDiscoverers1 控制Zabbix server启动时discoverers实例数量。这些实例负责处理自动发现规制。 范围:0-250 StartEscalators1 控制Zabbix server启动时escalators实例数量。这些实例负责告警升级处理。 范围:1-100 StartHistoryPollers5 控制Zabbix server启动时history pollers实例数量。这些实例负责从缓存中获取历史数据并写入到数据库中。 范围:0-1000 StartHTTPPollers1 控制Zabbix server启动时HTTP pollers实例数量,这些实例负责定期向服务器发送HTTP请求来检查服务器状态 范围:0-1000 StartIPMIPollers0 控制Zabbix server启动时IPMI pollers实例数量,这些实例负责定期向服务器硬件发送IPMI请求,以获取服务器的温度、电压、风扇转速等硬件信息 范围:0-1000 StartJavaPollers0 控制Zabbix server启动时Java pollers实例数量,这些实例负责用来监控Java应用程序性能 范围:0-1000 StartLLDProcessors2 控制Zabbix server启动时低级发现 (LLD) workers实例数量,这些实例负责Zabbix自动发现主机上不确定数量的监控项,例如文件系统、网络端口等 范围:1-100 StartODBCPollers1 控制Zabbix server启动时ODBC pollers实例数量,这些实例负责通过ODBC接口从外部数据获取数据 范围:0-1000 StartPingers1 控制Zabbix server启动时ICMP pingers实例数量,这些实例负责发送ping请求来检测网络设备的连通性和相应时间 范围:0-1000 StartPollersUnreachable1 控制Zabbix server启动时pollers for unreachable hosts实例数量,这些实例负责定期检测被判定为不可达主机的状态,以确定他们是否重新变得可达。 范围:0-1000 StartPollers5 控制Zabbix server启动时pollers实例数量,这些实例负责采集和处理监控数据。 范围:0-1000 StartPreprocessors3 控制Zabbix server启动时预处理 workers实例数量,这些实例负责对从监控项收集到的原始数据进行处理,例如数据清洗、数据转换、复杂计算和数据过滤等等 范围:0-1000 StartProxyPollers1 控制Zabbix server启动时pollers for passive proxies的实例数量,这些实例负责与Zabbix Proxy进行通信,收集Proxy代理的主机监控数据 范围:0-250 StartReportWriters0 控制Zabbix server启动时report writers的实例数量,这些实例负责将收集的数据生成报表,设置为0,禁止计划报表生成 范围:0-250 StartSNMPTrapper0 是否启动SNMP trapper进程 范围:0-10:禁用 StartTimers1 控制Zabbix server启动时timers实例数量,这些实例负责管理Zabbix server中的定时任务,将任务分配给相应的工资进程执行 范围:0-1000 StartTrappers5 控制Zabbix server启动时trappers的实例数量,这些实例负责接收来自Zabbix sender、主动 agents和主动proxies的传入连接 范围:0-1000 StatsAllowedIP 用于控制哪些IP地址或网络可以访问Zabbix server的统计信息页面,多个IP之间使用逗号分开 Timeout3 指定我们等待agent、SNMP设备或外部检查的秒数 范围:1-30 TLSCAFile 包含用于对等证书验证的顶级CA证书的文件的完整路径名,用于Zabbix组件之间的加密通信 TLSCertFile 包含服务器证书或证书链的文件的完整路径名,用于 Zabbix 组件之间的加密通信。 TLSCRLFile 包含吊销证书的文件的完整路径名。此参数用于 Zabbix 组件之间的加密通信。 TLSKeyFile 包含服务器私钥的文件的完整路径名,用于 Zabbix 组件之间的加密通信。 TmpDir/tmp 临时目录 TrapperTimeout300 指定trapper处理新数据可能花费的秒数 范围:1-300 TrendCacheSize4M 用于设置存储趋势数据的共享内存大小,趋势数据时Zabbix对历史数据进行聚合计算后的结果,例如每小时的平均值、最大值、最小值等,这些数据用于生成长期趋势图标,减少数据库的存储压力 范围:128K-2G TrendFunctionCacheSize4M 用于缓存趋势计算函数的结果 范围:128K-2G UnavailableDelay60 确定在不可用期间,以秒为单位检查主机可用性的频率 范围:1-3600 UnreachableDelay15 确定在不可达期间,以秒为单位检查主机可用性的频率。 范围:1-3600 UnreachablePeriod45 确定在多少秒的不可达后,将主机视为不可用。 范围:1-3600 Userzabbix 将权限减低到系统上特定的、已存在的用户,仅当以root身份运行且AllowRoot被禁用时有效 ValueCacheSize8M 历史数据缓存带下,用于缓存监控项历史数据请求 范围:0,128K-64G0:禁用值缓存 VMwareCacheSize8M 用于存储VMware数据的共享内存大小 范围:256K-2G VMwareFrequency60 从单个VMware服务收集数据之间的延迟,单位为秒 范围:10-86400 VMwarePerfFrequency60 从单个VMware服务检索性能计数器统计信息之间的延迟 范围:10-86400 VMwareTimeout10 VMware collector从VMware服务等待响应的最大秒数 范围:1-300 WebServiceURL 用于指定Zabbix Web Service的访问地址
Zabbix 进阶:基于 JMX 用户认证的 Tomcat 监控方案 在企业级应用监控体系中,Zabbix 作为主流的开源监控解决方案,常被用于 Tomcat 应用服务器的性能监测。然而,传统的 JMX(Java Management Extensions)无认证访问模式存在显著安全隐患。为解决这一问题,可对 Tomcat 的 JMX 接口启用账号密码认证机制,以满足等保合规要求并防范未授权访问风险。本方案旨在实现 JMX 认证配置与 Zabbix 监控模板的同步调整,确保监控功能不受认证机制影响,同时提升系统安全性。 Tomcat JMX 认证配置实战1、 配置 JMX 认证参数 修改 Tomcat 的启动脚本catalina.sh,在CATALINA_OPTS环境变量中添加 JMX 认证相关配置。以下为完整配置示例(需根据实际环境修改 IP 和端口): CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server={Tomcat主机IP} -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.rmi.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.access.file=/opt/jmxremote.access -Dcom.sun.management.jmxremote.password.file=/opt/jmxremote.password"配置参数解析: •-Djava.rmi.server.hostname:指定 Tomcat 主机 IP,避免 RMI 绑定到错误地址 •-Dcom.sun.management.jmxremote.port:JMX 服务监听端口 •-Dcom.sun.management.jmxremote.rmi.port:RMI 注册表端口,通常与 JMX 端口一致 •-Dcom.sun.management.jmxremote.authenticate=true:启用认证机制 •-Dcom.sun.management.jmxremote.access/file:访问权限配置文件路径 •-Dcom.sun.management.jmxremote.password.file:密码文件路径 2、建立认证账号与权限体系 2.1 密码文件配置 创建并编辑密码文件/opt/jmxremote.password,格式为用户名 密码: vi /opt/jmxremote.passwordkk 12345#账号拥有权限 2.2 权限文件配置 编辑权限文件/opt/jmxremote.access,格式为用户名 权限级别: vi /opt/jmxremote.access kk readonly #文件权限调整 2.3 文件权限控制 为确保安全,需严格限制两个配置文件的访问权限: chmod 600 /opt/jmxremote.access chmod 600 /opt/jmxremote.password ========================需要重启tomcat服务使配置生效=================== /itops/bpm6/bin/shutdown.sh
zabbix批量生成监控项教程 在zabbix使用过程中,可能会有大批量监控性能测试的场景,这时候可能需要模拟生成大批量的监控项用于测试,这里演示使用自动发现的方式进行创建。 配置自动发现 Low-Level Discovery 是 Zabbix 的一种自动发现机制,允许你自动检测并添加多个具有相同结构的监控项,比如:服务器上的磁盘分区、网络接口、数据库中的表、自定义资源(如进程、日志文件等)。 LLD 的核心是返回一个特定格式的 JSON,例如: { "data": [ { "{#DISKNAME}": "sda1" }, { "{#DISKNAME}": "sda2" } ] } 了解了以上原理后,首先我们编写一个Python脚本,用于输出符合LLD格式的JSON数据,举例如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import json # 生成 A1 到 A1000 的磁盘名 disk_list = ["A{}".format(i) for i in range(1, 1001)] # 构造符合 Zabbix LLD 的数据结构 lld_data = { "data": [ {"{#DISKNAME}": disk} for disk in disk_list ] } # 输出 JSON 格式 print(json.dumps(lld_data, indent=4, ensure_ascii=False)) 将以上脚本放到zabbix外部检查脚本目录下后,创建一台用于生成指标的主机在此主机下,创建一个自动发现规则,类型选择外部检查,键值选择我们刚才新建的脚本即可在此发现规则下,创建一个监控项原型,类型选择zabbix采集器,方便进行接收数据创建好之后,即可手动执行此发现规则执行后,可以看到生成了1000个监控项目发送监控数据 以上步骤做好之后,还需要往监控项上报数据,这里通过zabbix_sender的方式进行。 以下为脚本举例: #!/bin/bash for i in $(seq 1 1000); do #echo "A[A$i]" /itops/zabbix/bin/zabbix_sender -z 127.0.0.1 -s test -k "A[A$i]" -o '0.01' 执行此脚本后,可看到监控项已有数据。至此,已简单实现批量生成监控项目。后续也可根据实际需求,进行监控类型,信息类型的更改,用于测试更复杂的场景~
1 下一页