预编译安装zabbix-agent

预编译安装zabbix-agent

1. zabbix-gaent介绍和工作原理

1.1 介绍

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由两部分构成,zabbix server与可选组件zabbix agent

zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows (2000/2003/XP/Vista)等系统之上。
zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。

1.2 工作原理

一个监控系统运行的大概的流程是这样的:
zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agent收集数据分为主动和被动两种模式:

  • 主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
  • 被动:serveragent请求获取监控项的数据,agent返回数据。

2. 预编译zabbix-agent安装

2.1 下载预编译文件

首先登陆到https://www.zabbix.com/download_agents 该网站下面,如下图。

选择自己的操作系统并且选择支持自己zabbix-server版本的预编译安装包。因为我用的centos 7的内核并且zabbix-server版本为6.4.0因此我下载 https://cdn.zabbix.com/zabbix/binaries/stable/6.0/6.0.3/zabbix_agent-6.0.3-linux-4.12-ppc64le-static.tar.gz 安装包。并且上传到自己要监控的linux服务器上。

2.2 新建用户和组

在linux服务器上新建zabbix用户和组。

groupadd zabbix
useradd -g zabbix zabbix

2.3 解压预编译包

解压zabbix预编译安装包。

mkdir -p  /usr/local/zabbix/zabbix-agent
tar -zxvf zabbix_agent-6.4.17-linux-3.0-amd64-static.tar.gz -C /usr/local/zabbix/zabbix-agent

解压完之后进入/zabbix-agent目录中,发现有三个文件夹。

drwxrwxr-x 2 zabbix zabbix 45 Jul 15 23:05 bin  # 命令文件夹,zabbix_get命令
drwxrwxr-x 3 zabbix zabbix 53 Jul 19 00:05 conf	# 配置文件夹,zabbix_agent.conf
drwxrwxr-x 2 zabbix zabbix 27 Jul 15 23:05 sbin # zabbix—agent启动执行文件

2.4 bin目录操作

进入/zabbix-agent/bin目录下。可以看到有以下命令。

-rwxrwxr-x 1 zabbix zabbix 1227160 Jul 15 23:05 zabbix_get
-rwxrwxr-x 1 zabbix zabbix 1768752 Jul 15 23:05 zabbix_sender

将这两个命令建立软连接到usr/bin目录下面。

ln -s zabbix_sender zabbix_get /usr/bin

2.5 sbin目录操作

进入/zabbix-agent/sbin目录下。s可以看到这里面有个zabbix_agentd的可执行文件,这个可执行文件是zabbix 的客户端的可执行文件,agent可以用来获取和监控数据环境。同样建立软连接到usr 下面的sbin目录下。

ln -s zabbix_agentd /usr/sbin/

2.6 conf目录操作

进入/zabbix-agent/conf目录下。

这里面有一个zabbix_agentd.conf,这个就是zabbix-agent的配置文件。我们将它copy到/usr/local/etc目录下面。

cp zabbix_agentd.conf /usr/local/etc/

2.7 修改配置文件

其实也可以修改之后拷贝,拷贝之后要进入拷贝后的文件修改。

vi /usr/local/etc/zabbix_agentd.conf
# 修改值
Server=192.168.101.238
ServerActive=192.168.101.238
Hostname=pgmaster

PidFile=/tmp/zabbix_agentd.pid
LogFileSize=1
BufferSend=5
BufferSize=100

ListenPort=10050
ListenIP=0.0.0.0
RefreshActiveChecks=120
AllowRoot=1
Include=/usr/local/zabbix/etc/zabbix_agentd.d/*.conf
StartAgents=4
Timeout=10
UnsafeUserParameters=1

2.8 创建需要的文件夹

这个Include所对应的目录最好创建一下,不然启动时会报错。

chown zabbix:zabbix /tmp 			 # 日志目录权限
touch /tmp/zabbix_agentd.log		 # 创建日志文件
chmod 777 /tmp/zabbix_agentd.log	 # 给予权限
mkdir -p /usr/local/zabbix/etc/zabbix_agent.d #创建自定义参数配置文件目录
chown zabbix:zabbix /usr/local/zabbix/etc/zabbix_agent.d # 给予目录权限

2.9 添加端口

在客户端上添加zabbix的监控端口。

vim /etc/services

添加如下内容
zabbix_agent 10050/tcp
zabbix_agent 10050/udp

2.10 拷贝启动脚本

# 拷贝启动脚本到/etc/init.d下
cp /usr/local /sbin/zabbix_agentd /etc/init.d

# 为/etc/init.d下的启动添加可执行权限
chmod a+x /etc/init.d/zabbix_agentd 

2.11 启动zabbix客户端

/etc/init.d/zabbix_agentd

查看进程,确定zabbix客户端是否启动.

ps -ef | grep zabbix

现在zabbix的服务并没有起来,报没有权限的错误,建立zabbix_agentd.pid并赋予权限.

touch /tmp/zabbix_agentd.pid
chmod 777 /tmp/zabbix_agentd.pid

2.12 开放端口

方式一:关闭防火墙(不推荐,练习可用)

service iptables stop
查看selinux:getenforce 状态是开启,
将它临时关闭:setenforce 0

# 再次启动
/etc/init.d/zabbix_agentd
ps -ef | grep zabbix

方式二:使用firewalld开放

# 查看当前防火墙状态
sudo firewall-cmd --state
# 查看已开放的端口
sudo firewall-cmd --list-ports
# 开放端口 10050 和 10051
sudo firewall-cmd --zone=public --add-port=10050/tcp --permanent
sudo firewall-cmd --zone=public --add-port=10051/tcp --permanent
# 重新加载防火墙规则
sudo firewall-cmd --reload
# 确认端口已开放
sudo firewall-cmd --list-ports

方式二:使用iptables开放

# 查看当前规则
sudo iptables -L
# 开放端口 10050 和 10051
sudo iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 10051 -j ACCEPT
# 保存规则(不同的 Linux 发行版保存规则的方法可能有所不同)
sudo iptables-save > /etc/iptables/rules.v4
# 确认端口已开放
sudo iptables -L

以上步骤可以帮助你在 Linux 系统上不关闭防火墙的情况下开放特定的端口。如果你使用的是其他防火墙管理工具或者发行版,可能需要略微调整步骤。

posted @ 2024-08-11 15:23  零の守墓人  阅读(40)  评论(0编辑  收藏  举报