统信服务器操作系统【Zabbix Agent 2 编译安装】

2024-04-30 15:30:18 浏览数 (3)

Zabbix Agent2

Zabbix Agent2在Zabbix 5.0版本推出,使用Go语言重写,旨在减少TCP连接数并提供改进的检查并发性。Agent2 引入了插件系统,简化了监控功能的扩展,支持对各种系统服务、数据库、IoT设备和Docker容器的深入监控。它具备开箱即用的证书监控、系统监控和文件属性监控功能,同时保持了与 Zabbix Agent 的兼容性。Agent 2 支持广泛的操作系统平台,便于安装和部署,为系统管理员提供了一个强大、灵活且高效的监控解决方案。

统信服务器操作系统信息

代码语言:javascript复制
[root@localhost /]# cat  /etc/os-release 
PRETTY_NAME="UOS Server 20"
NAME="UOS Server 20"
VERSION_ID="20"
VERSION="20"
ID=uos
HOME_URL="https://www.chinauos.com/"
BUG_REPORT_URL="https://bbs.chinauos.com/"
VERSION_CODENAME=fuyu
PLATFORM_ID="platform:uel20"
[root@localhost /]# uosinfo              
#################################################
Release:  uos release 20 (fuyu)
Kernel :  5.10.0-46.uel20.x86_64
Build  :  UOS Server 20 (1060e) 20230606 amd64
#################################################

安装 go 编译环境

代码语言:javascript复制
下载go程序压缩包
wget -P /opt https://studygolang.com/dl/golang/go1.19.linux-amd64.tar.gz
解压工程序压缩包
tar -zvxf /opt/go1.19.linux-amd64.tar.gz -C /usr/local/

设置环境变量

代码语言:javascript复制
go程序环境变量
echo "export PATH=$PATH:/usr/local/go/bin" >>/etc/profile 
重载环境变量
source /etc/profile

验证go环境

代码语言:javascript复制
go env

显示如下,表明 go 语言环境配置成功

代码语言:javascript复制
[root@localhost ~]# go env
GO111MODULE='on'
GOARCH='amd64'
GOBIN=''
GOCACHE='/root/.cache/go-build'
GOENV='/root/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/root/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/root/go'
GOPRIVATE=''
GOPROXY='https://goproxy.cn,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.21.9'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g  '
CGO_ENABLED='1'
GOMOD='/dev/null'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build2434785988=/tmp/go-build -gno-record-gcc-switches'

配置go代理环境

代码语言:javascript复制
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

Zabbix Agent2 编译安装

1, 下载Zabbix源码包

代码语言:javascript复制
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.29.tar.gz

2, 创建用户帐户

代码语言:javascript复制
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

3,创建Zabbix进程主目录

代码语言:javascript复制
mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
chown zabbix:zabbix /usr/lib/zabbix

4, 编译安装zabbix_agent2

(1)安装依赖

代码语言:javascript复制
dnf install pcre-devel

(2)解压tar包到/opt下

代码语言:javascript复制
tar -zvxf zabbix-6.0.29.tar.gz -C /opt && cd /opt/zabbix-6.0.29/

(3)进行编译

代码语言:javascript复制
./configure --prefix=/usr/local/zabbix-agent2 --enable-agent2 --with-openssl

(4)编译安装

代码语言:javascript复制
make install

默认配置文件

代码语言:javascript复制
/usr/local/zabbix-agent2/etc/zabbix_agent2.conf

二进制程序

代码语言:javascript复制
/usr/local/zabbix-agent2/sbin/zabbix_agent2

5,配置 systemd 启动文件

代码语言:javascript复制
cat << EOF >  /usr/lib/systemd/system/zabbix-agent2.service
[Unit]
Description=Zabbix Agent 2
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/usr/local/zabbix-agent2/etc/zabbix_agent2.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent2
Type=simple
Restart=on-failure
PIDFile=/run/zabbix/zabbix_agent2.pid
KillMode=control-group
ExecStart=/usr/local/zabbix-agent2/sbin/zabbix_agent2 -c /usr/local/zabbix-agent2/etc/zabbix_agent2.conf
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
EOF

6,zabbix-agent2配置文件

代码语言:javascript复制
egrep -v "*#|^$" /usr/local/zabbix-agent2/etc/zabbix_agent2.conf     
Server=127.0.0.1
ServerActive=127.0.0.1
HostnameItem=system.hostname
HostMetadata=Linux
UnsafeUserParameters=1
UserParameter=CPU_TOP,ps auxc |head -n 1 && ps hauxc | sort -k3,3nr | head -n 5
UserParameter=MEM_TOP,ps auxc |head -n 1 && ps hauxc | sort -k4,4nr | head -n 5
ControlSocket=/tmp/agent.sock
Include=./zabbix_agent2.d/plugins.d/*.conf

7,启动并设置开机启动

代码语言:javascript复制
systemctl start zabbix-agent2 && systemctl enable --now zabbix-agent2

8,zabbix_agent2 测试

代码语言:javascript复制
[root@localhost sbin]# pwd
/usr/local/zabbix-agent2/sbin
[root@localhost sbin]# ./zabbix_agent2 -t agent.ping
agent.ping

9,zabbix-agent2 自定义监控项键值

代码语言:javascript复制
vim /usr/local/zabbix_agent2/etc/zabbix_agent2.conf
UnsafeUserParameters=1
UserParameter=CPU_TOP,ps auxc |head -n 1 && ps hauxc | sort -k3,3nr | head -n 5
UserParameter=MEM_TOP,ps auxc |head -n 1 && ps hauxc | sort -k4,4nr | head -n 5

重启zabbix-agent2

代码语言:javascript复制
systemctl restart  zabbix-agent2

zabbix_agent2 -t 测试

代码语言:javascript复制
[root@localhost sbin]# pwd
/usr/local/zabbix-agent2/sbin
[root@localhost sbin]# ./zabbix_agent2 -t MEM_TOP
  • -c 指定配置文件
代码语言:javascript复制
./zabbix_agent2 -t MEM_TOP -c  /usr/local/zabbix-agent2/etc/zabbix_agent2.conf

10,Zabbix Agent2 工作模式

  • 主动(Active):agent请求server获取主动的监控项列表,server 将监控项回复给agent,agent将监控项内需要检测的数据提交给server/proxy。
  • 被动(Passive):server向agent请求获取监控项的数据,agent返回数据。
  • go安装文档

https://go.dev/doc/install

  • go程序下载

https://go.dev/dl/

  • zabbix_agent2源码包下载

https://www.zabbix.com/download_sources#60LTS

  • zabbix_agent2安装文档

https://www.zabbix.com/documentation/6.0/en/manual/installation/install

0 人点赞