预编译安装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
。 - 被动:
server
向agent
请求获取监控项的数据,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 系统上不关闭防火墙的情况下开放特定的端口。如果你使用的是其他防火墙管理工具或者发行版,可能需要略微调整步骤。