zabbix 4.4 目前所有组件都具备
重新安装新的版本需要重新导入数据和表
web页面必须要有模块才可以绿
zabbix agent2默认是以zabbix用户启动的。
新添加的监控项看日志:inodb" became supported 表示已启动,这时监控项才可以使用。
1、zabbix 监控项表是哪个?
在Zabbix中,监控项存储在“items”表中。这个表包含了Zabbix服务器或代理应该监控的所有指标,包括主机CPU使用率、内存使用率、网络流量、硬盘容量等。每个监控项都有一个唯一的ID和名称,以及其他属性,例如数据类型、单位、阈值等。这些属性用于定义监控项如何收集和处理数据
2、zabbix 数据库中表详解
在Zabbix数据库中,有很多表用于存储监控数据和配置信息。以下是一些常见的Zabbix数据库表及其功能的详细说明:
1. hosts表:该表存储所有监控主机的信息,包括主机名、IP地址、监控代理等。
2. items表:该表存储所有监控项的信息,包括监控项名称、数据类型、单位、阈值等。
3. history表:该表存储历史监控数据,例如CPU使用率、内存使用率等。可以根据需要配置多个历史表,以处理不同类型的数据。
history表为history_uint、history_str、history_text等。history表的数据类型是变长的,可以存储不同的数据类型(如整型、浮点型、字符串等)。
4. trends表:该表存储监控数据的趋势信息,例如过去1小时或1天的平均CPU使用率、内存使用率等。
5. triggers表:该表存储触发器的信息,触发器用于检测监控数据是否符合预定义的条件,并在条件满足时触发警报。
6. events表:该表存储所有发生的事件,包括警报事件和自动发现事件等。
7. users表:该表存储Zabbix用户的信息,包括用户名、密码、权限等。
8. actions表:该表存储触发器触发时应执行的操作,例如发送电子邮件、启动脚本等。
9. media表:该表存储所有可用的通知媒介,例如电子邮件、SMS等。
10. hosts_groups表:该表存储主机和主机组之间的关系,一个主机可以属于多个主机组。
3、zabbix原理
zabbix在进行监控时,zabbix客户端要安装在被监控设备上,负责定期收集数据,并将其发送给zabbix服务端;zabbix服务端要安装在监控设备上,其将zabbix客户端发送的数据存储的数据库中,zabbix web根据数据在前端进行展示和绘图。
Zabbix 的工作原理如下:
Zabbix Agent 定期采集被监控设备的状态数据,并将数据发送给 Zabbix Server 或 Zabbix Proxy。
Zabbix Server 或 Zabbix Proxy 接收到状态数据后,将数据存储到数据库中,并进行数据处理和分析。
Zabbix Web 通过查询数据库来显示监控数据、配置监控项、管理报警规则等。
Zabbix API 可以通过调用 API 接口来实现自动化的监控配置、数据查询和报警处理
4、zabbix web 是如何获取zabbix数据库的数据的
具体来说,当用户在Zabbix Web上发出请求时,Zabbix Web将该请求发送到Zabbix服务器。Zabbix服务器会在数据库中检索请求的数据,并将数据作为JSON格式返回给Zabbix Web。Zabbix Web然后解析JSON数据,并使用JavaScript等技术将数据渲染为图表、报表或其他UI组件。
Zabbix Web使用PHP编写,并使用多个开源技术,如jQuery、Bootstrap和Highcharts等来实现数据呈现和用户界面交互功能。为了使Zabbix Web更加高效和响应速度更快,它还可以缓存一些数据,避免每次请求时都要从数据库中检索数据。
总之,Zabbix Web通过Zabbix API与Zabbix服务器通信,从数据库中检索监控数据,并将数据渲染为图表、报表和其他UI组件,从而实现监控数据的展示和呈现。
4.1Zabbix Web 不会直接连接到 Zabbix Server 的数据库来获取数据
这是因为直接连接到数据库有以下问题:
-
安全问题:直接连接到数据库可能会泄露数据库的敏感信息,比如用户名、密码等。
-
数据库不稳定:直接连接到数据库可能会对数据库的稳定性造成影响,因为数据库可能会被多个应用程序同时访问,从而导致数据库性能下降。
-
数据库结构变化:直接连接到数据库可能会受到数据库结构变化的影响。如果数据库结构发生变化,那么所有直接连接到数据库的应用程序都需要进行相应的修改才能正常工作。
为了避免这些问题,Zabbix Web 通过 Zabbix API 向 Zabbix Server 发送请求来获取监控数据。Zabbix API 将请求转发给 Zabbix Server,Zabbix Server 从数据库中检索数据,并将数据返回给 Zabbix API,最后 Zabbix API 将数据返回给 Zabbix Web。这种方式可以保证数据安全、稳定和兼容性。
5、zabbix可以支持多少个监控同时采集?
Zabbix可以支持同时采集数万个监控项,具体取决于Zabbix Server和Zabbix Agent的硬件配置、网络带宽以及监控项的类型等因素。下面是一些可能影响Zabbix监控项数量的因素:
硬件配置:Zabbix Server和Zabbix Agent的硬件配置对系统的性能和并发处理能力有很大影响。如果硬件配置较低,可能会导致系统响应缓慢,无法支持大量监控项的同时采集。
监控项类型:不同类型的监控项对系统的资源消耗不同。例如,CPU利用率、内存使用率等指标的采集比较简单,对系统资源的消耗相对较小;而对于网络流量、磁盘IO等指标的采集,则需要更多的系统资源。
网络带宽:Zabbix Server和Zabbix Agent之间的网络带宽对数据的传输速度和并发处理能力有很大影响。如果网络带宽较低,可能会导致数据传输缓慢,无法支持大量监控项的同时采集。
数据存储和处理能力:Zabbix采集的数据需要存储和处理,如果系统的存储和处理能力不足,可能会导致数据处理缓慢,无法支持大量监控项的同时采集。
综上所述,Zabbix可以支持数万个监控项的同时采集,但具体取决于系统的硬件配置、网络带宽以及监控项的类型等因素。如果需要支持大规模的监控项同时采集,需要进行系统优化和性能测试
6、zabbix 组件有哪些?
Zabbix是一个分布式的监控解决方案,包括以下主要组件:
-
Zabbix Server:Zabbix Server是Zabbix系统的核心组件,负责接收和处理来自Zabbix Agent、Zabbix Proxy等组件的监控数据,进行数据存储和处理,并生成监控报告、警报和图形等。
-
Zabbix Agent:Zabbix Agent是一个在被监控主机上运行的组件,用于收集主机的监控数据,并将其发送给Zabbix Server进行处理和存储。
-
Zabbix Proxy:Zabbix Proxy是一个可选的中间件组件,可用于在大规模分布式监控环境中减轻Zabbix Server的压力,并提高监控效率。
-
Zabbix Web:Zabbix Web是一个Web界面组件,用于访问和管理Zabbix系统。它允许用户查看监控报告、警报、图形和配置信息等。
-
Zabbix Java Gateway:Zabbix Java Gateway是一个Java组件,用于在Java应用程序中集成Zabbix监控。
-
Zabbix Sender:Zabbix Sender是一个独立的命令行工具,用于将自定义监控数据发送给Zabbix Server进行处理和存储。
-
Zabbix API:Zabbix API是一个HTTP/JSON-RPC接口,允许用户通过编程方式与Zabbix Server进行交互,例如自动配置主机和监控项、发送告警等。
-
zabbix-web-mysql 和zabbix-server-mysql 组件
zabbix-web-mysql
和zabbix-server-mysql
是Zabbix软件的两个主要组件。它们分别是Zabbix Web前端和Zabbix Server后端的MySQL数据库支持。zabbix-web-mysql
,则无法使用Zabbix Web前端,也无法从Web界面查看或配置监控数据。zabbix-server-mysql
是Zabbix Server后端的MySQL数据库支持,它负责存储和处理监控数据,并将其提供给Zabbix Web前端。如果您不安装zabbix-server-mysql
,则无法启动Zabbix Server,也无法监控您的IT基础架构。zabbix-server-mysql
是 Zabbix 的一个组件,它提供了与 MySQL 数据库交互的功能,可以让 Zabbix 服务器将收集到的监控数据存储到 MySQL 数据库中。这个组件需要与zabbix-server
一起安装和使用。而
zabbix-server
则是 Zabbix 的核心组件,它负责接收来自 Zabbix Agent 的监控数据,存储数据到数据库中,并提供 Web 界面和 API 来查询和展示数据
7、agent和agent2有什么区别
-
本节介绍 Zabbix agent 和Zabbix agent 2 的区别。
参数 Zabbix agent Zabbix agent 2 编程语言 C Go,部分使用C 守护进程 支持 仅由 systemd (在 Windows 上是) 支持的扩展 C中的自定义可加载模块 Go 中的自定义插件 要求 支持的平台 Linux, IBM AIX, FreeBSD, NetBSD, OpenBSD, HP-UX, Mac OS X, Solaris: 9, 10, 11, Windows: 自 XP 以来的所有桌面和服务器版本。 Linux, Windows: 自 XP 以来的所有桌面和服务器版本。 支持的加密库 GnuTLS 3.1.18 和更新的 OpenSSL 1.0.1, 1.0.2, 1.1.0, 1.1.1。 LibreSSL - 使用 2.7.4、2.8.2 版本进行测试(存在某些限制,请参阅加密 页面了解详细信息)。 Linux: 自 Zabbix 4.4.8 起支持OpenSSL 1.0.1 及更高版本。 MS Windows: OpenSSL 1.1.1 或更高版本。 OpenSSL 库必须启用 PSK 支持。不支持 LibreSSL。 监控流程 进程 每个服务器/代理记录的单独主动检查进程。 具有自动创建线程的单个进程。 最大线程数由 GOMAXPROCS 环境变量确定。 指标 UNIX: 查看支持的监控项列表。 Windows: 查看其他Windows 特定监控项的列表。 UNIX: Zabbix agent支持的所有指标。 此外,代理 2 为以下对象提供 Zabbix-native 监控解决方案:Docker, Memcached, MySQL, PostgreSQL, Redis, systemd,和其他监控目标 - 请参阅代理 2 特定监控项的完整列表。 Windows: Zabbix agent代理支持的所有指标,以及HTTPS、LDAP 的net.tcp.service 检查。 此外,agent 2 为 PostgreSQL、Redis 提供了 Zabbix-native 监控解决方案。 并发 单个服务器的主动检查按顺序执行。 来自不同插件的检查或一个插件内的多个检查可以同时执行。 预定/灵活的间隔 仅支持被动检查。 支持被动和主动检查。 第三方陷阱 不支持 支持 附加的功能 持久性存储 不支持 支持 log[]指标的持久性文件 支持(仅在 Unix 上) 不支持 超时设置 仅在代理级别定义。 插件超时可以覆盖在代理级别定义的超时。 在运行时更改用户 支持(仅限类 Unix 系统) 不支持(由 systemd 控制) 用户可配置的密码套件 支持 不支持
abbix 服务挂掉,web前端界面还可以打开嘛
如果 Zabbix 服务已经挂掉,那么 Web 前端界面将无法正常打开。因为 Web 前端需要连接 Zabbix 服务器来获取监控数据并将其显示在界面上。如果 Zabbix 服务器已经挂掉,那么就无法获取监控数据,Web 前端也就无法正常工作。
当 Zabbix 服务器宕机时,它将无法收集和处理监控数据,这将导致无法提供实时监控数据和警报。同时,Zabbix Web 前端还将受到影响,因为它需要与 Zabbix 服务器通信以获取监控数据并显示在 Web 界面中。
如果您无法在浏览器中打开 Zabbix Web 前端,则可能是因为 Zabbix 服务器已经停止运行或出现其他问题。您可以尝试检查 Zabbix 服务器的运行状态,并查看日志文件以了解任何错误信息。同时,您也可以尝试重新启动 Zabbix 服务器并解决任何可能的问题,以确保 Zabbix 服务器和 Web 前端都可以正常工作。
8、zabbix 主被动模式
主动模式适用于需要对被监控设备进行主动控制或需要及时获取实时性能数据的场景,但会增加服务器和代理的负载;
被动模式:
在被动模式之下,zabbix server会根据主机关联的模板中的监控项和数据采集间隔时间,周期性的打开随机端口并向zabbix agent服务器的10050发起tcp连接,然后发送获取监控项数据的指令,即zabbix server发送什么指令那么zabbix agent就收集什么数据,zabbix server什么时候发送zabbix agent就什么时候采集,zabbix server不发送zabbix agent就一直不响应,所以zabbix agent也不用关心其监控项和数据采集周期间隔时间。
被动模式则适用于简单易用的场景,无需安装代理软件,但可能存在数据延迟较高和无法控制数据获取频率的问题
主动模式:
主动模式是由zabbix agent主动向zabbix server的10051端口发起tcp连接请求。 因此主动模式下必须在zabbixagent配置文件中指定zabbix server的IP或者主机名(必须可以被解析为IP地址),在连接到zabbix server之前zabbix agent是不知道自己要采集那些数据以及间隔多久采集一次数据的,然后在连接到zabbix server以后获取到自己的监控项和数据采集间隔周期时间,然后再根据监控项采集数据并返回给zabbix server。
在主动模式下不再需要zabbix serve向zabbix agent发起连接请求,因此主动模式在一定程度上可减轻zabbix server打开的本地随机端口和进程数,在一定程度就减轻看zabbix server的压力。
Zabbix Web 可以缓存 Zabbix Server 的监控数据,以提高访问性能。具体来说,Zabbix Web 可以使用内置的缓存机制来缓存监控数据和配置信息,包括主机、触发器、图形等等。在缓存的数据有效期内,用户再次访问相关页面时,Zabbix Web 会直接从缓存中读取数据,而不需要重新向 Zabbix Server 请求数据,从而提高了访问速度。
Zabbix Web 缓存数据的有效期可以通过配置文件进行调整,默认为 1 分钟。如果需要更改缓存时间,可以编辑 Zabbix Web 的配置文件,修改 cache
部分的参数。例如,将缓存有效期设置为 5 分钟:
makefileCopy codecache_size=8M
cache_expire=300
需要注意的是,缓存机制可能会导致 Zabbix Web 显示的数据不是最新的,因为缓存的数据并不是实时更新的。如果需要查看最新的监控数据,可以手动刷新页面或等待缓存过期。
主动模式配置
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0 Server=192.168.190.149
ServerActive=192.168.190.149
Hostname=192.168.190.150
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
配置邮件服务器
[root@houwenbiao-end zabbix_agent2.d]# cat /etc/mail.rc s
set smtp=smtp.qq.com
set smtp-auth-user=1984811370@qq.com
set smtp-auth-password=uxutdgjjtgftehdc
set smtp-auth=login
[root@houwenbiao-end zabbix_agent2.d]# echo "test" |mailx -s "邮件的标题" 1984811370@qq.com
出现监控图标中的图层断层可能是由于以下原因导致的:
1.数据采集间隔过长:如果数据采集间隔过长,可能会导致数据点数量不足,从而出现图层断层的情况。因此,可以适当缩短数据采集间隔,以增加数据点的数量,从而优化监控图标。
**在 Zabbix 中缩短数据采集间隔的方法是通过修改主机或者监控项的更新间隔来实现**
1. 图表时间范围设置不当:如果图表时间范围设置过长,可能会导致数据点过多,从而出现图层断层的情况。因此,可以适当缩短图表时间范围,以减少数据点的数量,从而优化监控图标。
2. 图表样式设置不当:如果图表样式设置不当,可能会导致图层断层的情况。因此,可以尝试调整图表样式,如线条宽度、颜色等参数,以优化监控图标。
3. 网络传输问题:如果网络传输出现问题,可能会导致数据丢失,从而出现图层断层的情况。因此,可以检查网络传输是否正常,并尝试重新采集数据,以优化监控图标。
4. 数据处理问题:如果数据处理出现问题,可能会导致图层断层的情况。因此,可以检查数据处理流程是否正常,并尝试重新处理数据,以优化监控图标。
查看zabbix2 是否运行的
[root@houwenbiao-end ~]# systemctl is-active zabbix-agent2
active
9、zabbix自动发现、自动注册
一、概述:
- 自动发现:由服务端主动发起,Zabbix Server开启发现进程,定时扫描局域网中IP服务器、设备。
- 自动注册由客户端主动发起,客户端必须安装并启动Agentd,否则无法被自动注册添加至主机列表,即agent自动向server注册,你来注册且满足我条件我就给你监控
2、主机自动注册的流程
- zabbix客户端需要配置ServerActive
- zabbix客户端把自己的元数据提供给zabbix服务器或zabbix分布式proxy
- zabbix服务器添加动作,当收到元数据时候自动添加主机、链接模板等
3、注意
添加主机会把Hostname填上
只需要一个Action就好
需要注意每个Agent都要加上HostMetadataItem这个配置
web页面配置
配置----自动发现---不需要配置agent
**自动发现配置:**
Server=192.168.190.149
ServerActive=192.168.190.149
Hostname=pianpian
配置----自动注册
**自动注册配置如下:**
[root@zhangsan zabbix]# grep -v -e '#' -e '^$' zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.190.149
ServerActive=192.168.190.149
Hostname=192.168.190.145
HostMetadata=web
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
**#HostMetadata*定义主机的元数据,在自动注册的时候使用,不能大于255个字符,如果不设置默认从HostMetadataItem获取*
systemctl restart zabbix-agent2.service
**HostnameItem=system.hostname**
在 Zabbix Agent 2 的主动模式下,`HostnameItem` 参数通常不需要设置,因为主动模式下 Zabbix Agent 2 会向 Zabbix Server 或 Proxy 发送其自身的主机名信息。如果设置了 `HostnameItem` 参数,Zabbix Agent 2 会忽略该参数,使用其自身的主机名。
但是,如果您使用的是 Zabbix Agent 2 的被动模式,则需要设置 `HostnameItem` 参数来指定 Zabbix Agent 2 返回的主机名信息。`HostnameItem` 参数指定的是一个 Zabbix Agent 2 的 item 名称,该 item 的值将作为主机名返回给 Zabbix Server 或 Proxy。
例如,如果您将 `HostnameItem` 参数设置为 `system.hostname`,则 Zabbix Agent 2 将会返回该主机的 hostname 作为主机名。在被动模式下,如果不设置 `HostnameItem` 参数,则 Zabbix Agent 2 将使用 `Hostname` 参数指定的主机名作为返回值。
**RefreshActiveChecks** 参数控制的是主动监控项的过期时间。当一个主动监控项超过了 RefreshActiveChecks 参数设置的时间没有被更新,Zabbix agent 会重新检查该监控项的值,并将最新的值发送给 Zabbix Server。因此,这个参数的作用是确保主动监控项的值及时更新,而不是对所有主动监控项进行检查。
10、zabbix邮件告警
配置---动作---触发器
故障告警:
故障{TRIGGER.STATUS},服务器:{HOSTNAME1},发生: {TRIGGER.NAME}故障!
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复操作:配置用户告警
恢复{TRIGGER.STATUS},服务器:{HOSTNAME1},非:{TRIGGER.NAME}已恢复!
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
配置用户告警
11、配置自动发现为什么要配置hosts解析?不配置行不行?这其中的原理是什么
配置自动发现时,需要配置hosts解析是因为自动发现功能是通过扫描网络中的IP地址来寻找需要监控的设备或服务。而如果不进行hosts解析,系统只能根据IP地址来确定设备或服务的位置,无法确定其具体的主机名或域名信息。
配置hosts解析可以将IP地址和主机名或域名进行对应,方便自动发现功能能够更加准确地确定设备或服务的位置,并加快自动发现的速度。如果不进行hosts解析,系统需要通过其他方式来确定设备或服务的位置,这可能会导致自动发现的速度变慢,也可能会影响自动发现的准确性。
需要注意的是,在配置hosts解析时,需要保证主机名或域名与实际设备或服务的信息相对应,否则可能会引起监控系统的误报或漏报,影响监控系统的精度和效率。
12、zabbix proxy代理
概述
zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.
此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。
zabbix proxy 使用场景:
-
监控远程区域设备
-
监控本地网络不稳定区域
-
当 zabbix 监控上千设备时,使用它来减轻 server 的压力
-
简化分布式监控的维护
zabbix proxy 仅仅需要一条 tcp 连接到 zabbix server,所以防火墙上仅仅需要加上一条规则即可。
zabbix proxy 数据库必须和 server 分开,否则数据会被破坏。
```
proxy 收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给 zabbix server,这样就不会因为服务器的任何临时通信问题而丢失数据。这个时间由 [proxy配置文件](https://www.zabbix.com/documentation/4.0/zh/manual/appendix/config/zabbix_proxy)中参数 *ProxyLocalBuffer* 和 *ProxyOfflineBuffer* 决定。
```
注意从Zabbix server数据库直接更新最新配置的proxy可能会比Zabbix server新,而Zabbix server的配置由于 [CacheUpdateFrequency]的原因而无法快速更新。因此,proxy收集发送Zabbix server数据可能会被忽略。
zabbix proxy 是一个数据收集器,它不计算触发器、不处理事件、不发送报警。有关proxy功能的概述,如下表:
![image-20230508141713251](D:\Typora\python 截图\image-20230508141713251.png)
在Zabbix中,StartAgents和ProxyMode都是关于代理的设置。StartAgents指定代理是否应该启动其自身的Zabbix代理。ProxyMode定义代理的工作模式。以下是更详细的解释:
1. StartAgents=0
StartAgents是一个配置文件中的参数,它指定代理是否应该启动自身的Zabbix代理。如果StartAgents设置为0,则该代理将不会启动其自身的Zabbix代理,这意味着Zabbix服务器将无法直接与代理通信,必须使用主机本身上运行的代理进行通信。
如果StartAgents设置为1,则该代理将启动其自身的Zabbix代理。这样,Zabbix服务器就可以直接与代理通信,而无需使用主机上运行的代理进行通信。
1. ProxyMode=0
ProxyMode是另一个Zabbix代理的配置文件参数,它定义代理的工作模式。当ProxyMode设置为0时,代理将按照其默认模式工作。代理默认模式下,主机上运行的代理将从Zabbix服务器接收指令,并将数据发送回Zabbix服务器。
总结:
- StartAgents=0:代理不会启动自己的Zabbix代理。
- ProxyMode=0:代理将按照其默认模式工作,即将从Zabbix服务器接收指令并将数据发送回Zabbix服务器。
RefreshActiveChecks=120 是什么意思,起到什么作用
在Zabbix中,RefreshActiveChecks是代理的一个配置参数,用于设置代理将获取活动检查的间隔时间。它指定了在代理轮询Zabbix服务器以获取活动检查时的时间间隔。活动检查是指Zabbix服务器发送给代理的检查请求,以获取来自监控主机的数据。
RefreshActiveChecks=120 表示代理将每120秒(即2分钟)轮询Zabbix服务器以获取活动检查。这个参数的默认值是120秒,因此,如果您没有更改它,代理将每2分钟获取一次活动检查。
通过配置RefreshActiveChecks参数,您可以控制代理获取活动检查的频率,以满足您的监控需求和资源限制。如果您的环境中有大量的监控主机,您可以将这个值设置为更高的值,以减少代理的负载。如果您的监控环境中有很少的主机,则可以将这个值设置为更低的值,以更快地获取监控数据。
13、zabbix 常见的问题有哪些
下是一些Zabbix常见问题的例子:
1.性能问题:Zabbix的数据量通常很大,因此性能问题是一个常见的问题。这可能导致长时间的延迟或高CPU占用率。
2.数据库问题:Zabbix需要一个强大的数据库来存储大量的监控数据,但如果数据库出现问题,整个系统可能会崩溃或出现延迟。
3.网络问题:Zabbix需要在监控主机和Zabbix服务器之间进行网络通信,如果网络连接出现问题,可能会导致数据延迟或丢失。
4.配置问题:Zabbix需要正确的配置才能正常工作,因此配置问题是一个常见的问题。如果配置错误,可能会导致数据丢失或不准确。
5.安全问题:Zabbix包含敏感信息,如用户名、密码和监控数据等。如果没有适当的安全措施,这些信息可能会被黑客盗取。
6.版本兼容性问题:Zabbix经常发布新版本,如果监控主机和Zabbix服务器不同步更新,可能会导致兼容性问题。
7.报警通知问题:Zabbix的报警通知功能是一个关键的功能,但如果没有正确配置,可能会导致无法及时获得报警通知或错误的通知。
8.高可用性问题:Zabbix需要保证高可用性以确保系统始终可用,但如果没有正确配置,可能会导致系统中断或不可用。
9.日志记录问题:Zabbix需要日志记录以记录系统操作和错误信息,但如果日志记录不正确或不足,可能会导致故障排除困难或无法找到故障根本原因。
10.数据备份问题:Zabbix包含大量的监控数据,这些数据是非常重要的。因此,对于Zabbix的数据备份是一个非常关键的问题。如果没有正确备份,数据可能会丢失或不可恢复。
11.界面问题:Zabbix的用户界面可能会难以使用或不直观,这可能会导致新用户无法轻松使用该系统。
12.插件和模板问题:Zabbix支持许多插件和模板,但如果没有正确配置或使用,可能会导致系统不稳定或数据不准确。
13.SNMP监控问题:Zabbix支持SNMP协议,但如果没有正确配置或使用,可能会导致数据不准确或不可用。
14.大规模监控问题:当需要监控大规模的系统时,Zabbix可能会遇到性能问题或者需要更多的资源来处理监控数据。
14.Zabbix支持各种网络协议
如SNMP、ICMP、TCP、UDP、SSH等)和各种应用程序(如Apache、MySQL、PostgreSQL、Tomcat等)的监控。
15、zabbix备份脚本
16、zabbix 升级操作
17、zabbix 都监控那些东西
系统启动时间 cpu、内存使用率、磁盘、processes数、磁盘IO百分比、inode使用率、根目录空间使用率 异常的bash进程 、是否存在空密码用户、可登录用户数、tcp11种状态、noproc已使用进程数
###nginx状态码状态监控
cat curl_nginx_HTTP.conf
UserParameter=web,curl -I 192.168.190.150 2>&1 | grep -i '^HTTP/1.1' | cut -d' ' -f2###磁盘IO百分比
device_io.conf
UserParameter=device_io,sh /etc/zabbix/scripts/device_io.sh
#!/bin/bash
device_io=$(iostat -x | grep sda | awk '{print $NF}')
echo $device_io####内存使用情况
cat free.conf
UserParameter=free,sh /etc/zabbix/scripts/free_system.sh
UserParameter=ptotal,free -m | awk 'NR==2{print $2}'
UserParameter=puserd,free -m | awk 'NR==2{print $3}'
UserParameter=pfreed,free -m | awk 'NR==2{print $4}'
UserParameter=cached,free -m | awk 'NR==2{print $6}'#!/bin/bash
total=$(free -m | awk -F " " NR==2'{print $2}')
user=$(free -m | awk -F " " NR==2'{print $3}')
system_total=$[user*100/total]
#system_total=$(echo "scale=2; $user*100/$total" | bc)
#free=($system_total*100)
#system_total=$[user*100/total]
echo "${system_total}"###磁盘inode使用情况
cat inodb.conf
UserParameter=inodb,sh /etc/zabbix/scripts/inodb.sh#!/bin/bash
inodb=$(df -i | awk 'NR==2 {print $5}'| tr -d %)
echo "$inodb"###mariadb进程状态
cat mariadb.conf
UserParameter=mariadb,bash /etc/zabbix/scripts/mariadb.process.sh#!/bin/bash
mariadb=$(ps -ef | grep mariadb | grep -v 'grep \|bash' | wc -l)
echo $mariadb####系统进程使用情况
cat noproc.conf
UserParameter=noproc,ps aux | wc -l###当前系统tcp状态
cat tcp.conf
UserParameter=ESTABLISHED,netstat -anpt | grep -c 'ESTABLISHED'
UserParameter=SYN_SENT,netstat -anpt | grep -c 'SYN_SENT'
UserParameter=SYN_RECV,netstat -anpt | grep -c 'SYN_RECV'
UserParameter=FIN_WAIT1,netstat -anpt | grep -c 'FIN_WAIT1'
UserParameter=FIN_WAIT2,netstat -anpt | grep -c 'FIN_WAIT2'
UserParameter=TIME_WAIT,netstat -anpt | grep -c 'TIME_WAIT'
UserParameter=TIME_WAITCLOSE,netstat -anpt | grep -c 'TIME_WAITCLOSE'
UserParameter=CLOSE_WAIT,netstat -anpt | grep -c 'CLOSE_WAIT'
UserParameter=LAST_ACK,netstat -anpt | grep -c 'LAST_ACK'
UserParameter=LISTEN,netstat -anpt | grep -c 'LISTEN'
UserParameter=CLOSING,netstat -anpt | grep -c 'CLOSING###当前系统负载使用情况
cat uptime.conf
#UserParameter=up,uptime | awk '{print $2,$3}' | tr -d ','
UserParameter=up,uptime###当前登录系统的用户
cat who.conf
UserParameter=who,sh /etc/zabbix/scripts/system_who.sh#!/bin/bash
system_who=$(who | awk '{print $1}' | uniq)
echo $system_who
不管是zabbix,还是其他的开源监控,说到底都是在做五件事: 1.数据的采集 2.采集过来的数据存储 3.把存储起来的数据进行分析 4.把分析的结果使用图标展示 5.把有问题的地方采用各种方式告警
而我们要监控的也无非是5大块,服务器,中间件,数据库,网络设备,应用。
监控指标举例
1.监控web服务
web服务是否正常 业务 (网页是否能访问、是否可以完成下订单、注册用户) 服务的响应时间 服务的并发量 (活动用户、非活动用户)
#### 2.监控数据库
监控磁盘使用情况监控内存内存使用查看并发连接数量 检查数据库执行增删改查的频率 检查主从状态 检查数据库的备份情况5
#### 3.服务器监控
磁盘 使用率 inode数 block数 读写速率0
CPU
监控cpu负载 监控使用cpu资源最多的进程
内存
使用率 缓冲区 缓存区 交换分区大小
#### 4.网络
监控每个网卡的上先行速率 监控占用网络带宽见多的进程 监控晰岸数据包的丢包 监控网络数据包的阻塞情况 当前系统中的总进程数 监控特定的程序的进程数
我们主要用的是zabbix作为监控,主要监控 数据库,web,网络,中间件和一些其他应用,比如我们监控mysql,主要关注磁盘,内存,并发数,数据库的增啥改查频率,主从状态等等数据库性能方面,主要关注: 查询吞吐量 查询执行性能 连接情况 缓冲池使用情况
tcp的11种状态:
ESTABLISHED:TCP 连接已经建立并且数据可以传输。
SYN_SENT:发送了一个连接请求 SYN,等待对方确认 ACK。
SYN_RECV:接收到连接请求 SYN,已发送确认 ACK。
FIN_WAIT1:当前端口的套接字已经完成发送数据,等待另一端的 FIN 报文。
FIN_WAIT2:另一端已经确认了当前端口套接字发送的 FIN 报文,但是当前端口套接字还没有收到另一端的 FIN 报文,处于等待另一端关闭连接的状态。
TIME_WAIT:当前端口的套接字已经完成关闭,等待 2MSL(Maximum Segment Lifetime,最大报文生存时间)后才会真正关闭。这个时间用于保证对方收到了关闭连接的消息。
TIME_WAITCLOSE:指定端口的套接字已经完成关闭,但是处于 TIME_WAIT 状态的连接数量达到了系统限制,所以不能立即关闭。
CLOSE_WAIT:收到对方的 FIN 报文,正在等待自己的应用程序关闭套接字。
LAST_ACK:当前端口的套接字已经发送了 FIN 报文,等待另一端的 ACK 报文,进入这个状态的套接字不能接收数据。
LISTEN:当前端口正在监听连接请求。
CLOSING:双方同时关闭连接,当前端口已经发送了 FIN 报文,等待另一端的 FIN 报文。
这些状态在网络协议分析和故障排除中非常重要,可以用来确定连接的状态和定位问题
18、zabbix性能优化
1.针对mysql的话,引擎选择innode(写多读少),因为这zabbix没有多少人看,主要是监控指标入库的数量多,因此引擎建议使用innode,myisam是读多写少的引擎
2.对history history_log history_str history_text history_uint这几张进行分表操作,所有采集数据都在这里存储
3.去掉没有用的监控项,增加监控项的取值间隔,减少历史数据的保存周期
4.把监控项的被动模式修改为主动模式,增加zabbix-proxy,zabbix-proxy是将zabbix-agent的数据先存到zabbix-proxy,在由proxy给zabbix-server转发,这样一来proxy相当于一个缓存的存在,可以减轻服务器的压力
5.针对zabbix-server进程调优,谁忙就加大他的进程数量
zabbix-sevrer进程数调优
2.1.模拟自动发现进程太忙
增加大范围的自动发现
2.2.观察图形变化
监测—图形—zabbix-sever----zabbix data gatering process busy %
紫色的就是自动发现的进程使用情况,可以看到已经直线上升且到达100%
2.3.对自动发现进程进行调优
自动发现进程数的范围是0-250,最多是250个进程,每启动一个进行都会消耗系统内存
默认为1,这里我们调整为6
6.针对zabbix-server缓存调优,谁的内存剩余少,就加大它的缓存值 7.针对zabbix-server历时数据和趋势图的表,进行周期性分表 8.对一些触发器设置平均值,否则将会引来报警洪水,一会发一条好的一会发一条坏的 9.可以创建分组报警,减轻服务器压力
19、使用zabbix监控item过程中遇到的报错
1、Zabbix客户端日志出现(Not all processes could be identified, 解决
场景:因为使用了netstat -p参数。
权限问题,zabbix_agentd是zabbix用户启动的,默认不能执行netstat -p等命令,导致从服务器取到的自动发现脚本为空
(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) 解决方法 : chmod +s /bin/netstat chmod +s 是什么意思
chmod +s
是一条 Linux/Unix 命令,用于给一个文件或者目录设置 SUID 权限。SUID(Set User ID)是一种权限位,允许一个程序在执行时拥有其拥有者的权限。当一个程序具有 SUID 权限时,无论是哪个用户执行该程序,该程序都将以拥有者的权限执行。具体而言,
chmod +s
命令将设置一个文件或目录的 SUID 位,即使普通用户也可以在执行该文件或目录时获得拥有者的权限。一般情况下,只有特定的系统程序需要使用 SUID 权限,因为这可以确保它们只能被特定的用户执行。对于普通用户创建的文件或目录,通常不应该设置 SUID 权限,因为这可能会导致安全漏洞
20、zabbix SSL 加密
1、下载安装mod_ssl和openssl
1、安装yum -y install mod_ssl openssl
2、生成证书
openssl genrsa -out server.key 2048
#生成加密私钥
openssl req -new -key server.key -out server.csr
#生成证书签名请求
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
3、修改apache配置文件 vim /etc/httpd/conf.d/ssl.conf 写上证书的正确路径
重启httpd服务 浏览器输入https://IP/zabbix已经可以访问
###
21、zabbix + grafana
1.全面的监控:Zabbix可以监控各种设备和服务,包括服务器、网络设备、数据库、应用程序等。Grafana可以将Zabbix的监控数据可视化,提供丰富的仪表盘和图表,方便用户快速识别问题。
2.可扩展性:Zabbix和Grafana都可以通过插件和API进行扩展,允许用户根据需要添加自定义功能。
3.用户友好性:Grafana提供了易于使用的仪表盘编辑器,可以让用户轻松创建漂亮、交互式的图表。同时,Zabbix提供了丰富的报警功能,可以让用户在发生问题时及时获得通知。
4.开放性:Zabbix和Grafana都是开源工具,允许用户自由修改和定制,也可以充分利用社区支持和插件来增强其功能和性能。
综上所述,Zabbix和Grafana的结合可以提供全面、可扩展、用户友好和开放的监控解决方案。