源码编译安装zabbix agent

486 阅读2分钟

最近公司使用了麒麟操作系统,需要安装Zabbix监控。官方提供的安装包中并没有针对麒麟系统的,需要进行编译安装。以下方法及其他linux也适用,包括统信UOS

编译Zabbix Agent

1 安装编译依赖

yum install gcc  pcre    pcre-devel  make  -y

2 下载源码包

Zabbix的源码包可以从官网下载,我选择使用目前最新的6.0 LTS的源码包进行编译;官网下载链接 cdn.zabbix.com/zabbix/sour… 或者cdn.zabbix.com/zabbix/sour… 或者cdn.zabbix.com/zabbix/sour…

3 创建zabbix 用户和组:

groupadd --system zabbix

useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Agent" zabbix

4 编译Zabbix Agent

解压:tar -zxvf zabbix-5.0.37.tar.gz

解压后进入目录,执行两条命令即可编译安装完成;

详细命令说明、参考官方文档链接www.zabbix.com/documentati…

tar -zxvf zabbix-5.0.37.tar.gz
./configure --enable-agent 或 ./configure --enable-agent --disable-dependency-tracking
make install

编译安装完成后,去到默认目录,默认文件的存储位置如下:

── /usr
    └── local
        ├── bin
        │   ├── zabbix_get              # 放到 /usr/local/bin/
        │   └── zabbix_sender           # 放到 /usr/local/bin/
        ├── etc
        │   ├── zabbix_agentd.conf      # 放到 /usr/local/etc/
        │   └── zabbix_agentd.conf.d    # 放到 /usr/local/etc/
        └── sbin
            └── zabbix_agentd            # 放到 /usr/local/sbin/

5 编配置文件

修改zabbix_agentd.conf,修改结果如下 查看命令:grep -Ev '^#|^$' /usr/local/etc/zabbix_agent.conf

PidFile=/usr/pid/zabbix/zabbix_agent2.pid 
LogFile=/usr/log/zabbix/zabbix_agent2.log 
LogFileSize=0 
Server=192.168.1.106 
ServerActive=192.168.1.106:10051 
Hostname=zbx-agent01 
Include=/usr/local/etc/zabbix_agent.conf.d/*.conf
ControlSocket=/tmp/agent.sock

创建一个日志文件目录:

mkdir /usr/log/zabbix; chown -R zabbix:zabbix /usr/log/zabbix

创建一个用户主目录:

mkdir /usr/pid/zabbix; chown -R zabbix:zabbix /usr/pid/zabbix

6 启动 zabbix_agentd

/usr/local/sbin/zabbix_agentd -c zabbix_agentd.conf

7 创建系统服务

新建/usr/lib/systemd/system/zabbix-agent.service文件,输入如下内容:

[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/usr/local/etc/zabbix_agent.conf"
#EnvironmentFile=-/etc/sysconfig/zabbix-agent
Type=forking
KillMode=control-group
ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
User=daemon
Group=daemon

[Install]
WantedBy=multi-user.target

完整目录

# 把编译好的安装包上传到麒麟系统,解压,然后把对应的文件放置到对应的目录中
├── usr
    ├── lib
    │   └── systemd
    │       └── system
    │           └── zabbix-agent.service    # 新创建这个文件,放到 /usr/lib/systemd/system
    └── local
        ├── bin
        │   ├── zabbix_get              # 放到 /usr/local/bin/
        │   └── zabbix_sender           # 放到 /usr/local/bin/
        ├── etc
        │   ├── zabbix_agentd.conf      # 放到 /usr/local/etc/
        │   └── zabbix_agentd.conf.d    # 放到 /usr/local/etc/
        └── sbin
            └── zabbix_agentd            # 放到 /usr/local/sbin/

8 启动Zabbix Agent 服务

# 加载服务启动文件
systemctl daemon-reload 
# 启动Zabbix Agent
systemctl start zabbix-agent
# 设置开机自启动
systemctl enable zabbix-agent

9 打开防火墙:

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

10 验证agent2的联通性

以下命令仅在服务端执行时使用、主动获取数据. 服务端安装 yum install -y zabbix-get ,自编译的环境在/usr/local/sbin/zabbix_agentd

# 命令检测是否链接上客户端
[root@bogon ~]# zabbix_get -s '192.168.1.107' -p 10050 -k 'agent.ping'
1
[root@bogon ~]# zabbix_get -s '192.168.1.107' -p 10050 -k 'agent.hostname'
zbx-agent01