Zabbix Agent2 介绍
Zabbix 5.0 版本推出了使用 go 语言重写的 Agent2,也是 5.0 版本新特性,Agent2 有如下特性:
- 完成的插件框架支持,可扩张服务及应用监控
- 支持灵活的采集周期调度
- 更高效的数据采集及传输
- 可完全替换先有的 agent
- …..
特性较多,建议使用。由于使用 go 语言编写,编译安装与之前版本有所区别。Agent2 默认使用的 10050 端口,与 Zabbix Agent 端口一样,不修改端口情况下,同一台机器不能同时启动 Zabbix Agent 与 Zabbix Agent2。
安装
可使用 yum 或编译安装,对于新手,建议使用 yum 安装。
yum 安装
参照上篇Zabbix 5.0 LTS 版本安装 配置好 yum 源,使用以下命令即可安装 Zabbix Agent2
代码语言:javascript复制yum install zabbix-agent2 -y
默认配置文件为
代码语言:javascript复制/etc/zabbix/zabbix_agent2.conf
默认二进制文件为
代码语言:javascript复制/usr/sbin/zabbix_agent2
使用以下命令启动 Agent2 并配置开机启动
代码语言:javascript复制systemctl enable --now zabbix-agent2
编译安装
安装 gcc 等基础编译环境,由于使用 go 编写,因此需要配置 go 编译环境,下载并配置 go 语言编译环境
代码语言:javascript复制cd /opt
wget https://dl.google.com/go/go1.14.3.linux-amd64.tar.gz
tar zxvf go1.14.3.linux-amd64.tar.gz -C /usr/local/
echo "export PATH=$PATH:/usr/local/go/bin" >>/etc/profile
source /etc/profile
go env
最后显示如下,表明 go 语言环境配置成功。
代码语言:javascript复制GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g "
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build821720893=/tmp/go-build -gno-record-gcc-switches"
开启 go mod,由于编译过程需要联网下载依赖包,配置 go mod 代理
代码语言:javascript复制go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
下载 zabbix 5.0 源码
代码语言:javascript复制cd /opt
wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.0.tar.gz
tar zxvf zabbix-5.0.0.tar.gz
cd zabbix-5.0.0
如果只是要编译 agent2,直接加-enable-agent2 参数即可
代码语言:javascript复制./configure --prefix=/usr/local/zabbix -enable-agent2
make
make install
编译过程中有错误一定要关注,其中需要联网下载依赖包,耐心等待安装完成。 默认配置文件
代码语言:javascript复制/usr/local/zabbix/etc/zabbix_agent2.conf
二进制程序
代码语言:javascript复制/usr/local/zabbix/sbin/zabbix_agent2
配置 systemd 启动文件
代码语言:javascript复制vi /lib/systemd/system/zabbix-agent2.service
内容如下
代码语言:javascript复制[Unit]
Description=Zabbix Agent 2
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_agent2.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent2
Type=simple
Restart=on-failure
PIDFile=/tmp/zabbix_agent2.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_agent2 -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
配置启动并设置开机启动
代码语言:javascript复制systemctl enable --now zabbix-agent2
配置
zabbix agent2 的配置与之前的 zabbix agent 配置基本一致
代码语言:javascript复制Server=172.16.66.11
ServerActive=172.16.66.11
Hostname=node16
Server 和 ServerActive 配置为 zabibx server 或 zabbix proxy 地址,Hostname 配置为主机名即可。 Agent2 没有组件依赖,可直接拷贝编译好的二进制文件和配置文件在其他主机上运行即可。