Zabbix-proxy和Zabbix-agent源码安装

时间:2024-06-06 19:07:21

一 、Zabbix Proxy

概述

Zabbix proxy 是一个可以从一个或多个受监控设备采集监控数据并将信息发送到 Zabbix server 的进程,主要是代表 Zabbix server 工作。 所有收集的数据都在本地缓存,然后传输到 proxy 所属的 Zabbix server。

部署Zabbix proxy 是可选的,但可能非常有利于分担单个 Zabbix server 的负载。 如果只有代理采集数据,则 Zabbix server 上会减少 CPU 和磁盘 I/O 的开销。

Zabbix proxy 是无需本地管理员即可集中监控远程位置、分支机构和网络的理想解决方案。

Zabbix proxy 需要使用独立的数据库。

Zabbix proxy安装

下载编译

下载

cd  /tmp && wget   https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.9/zabbix-4.0.9.tar.gz

解压

tar  -xzf  zabbix-4.0.9.tar.gz

创建用户和组并创建安装目录

sudo groupadd zabbix
sudo useradd -g zabbix zabbix
sudo mkdir /opt/zabbix-proxy
sudo chown zabbix:zabbix /opt/zabbix-proxy

安装依赖包

yum install -y  mysql-devel net-snmp net-snmp-devel  libssh2-devel

编译安装

cd  zabbix-4.0.9
# 如果想使用其它参数和数据库,使用 ./configure --help 查看选项和参数,使用mysql 作为 proxy 的数据库
./configure --prefix=/opt/zabbix-proxy --enable-proxy --with-net-snmp --with-mysql --with-ssh2
make install

创建Zabbix proxy数据库并导入数据

Zabbix proxy 是将数据储存在本地,然后传输到 Zabbix Server 的。所以我们需要创建 Zabbix proxy 的数据库。

# 创建数据库
create database zabbix_proxy character set utf8 collate utf8_bin;
# 创建用户
grant all privileges on zabbix_proxy.* to zabbix_fy@localhost identified by 'password';

导入数据,zabbix proxy 不需要将所有的数据库数据都导入,只需要导入 schema.sql

mysql -u zabbix_fy  -p --database zabbix_proxy </tmp/zabbix-4.0.9/database/mysql/schema.sql

更改Zabbix proxy 配置文件

默认配置文件是 位于 安装目录的./etc/zabbix_proxy.conf

默认启用的是主动模式,默认监听端口: 10051。参数详解:官方文档

Server=# 填入zabbix server 的ip
ServerPort= # zabbix server 监听的端口,默认为 10051
Hostname=#zabbix Proxy 的名称
DBHost= # 数据库地址
DBName=zabbix_proxy # 数据库名称
DBUser=zabbix_fy # 用户名
DBPassword=sRW123456 # 密码
ProxyOfflineBuffer=24 # 如果连接不到zabbix-server,数据保存多久。

设置为 systemd 服务

创建 /usr/lib/systemd/system/zabbix-proxy.service 文件。并添加以下内容:

[Unit]
Description=Zabbix Proxy
After=syslog.target
After=network.target [Service]
User=zabbix
Group=zabbix
Environment="CONFFILE=/opt/zabbix-proxy/etc/zabbix_proxy.conf"
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_proxy.pid
KillMode=control-group
ExecStart=/opt/zabbix-proxy/sbin/zabbix_proxy -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0 [Install]
WantedBy=multi-user.target

启动服务并设置为开机自启

# sudo  systemctl  restart  zabbix-proxy
# sudo systemctl enable zabbix-proxy

开放对应的端口

sudo firewall-cmd --add-port=10051/tcp  --permanent
sudo firewall-cmd --reload

Zabbix Proxy 安装报错与解决办法

这里报的错都是由于依赖包没有安装,导致编译时报错。

错误一

checking for the linux kernel version... unknown family (3.10.0-862.14.4.el7.x86_64)
checking size of void *... 8
checking for mysql_config... no
checking for mariadb_config... no
configure: error: MySQL library not found

解决办法

yum install -y  mysql-devel

错误二

checking for Zabbix server/proxy database selection... ok
checking for multirow insert statements... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for net-snmp-config... no
configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config

解决办法

yum  install  net-snmp net-snmp-devel  -y

错误三

checking for main in -lnetsnmp... yes
checking for localname in struct snmp_session... yes
checking for SSH2 support... no
configure: error: SSH2 library not found

解决办法

 yum install libssh2-devel -y

二、Zabbix agent

Zabbix agent安装

下载编译

下载

cd  /tmp && wget   https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.9/zabbix-4.0.9.tar.gz

解压

tar  -xzf  zabbix-4.0.9.tar.gz

创建用户和组并创建安装目录

sudo groupadd zabbix
sudo useradd -g zabbix zabbix
sudo mkdir /opt/zabbix-agent
sudo chown zabbix:zabbix /opt/zabbix-agent

编译安装

cd  zabbix-4.0.9
./configure --prefix=/opt/zabbix-agent --enable-agent

更改Zabbix agent 配置文件

默认配置文件是 位于 安装目录的./etc/zabbix_agentd.conf

我们一般需要更改以下参数:

Server: 设置该值为 Zabbix Server IP.默认为 127.0.0.1
ServerActive:设置该值为 Zabbix Server IP,如果 Zabbix Server 不是使用的默认10051端口,我们可以在此加上端口号,形如:192.168.12.234:11051,默认为127.0.0.1
Hostname :设置为主机的主机名,默认为 zabbix server
LogFileSize=1 日志文件超过 1M 就进行切割。值为 0时表示不切割日志。 默认为 1
EnableRemoteCommands:是否开启远程命令 默认为 0

设置为 systemd 服务

创建 /usr/lib/systemd/system/zabbix-agent.service 文件。并添加以下内容:

[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target [Service]
User=zabbix
Group=zabbix
Environment="CONFFILE=/opt/zabbix-agent/etc/zabbix_agentd.conf"
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/opt/zabbix-agent/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s [Install]
WantedBy=multi-user.target

启动服务并设置为开机自启

sudo  systemctl  restart  zabbix-agent
sudo systemctl enable zabbix-agent

开放对应的端口

sudo firewall-cmd --add-port=10050/tcp  --permanent
sudo firewall-cmd --reload

源码安装官方文档 :点我,官方文档可能没有我这里详细哦。