ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
Zabbix的所有配置信息都存储在服务器和Web前端进行交互的数据库中。 ### 服务器: 当通过web前端或者API新增一个条目时,他会被添加到数据库的item里,然后,Zabbix服务器以每分钟一次的频率查询item的活动列表,接着将他存储在zabbix的缓存里,这就是为什么Zabbix前端所做的任何修改最多需要两分钟才能显示在最新的数据段的原因。 服务器启动: ~~~ shell> cd sbin ~~~ ~~~ -c --config <file> 配置文件的绝对路径 (默认路径: /etc/zabbix/zabbix_server.conf) -R --runtime-control <选项> 执行管理能力 -h --help 帮助提示 -V --version 显示版本号 ~~~ ### Agent: Zabbix agent部署在监控的目标上,主动监测本地的资源和应用(硬件驱动,内存,处理器统计等)。 Zabbix agents 的极端高效缘于它可以利用本地系统调用来完成统计数据的收集。 Zabbix agents可以执行被动和主动两种检查方式。 在\[passive check\])模式中agent应答数据请求,Zabbix server(或者proxy)询问agent数据,如CPU 的负载情况,然后Zabbix agent回送结果。 \[Active checks\]处理过程将相对复杂。 Agent必须首先从Zabbix sever索取监控项列表以进行独立处理,然后周期性地发送新的值给server。 #### 运行 agent进程 ~~~ shell> cd sbin shell> ./zabbix_agentd ~~~ Windows上的Zabbix agent是以Windows服务的形式运行的。 您可以在主机上运行Zabbix agent的单个实例或多个实例。 单个实例可以使用默认配置文件或命令行中指定的配置文件。 在多个实例的情况下,每个agent实例必须有自己独立的配置文件(其中一个实例可以使用默认配置文件) ### Proxy Zabbix Proxy是一个可以从一个或多个受监控设备收集监控数据,并将信息发送到Zabbix sever的进程,基本上是代表sever工作的。 所有收集的数据都在本地进行缓存,然后传送到proxy所属的Zabbix sever。 Zabbix proxy是完成远程区域、分支机构、没有本地管理员的网络的集中监控的理想解决方案。 Zabbix proxy需要使用独立的数据库。 ~~~ shell> cd sbin shell> ./zabbix_proxy ~~~ ### Java gateway Zabbix gateway 是用Java语言写成。要查得一台主机特定的JMX计数器值,Zabbix server向Zabbix Java gateway发送请求,后者使用\[JMX管理API\]去请求远程的有关应用。应用不需要额外安装软件,只需要启动时在命令行指定`-Dcom.sun.management.jmxremote`即可。 一旦完成了配置,可以通过startup脚本来启动Java gateway ~~~ $ ./startup.sh ~~~ 如果您不需要Java gateway,可以运行shutdown脚本关闭它 ~~~ $ ./shutdown.sh ~~~ #### 4.4 配置Sever使用Java gateway 现在Java gateway已在运行,接下来您要告诉Zabbix server在哪里找到Zabbix Java gateway. 因此你需要在[server配置文件](https://www.zabbix.com/documentation/3.4/manual/appendix/config/zabbix_server "manual:appendix:config:zabbix_server")中指定JavaGateway及JavaGateway端口(JavaGatewayPort).如果JMX应用采用Zabbix agent进行监控的话,您需要在[proxy 配置文件](https://www.zabbix.com/documentation/3.4/manual/appendix/config/zabbix_proxy "manual:appendix:config:zabbix_proxy")中配置对应的连接参数. ~~~ JavaGateway=192.168.3.14 JavaGatewayPort=10052 ~~~ 默认情况下,server并不会产生任何与JMX监控进程。但如果您想使用完成JMX监控,您需要指定Java轮询器的预分支实例数(pre-forked instances),您也可过同类的方式指定常见的轮询器和捕获器。 ~~~ StartJavaPollers=5 ~~~ 一旦您完成了相关配置,不要忘记重启Sever或Proxy ### Sender #### 综述 Zabbix sender 是一种命令行应用,它可以将性能数据发送到Zabbix server进行处理。 该应用通常用在长时间运行的用户脚本,用于定期发送可用性和性能数据 ~~~ shell> cd bin shell> ./zabbix_sender -z zabbix -s "Linux DB3" -k db.connections -o 43 ~~~ 其中: * z - Zabbix server 主机 (IP 地址也可以使用) * s - 受监控主机的技术名称(与Zabbix前端注册的相同) * k - 监控项的值 * o - 要发送的值 ### Get #### 概述 Zabbix get 是一种命令行应用,它可以用于与Zabbix agent进行通信,并从agent哪里获取所需的信息 该应用通常被用于Zabbix agent故障排除。 #### 运行 Zabbix get UNIX下运行Zabbix get,从agent那里获取处理器的负载值的例子: ~~~ shell> cd bin shell> ./zabbix_get -s 127.0.0.1 -p 10050 -k system.cpu.load[all,avg1] ~~~ ### 安装: 安装源码库配置部署包。这个部署包包含了yum配置文件。 ~~~ rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.noarch.rpm ~~~ ~~~ yum install zabbix-server-mysql zabbix-web-mysql ~~~ ~~~ yum install zabbix-agent ~~~ 数据库设置 ~~~ shell> mysql -uroot -p<password> mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>'; mysql> quit; ~~~ 然后导入初始架构(Schema)和数据 ~~~ cd /usr/share/doc/zabbix-server-mysql-3.4.0 zcat create.sql.gz | mysql -uroot zabbix ~~~ #### 启动Zabbix Server进程 在zabbix\_server.conf中编辑数据库配置 ~~~ # vi /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix ~~~ 启动Zabbix Server进程 ~~~ # systemctl start zabbix-server ~~~ Zabbix前端的Apache配置文件位于 /etc/httpd/conf.d/zabbix.conf 。一些PHP设置已经完成了配置。 ~~~ php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value always_populate_raw_post_data -1 # php_value date.timezone Europe/Riga ~~~ 依据所在时区,你可以取消 “date.timezone” 设置的注释,并正确配置它。在配置文件更改后,需要重启Apache Web服务器。 ~~~ # systemctl start httpd ~~~