首页 技术与阅读 生活 关于我

Zabbix源码分析 -- Zabbix Server概貌介绍

文档

Zabbix术语

Host相关

告警相关

Zabbix Server配置文件与Zabbix Agent配置文件

zabbix_server.conf

官方参考文档:Daemon configuration: zabbix server

zabbix_agentd.conf

官方参考文档:Daemon configuration: zabbix agent(UNIX)

官方参考文档:Daemon configuration: zabbix agent(Windows)

zabbix_proxy.conf

官方参考文档:Daemon configuration: zabbix proxy

Zabbix Server数据库分析

下图是zabbix前端中Configuration --> Hosts的信息,从中可以看到我们能够为一个Host配置Applications, Items, Triggers, Graphs, Discovery, Web, Interface, Templates. Zabbix Host Info

下面列出了与Host配置(Host, Applications,Items,Triggers,Graphs,Discovery,Web,Interface)相关的数据库表格、监控项目(Item)历史数据相关的数据库表格、用户信息相关的数据库表格。下面我只会介绍某一大类数据库表格下一些重要表格的结构、作用,以及重要表格之间的连接关系,而对其它的数据库表格只给出了数据库表名。

Host相关表格:

在zabbix中host和template有着不同的定义(见前面zabbix术语部分),但它们都包含Applications、Items、Triggers、Graphs、Screens、Discovery、Web、Linked templates(templates),可以说template就是zabbix事先定义好的host,所以在数据库的存储方面host和template的信息都存储在hosts表格中。 hosts表格及其重要,它记录了host几乎所有的信息,而其它比较重要的表格(applications、items、interface、httptest)是通过hosts表格中的hostid来关联上hosts表格的。

Zabbix Server Database hosts

hosts_templates表格给出了host与template之间的链接关系。

Zabbix Server Database hosts_templates

Applications相关表格:

application是一个或多个item的集合,一个item可以属于一个或多个application。 一个template(host)可以包含一个或多个application,一个application可以属于一个或多个template(host)。

applications表格通过hostid关联了hosts表格,并指明了每个applicationid的name。

Zabbix Server Database applications

没弄懂?

Zabbix Server Database application_template

items_applications表格指明了一个application包含了那些item。

Zabbix Server Database items_applications

Items相关表格:

items表格通过hostid关联了hosts表格,并有每个item的详细信息。

Zabbix Server Database items

Triggers相关表格:

以下的表格都和告警相关

triggers表格包含了所有触发器的详细信息。

Zabbix Server Database triggers

functions表格通过itemid,triggerid将items表格和triggers表格关联了起来,并包含function的其它信息。

Zabbix Server Database functions

Graphs相关表格:

graphs表格包含了zabbix中图形(graph)的详细信息。

Zabbix Server Database graphs

graphs_items表格包含graphid、itemid两个字段,graphs和items就是通过这两个字段关联起来的。

Zabbix Server Database graphs_items

Discovery相关表格:

Zabbix Server Database host_discovery

Web相关表格:

httptest表通过hostid与hosts表格关联,并包含web监控的其它相关信息。

Zabbix Server Database httptest

Interface相关表格:

interface表通过hostid与hosts表格关联,并包含该host中代理的ip、端口号等。

Zabbix Server Database interface

Item history info相关表格:

history表保存了zabbix server从各途径采集到的各监控项目(item)的历史数据,history_log、history_str、history_text、history_uint都是保存监控项目历史数据的,只是数据类型不同而已。

Zabbix Server Database history

Trend相关表格:

trends表保存了各监控项目(item)的趋势数据。

Zabbix Server Database trends

用户信息相关表格:

users表保存了zabbix中的用户信息。

Zabbix Server Database users

Zabbix Server各进程及其功能分析

Zabbix2.2.11 共有17个进程,它们大致的作用和关系如下图所示:

Zabbix Server Process Architecture

下面介绍各进程的功能,我会以如下的格式来说明各进程的功能:

进程名:

源码中的注释;

我自己的理解。

main_dbconfig_loop():

periodically synchronises database data with memory cache;

main_discoverer_loop():

periodically try to find new hosts and services;

main_trapper_loop():

periodically try to find new hosts and services;

main_snmptrapper_loop():

SNMP trap reader's entry point;

main_poller_loop():

None;

main_proxypoller_loop():

None;

main_httppoller_loop():

main loop of processing of httptest;

main_vmware_loop():

the vmware collector main loop;

main_dbsyncer_loop():

periodically synchronises data in memory cache with database;

main_housekeeper_loop():

None;

main_timer_loop():

periodically updates time-related triggers;

main_alerter_loop():

periodically check table alerts and send notifications if needed;

main_escalator_loop():

periodically check table escalations and generate alerts;

main_watchdog_loop():

check database availability every DB_PING_FREQUENCY seconds and alert admins if it is down;

main_pinger_loop():

periodically perform ICMP pings;

main_nodewatcher_loop():

periodcally calculates checksum of config data;

main_selfmon_loop():

None;

comments powered by Disqus

技术与阅读

生活

关于我