Zabbix Agent2 介绍
Zabbix 5.0 版本推出了使用 go 语言重写的 Agent2,Agent2 有如下特性:
完成的插件框架支持,可扩张服务及应用监控
支持灵活的采集周期调度
更高效的数据采集及传输
可完全替换原有的 agent
…..
Zabbix Agent2 没有组件依赖,外网主机编译完成可直接拷贝编译好的二进制文件和配置文件在其他主机上运行即可
安装go基础编译环境
Zabbix Agent2 使用 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/
配置go环境变量
代码语言:javascript复制echo "export PATH=$PATH:/usr/local/go/bin" >>/etc/profile
source /etc/profile
验证go环境
代码语言:javascript复制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 Agent2 编译安装
1,下载源码包
地址:https://www.zabbix.com/cn/download_sources#60LTS
2,创建用户帐户
代码语言:javascript复制useradd -r -s /sbin/nologin zabbix
对于Zabbix 守护进程,需要一个非特权用户。如果 Zabbix 守护程序是从非特权用户帐户启动的,它将以该用户身份运行。如果守护程序是从"root"帐户启动的,将切换到"zabbix"用户帐户,该帐户必须存在。
代码语言:javascript复制groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
Zabbix进程不需要主目录,如果需要使用某些需要它的功能(例如,将MySQL凭据存储在$HOME /.my.cnf),则创建。
代码语言:javascript复制mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
chown zabbix:zabbix /usr/lib/zabbix
3,编译安装zabbix agent
代码语言:javascript复制#解压tar包到/opt下
tar zxzf zabbix-6.0.8.tar.gz -C /opt/
#进入目录进行编译
cd zabbix-6.0.8
#编译指定安装目录
./configure --prefix=/usr/local/zabbix_agent2 -enable-agent2
#安装
make && make install
编译过程中需要联网下载依赖包,耐心等待安装完成!!!
默认情况下,运行将在 /usr/local/sbin 中安装守护程序二进制文件(zabbix_server、zabbix_agentd、zabbix_proxy),在 /usr/local/bin 中安装客户端二进制文件(zabbix_get、zabbix_sender)。
要指定与 /usr/local 不同的位置,在配置源的上一步中使用 --prefix ,例如 --prefix=/usr/local/zabbix_agent2 ,守护程序二进制文件将安装在 <prefix>/sbin 下,而实用程序将安装在 <prefix>/bin 下。帮助手册将安装在<prefix>/share下。
默认配置文件
代码语言:javascript复制/usr/local/zabbix/etc/zabbix_agent2.conf
二进制程序
代码语言:javascript复制/usr/local/zabbix/sbin/zabbix_agent2
配置 systemd 启动文件
代码语言:javascript复制vi /usr/lib/systemd/system/zabbix-agent2.service
内容如下
代码语言:javascript复制[Unit]
Description=Zabbix Agent 2
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/etc/zabbix/zabbix_agent2.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent2
Type=simple
Restart=on-failure
PIDFile=/run/zabbix/zabbix_agent2.pid
KillMode=control-group
ExecStart=/usr/sbin/zabbix_agent2 -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
zabbix-agent2配置文件
egrep -v "*#|^$" /etc/zabbix/zabbix_agent2.conf
代码语言:javascript复制PidFile=/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.100.240,192.168.100.161
ServerActive=192.168.100.240,192.168.100.161
Hostname=kylin-node03
HostMetadata=Linux
ControlSocket=/tmp/agent.sock
Include=./zabbix_agent2.d/plugins.d/*.conf
配置启动并设置开机启动
代码语言:javascript复制systemctl start zabbix-agent2
systemctl enable --now zabbix-agent2
zabbix_agent2 测试
代码语言:javascript复制[root@kvm-node2 kylin]# zabbix_agent2 -t agent.ping
agent.ping [s|1]