文章目录
监控客户端部署及添加主机
一、在 zabbix-server 安装客户端
yum install zabbix-agent
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service
命令来源:官网
二、在本机和其他linux主机安装zabbix agent客户端
1、安装
方法一:服务器特别多的情况
wget https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.0-1.el7.x86_64.rpm
sz zabbix-agent-5.0.0-1.el7.x86_64.rpm
导出桌面
自己服务器直接安装,其他服务器拖进 rpm 包再安装
rpm -ivh zabbix-agent-4.0.29-1.el7.x86 64.rp
方法二:直接安装
rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.0-1.el7.x86_64.rpm
疑问:httpsxxx.rpm如何长的链接从何而来,根据上面链接,不难发现是来自于清华镜像,所以选择镜像要根据自己安装的版本来选择
2、配置
修改zabbix_agent配置文件
vim /etc/zabbix/zabbix_agentd.conf
修改下面server ip为搭建的zabbix server ip,本文是192.168.10.100
server=192.168.10.100
3、启动并开机自启
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service
4、添加主机
创建主机组
创建主机
等一会或重启zabbix-server查看配置是否成功
三、在其他windows上安装zabbix agent客户端
下载windows安装agent软件
安装
将压缩包解压到d:\zabbix1(自己定文件夹名字和位置即可)里。打开conf\zabbix_agentd.win.conf
文件,配置如下
LogFile=D:\zabbix1\zabbix_agentd.log
Server=192.168.10.100 #80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.10.100 #133行,指定 zabbix 服务端的 IP 地址
Hostname=Windows_A #144行,指定当前 zabbix 客户端的主机名
logfile
: zabbix日志存放地址。
Server
:用于被动模式,指定允许哪台服务器拉取当前服务器的数据,当agent端工作于被动模式,则代表server端会主动拉取agent端数据,那么server端的IP必须与此参数的IP对应,此参数用于实现基于IP的访问控制,如果有多个IP,可以使用逗号隔开。
ServerActive
:用于主动模式,此参数用于指定当agent端工作于主动模式时,将信息主动推送到哪台server上,当有多个IP时,可以用逗号隔开。
Hostname
:主机名,等会要在zabbix-server上配置。
验证端口启动情况:
配置Windows_A客户机
打开zabbix-web界面,配置
->主机
->右上脚创建主机
,配置上面写的Hostname
,名称和上面保存一致
服务器开放10051端口
这点要注意,如zabbix-server那台服务器没对外开放10051
端口,会连接不上。
firewall
防火墙
firewall-cmd --zone=public --add-port=10051/tcp --permanent
firewall-cmd --reload
iptables
防火墙
iptables -A INPUT -p tcp --dport 10051 -j ACCEPT
#保存上述规则
service iptables save
#重启服务
systemctl restart iptables.service
注册windows服务并启动
在管理身体打开cmd,如果是windows10用户,按windows+x出面的界面选择Windows PowerShell(管理员)(A)。这点要注意,必需以管理员运行,不然会报执行错误
注册服务命令:D:\zabbix1\bin\zabbix_agentd.exe -c D:\zabbix1\conf\zabbix_agentd.win.conf -i
结果如下
PS D:\zabbix1\bin\zabbix_agentd.exe -c D:\zabbix\conf\zabbix_agentd.win.conf -i
zabbix_agentd.exe [557628]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [557628]: event source [Zabbix Agent] installed successfully
疑问:路径怎么来的,其实就是一开始下载的软件解压的路径
启动服务:D:\zabbix1\bin\zabbix_agentd.exe -c D:\zabbix1\conf\zabbix_agentd.win.conf -s
结果如下
PS D:\> D:\zabbix\bin\zabbix_agentd.exe -c D:\zabbix\conf\zabbix_agentd.win.conf -s
zabbix_agentd.exe [536552]: service [Zabbix Agent] started successfully
安装和卸载zabbix agent服务:
C:\zabbix0\bin\zabbix_agentd.exe -i -c C:\zabbix0\conf\zabbix_agentd.conf
#安装zabbix客户端
C:\zabbix0\bin\zabbix_agentd.exe -s -c C:\zabbix0\conf\zabbix_agentd.conf
#启动zabbix服务
C:\zabbix0\bin\zabbix_agentd.exe -d -c C:\zabbix0\conf\zabbix_agentd.conf
#卸载zabbix客户端
C:\zabbix0\bin\zabbix_agentd.exe -x -c C:\zabbix0\conf\zabbix_agentd.conf
#关闭zabbix服务
查看D:\zabbix1\zabbix_agentd.log
日志如下
563728:20190130:104738.021 using configuration file: D:\zabbix\conf\zabbix_agentd.win.conf
563728:20190130:104738.026 agent #0 started [main process]
529528:20190130:104738.027 agent #1 started [collector]
541516:20190130:104738.028 agent #2 started [listener #1]
559776:20190130:104738.028 agent #4 started [listener #3]
563896:20190130:104738.029 agent #3 started [listener #2]
563780:20190130:104738.029 agent #5 started [active checks #1]
效果
附录
/etc/zabbix/zabbix_agentd.conf
#这是Zabbix代理守护程序(Unix)的配置文件
#要获取有关Zabbix的更多信息,请访问http://www.zabbix.com
###########通用参数#################
###选项:PidFile
#PID文件名。
#
#必填:否
# 默认:
#PidFile = / tmp / zabbix_agentd.pid
###选项:LogType
#指定日志消息的写入位置:
#系统-syslog
#file-使用LogFile参数指定的文件
#控制台-标准输出
#
#必填:否
# 默认:
#LogType =文件
###选项:LogFile
#LogType'file'参数的日志文件名。
#
#必填:是,如果LogType设置为file,否则为
# 默认:
#LogFile =
LogFile = / tmp / zabbix_agentd.log
###选项:LogFileSize
#日志文件的最大大小,以MB为单位。
#0-禁用自动日志轮换。
#
#必填:否
#范围:0-1024
# 默认:
#LogFileSize = 1
###选项:DebugLevel
#指定调试级别:
#0-有关启动和停止Zabbix进程的基本信息
#1-重要信息
#2-错误信息
#3-警告
#4-用于调试(产生大量信息)
#5-扩展调试(产生更多信息)
#
#必填:否
#范围:0-5
# 默认:
#DebugLevel = 3
###选项:SourceIP
#传出连接的源IP地址。
#
#必填:否
# 默认:
#SourceIP =
###选项:DenyKey
#拒绝执行与模式匹配的项密钥。
#可以结合AllowKey定义多个匹配规则的规则。
#密钥模式是通配符表达式,它支持“ *”字符以在特定位置匹配任意数量的任何字符。它可能同时在键名和键参数中使用。
#根据参数的出现顺序对其进行一次处理。
#如果未定义AllowKey或DenyKey规则,则允许所有密钥。
#除非指定了另一个system.run [*]规则,否则默认情况下将添加DenyKey = system.run [*]。
#
#必填:否
# 默认:
#DenyKey = system.run [*]
###选项:AllowKey
#允许执行项目键匹配模式。
#可以结合DenyKey定义多个密钥匹配规则。
#密钥模式是通配符表达式,它支持“ *”字符以在特定位置匹配任意数量的任何字符。它可能同时在键名和键参数中使用。
#根据参数的出现顺序对其进行一次处理。
#如果未定义AllowKey或DenyKey规则,则允许所有密钥。
#
#必填:否
###选项:EnableRemoteCommands-已过时,请改用AllowKey = system.run [*]或DenyKey = system.run [*]
#AllowKey / DenyKey参数的内部别名,取决于值:
#0-DenyKey = system.run [*]
#1-AllowKey = system.run [*]
#
#必填:否
###选项:LogRemoteCommands
#启用对执行的shell命令的日志记录作为警告。
#0-禁用
#1-已启用
#
#必填:否
# 默认:
#LogRemoteCommands = 0
#####被动检查相关
###选项:Server
#逗号分隔的IP地址列表,可以使用CIDR表示法,或者Zabbix服务器和Zabbix代理的DNS名称。
#仅接受来自此处列出的主机的传入连接。
#如果启用了IPv6支持,则将平等对待'127.0.0.1',':: 127.0.0.1',':: ffff:127.0.0.1'
#和':: / 0'将允许任何IPv4或IPv6地址。
#'0.0.0.0/0'可用于允许任何IPv4地址。
#示例:Server = 127.0.0.1,192.168.1.0 / 24,:: 1,2001:db8 :: / 32,zabbix.example.com
#
#强制:是的,如果未将StartAgents显式设置为0
# 默认:
#服务器=
服务器= 127.0.0.1
###选项:ListenPort
#代理将在此端口上侦听来自服务器的连接。
#
#必填:否
#范围:1024-32767
# 默认:
#ListenPort = 10050
###选项:ListenIP
#代理应侦听的逗号分隔IP地址列表。
#如果第一个IP地址连接到Zabbix服务器以检索活动支票列表,则将其发送到Zabbix服务器。
#
#必填:否
# 默认:
#ListenIP = 0.0.0.0
###选项:StartAgents
#处理被动检查的zabbix_agentd的预分支实例数。
#如果设置为0,则禁用被动检查,并且代理将不侦听任何TCP端口。
#
#必填:否
#范围:0-100
# 默认:
#StartAgents = 3
#####主动检查相关
###选项:ServerActive
#逗号分隔的Zabbix服务器和Zabbix代理的IP:端口(或DNS名称:端口)对的列表,以进行活动检查。
#如果未指定端口,则使用默认端口。
如果指定了该主机的端口,则#IPv6地址必须用方括号括起来。
#如果未指定port,则IPv6地址的方括号是可选的。
#如果未指定此参数,则自动注册失效功能。
#示例:ServerActive = 127.0.0.1:20051,zabbix.domain,[:: 1]:30051,:: 1,[12fc :: 1]
#
#必填:否
# 默认:
#ServerActive =
ServerActive = 127.0.0.1
###选项:Hostname
#唯一的,区分大小写的主机名。
#进行主动检查所必需,并且必须与服务器上配置的主机名匹配。
#如果未定义,则从HostnameItem获取值。
#
#必填:否
# 默认:
#主机名=
#说明:手工自定义一个主机名,可以和系统的主机名一样,也可以不一样,此参数可根据实际情况启用或关闭,建议关闭此参数,并启用HostnameItem参数
Hostname=Zabbix server
###选项:HostnameItem
#如果未定义,则用于生成主机名的项目。如果定义了主机名,则忽略。
#不支持UserParameters或别名。
#
#必填:否
# 默认:
#HostnameItem = system.hostname
#说明:system.hostname是ZABBIX内置的一个自动获取主机名的方法,为了方便配置,建议打开此参数而关闭Hostname参数#。注意:HostnameItem的优化级低于Hostname,当两个参数都启用且配置的情况下,ZABBIX获取的主机名,将以Hostname为准
###选项:HostMetadata
#定义主机元数据的可选参数。
#主机元数据在主机自动注册过程中使用。
#如果值超过255个字符的限制,代理将发出错误,并且不会启动。
#如果未定义,将从HostMetadataItem获取值。
#
#必填:否
#范围:0-255个字符
# 默认:
#HostMetadata =
# 可选参数用来定义主机元数据,只有主机自动注册时才用到主机元数据。
# 如果没有定义,该值通过 HostMetadataItem 获得。
# 如果指定的值超过限制或者不是UTF-8编码的字符串, agent 会给出一个错误或者不启动。
###选项:HostMetadataItem
#可选参数,用于定义用于获取主机元数据的项目。
#主机元数据在主机自动注册过程中使用。
#在自动注册请求期间,如果以下情况,座席将记录一条警告消息
#指定项目返回的值超过255个字符的限制。
#仅当未定义HostMetadata时才使用此选项。
#
#必填:否
# 默认:
#HostMetadataItem =
# 可选参数定义 Zabbix agent 监控项, 用来得到主机元数据。HostMetadata没有定义时,使用该参数。
# 支持 用户自定义参数, 别名。支持 system.run[], EnableRemoteCommands 值对该参数没有影响。
# 只有主机自动注册时才用到主机元数据。
# 在一个自动注册请求过程中,如果返回值超过255个字符,agent 会记录一条警告信息。
# 监控项返回值必须为 UTF-8的字符串, 否则会忽略 。
###选项:HostInterface
#定义主机接口的可选参数。
#主机接口用于主机自动注册过程。
#如果值超过255个字符的限制,代理将发出错误,并且不会启动。
#如果未定义,将从HostInterfaceItem获取值。
#
#必填:否
#范围:0-255个字符
# 默认:
#HostInterface =
###选项:HostInterfaceItem
#可选参数,用于定义用于获取主机接口的项目。
#主机接口用于主机自动注册过程。
#在自动注册请求期间,如果以下情况,座席将记录一条警告消息
#指定项目返回的值超过255个字符的限制。
#仅在未定义HostInterface时使用此选项。
#
#必填:否
# 默认:
#HostInterfaceItem =
###选项:RefreshActiveChecks
#刷新活动检查列表的频率(以秒为单位)。
#
#必填:否
#范围:60-3600
# 默认:
#RefreshActiveChecks = 120
###选项:BufferSend
#缓存区保存数据的最长时间(单位s)。
#
#必填:否
#范围:1-3600
# 默认:
#BufferSend = 5
###选项:BufferSize
# 数据缓存区大小. 如果缓存区满,agent会发送所有采集到的数据给 Zabbix server 或者 proxy 。
#内存缓冲区中的最大值数。代理商将发送
#如果缓冲区已满,则将所有收集的数据发送到Zabbix服务器或代理。
#
#必填:否
#范围:2-65535
# 默认:
#BufferSize = 100
###选项:MaxLinesPerSecond
#每秒向serve或proxy发送数据的最大行数
#或Proxy处理'log'和'logrt'活动检查。
#提供的值将被参数'maxlines'覆盖,
#在'log'或'logrt'项目键中提供。
#
#必填:否
#范围:1-1000
# 默认:
#MaxLinesPerSecond = 20
############高级参数#################
###选项:Alias
#为监控项的key设置别名,可以用短且简单的key替换那些长的复杂的监控项key。
#可以存在多个 别名 参数, 而且也允许多个参数使用一个 别名 。
#不同的 别名 也可以指向同一个 item key。别名可以用于 HostMetadataItem 但不能用在HostnameItem参数中。
#例如:
#1. 检索用户'zabbix'的ID.
#Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,^zabbix:.:([0-9]+),,,,\1]
#现在简写的key zabbix.userid 即可用来检索数据
#现在速记键zabbix.userid可用于检索数据。
#必填:否
# 范围:
# 默认:
###选项:Timeout
#超时连接时间
#
#必填:否
#范围:1-30
# 默认:
#超时= 3
###选项:AllowRoot
#允许代理以“ root”身份运行。如果禁用并且代理由“ root”启动,则该代理
#将尝试切换到“用户配置”选项指定的用户。
#如果在普通用户下启动,则无效。
#0-不允许
#1-允许
#
#必填:否
# 默认:
#AllowRoot = 0
###选项:User
#降低权限为系统中存在的指定用户。
#以'root'身份运行且AllowRoot禁止时,该参数才起作用。
#
#必填:否
# 默认:
#用户= zabbix
###选项:Include
#您可以在配置文件的目录中包含单个文件或所有文件。
#安装Zabbix会在/ usr / local / etc中创建include目录,除非在编译时进行了修改。
#
#必填:否
# 默认:
#包括=
#包括= / usr / local / etc / zabbix_agentd.userparams.conf
#包括= / usr / local / etc / zabbix_agentd.conf.d /
#包括= / usr / local / etc / zabbix_agentd.conf.d / *。conf
#######用户定义的监控参数#######
###选项:UnsafeUserParameters
#允许将所有字符都通过参数传递给用户定义的参数。
#不允许使用以下字符:
#\'“`*?[] {}〜$!&;()<> |#@
#另外,不允许换行符。
#0-不允许
#1-允许
#
#必填:否
#范围:0-1
# 默认:
#UnsafeUserParameters = 0
###选项:UserParameter
#用户自定义参数。可以有几个用户定义的参数。
#格式:UserParameter = <key>,<shell命令>
#有关示例,请参见“ zabbix_agentd”目录。
#
#必填:否
# 默认:
#UserParameter =
#######可加载模块#######
###选项:LoadModulePath
#代理模块位置的完整路径。
#默认取决于编译选项。
#要查看默认路径,请运行命令“ zabbix_agentd --help”。
#
#必填:否
# 默认:
#LoadModulePath = $ {libdir} / modules
###选项:LoadModule
#在代理启动时加载的模块。模块用于扩展代理的功能。
#格式:
#LoadModule = <模块.so>
#LoadModule = <路径/模块.so>
#LoadModule = </ abs_path / module.so>
#模块必须位于LoadModulePath指定的目录中,或者路径必须在模块名称之前。
#如果前面的路径是绝对路径(以“ /”开头),则将忽略LoadModulePath。
#允许包含多个LoadModule参数。
#
#必填:否
# 默认:
#LoadModule =
####### TLS相关参数#######
###选项:TLSConnect
#代理应如何连接到服务器或代理。用于主动检查。
#只能指定一个值:
#未加密-连接时未加密
#psk-使用TLS和预共享密钥进行连接
#cert-使用TLS和证书进行连接
#
#强制:是的,如果定义了TLS证书或PSK参数(即使对于“未加密”连接)
# 默认:
#TLSConnect =未加密
###选项:TLSAccept
#接受哪些传入连接。
#可以指定多个值,以逗号分隔:
#未加密-接受未加密的连接
#psk-接受使用TLS和预共享密钥保护的连接
#cert-接受使用TLS和证书保护的连接
#
#强制:是的,如果定义了TLS证书或PSK参数(即使对于“未加密”连接)
# 默认:
#TLSAccept =未加密
###选项:TLSCAFile
#包含顶级CA证书的文件的完整路径名
#对等证书验证。
#
#必填:否
# 默认:
#TLSCAFile =
###选项:TLSCRLFile
#包含已撤销证书的文件的完整路径名。
#
#必填:否
# 默认:
#TLSCRLFile =
###选项:TLSServerCertIssuer
#允许的服务器证书颁发者。
#
#必填:否
# 默认:
#TLSServerCertIssuer =
###选项:TLSServerCertSubject
#允许的服务器证书主题。
#
#必填:否
# 默认:
#TLSServerCertSubject =
###选项:TLSCertFile
#包含代理证书或证书链的文件的完整路径名。
#
#必填:否
# 默认:
#TLSCertFile =
###选项:TLSKeyFile
#包含代理私钥的文件的完整路径名。
#
#必填:否
# 默认:
#TLSKeyFile =
###选项:TLSPSKIdentity
#唯一的,区分大小写的字符串,用于标识预共享密钥。
#
#必填:否
# 默认:
#TLSPSKIdentity =
###选项:TLSPSKFile
#包含预共享密钥的文件的完整路径名。
#
#必填:否
# 默认:
#TLSPSKFile =
#######对于高级用户-TLS密码套件选择标准#######
###选项:TLSCipherCert13
#用于TLS 1.3或更高版本的OpenSSL 1.1.1的密码字符串。
#覆盖基于证书的加密的默认密码套件选择标准。
#
#必填:否
# 默认:
#TLSCipherCert13 =
###选项:TLSCipherCert
#GnuTLS优先级字符串或OpenSSL(TLS 1.2)密码字符串。
#覆盖基于证书的加密的默认密码套件选择标准。
#GnuTLS示例:
#NONE:+ VERS-TLS1.2:+ ECDHE-RSA:+ RSA:+ AES-128-GCM:+ AES-128-CBC:+ AEAD:+ SHA256:+ SHA1:+ CURVE-ALL:+ COMP-NULL :+ SIGN-ALL:+ CTYPE-X.509
#OpenSSL示例:
#EECDH + aRSA + AES128:RSA + aRSA + AES128
#
#必填:否
# 默认:
#TLSCipherCert =
###选项:TLSCipherPSK13
#用于TLS 1.3或更高版本的OpenSSL 1.1.1的密码字符串。
#覆盖基于PSK的加密的默认密码套件选择标准。
# 例子:
#TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
#
#必填:否
# 默认:
#TLSCipherPSK13 =
###选项:TLSCipherPSK
#GnuTLS优先级字符串或OpenSSL(TLS 1.2)密码字符串。
#覆盖基于PSK的加密的默认密码套件选择标准。
#GnuTLS示例:
#NONE:+ VERS-TLS1.2:+ ECDHE-PSK:+ PSK:+ AES-128-GCM:+ AES-128-CBC:+ AEAD:+ SHA256:+ SHA1:+ CURVE-ALL:+ COMP-NULL :+签名
#OpenSSL示例:
#kECDHEPSK + AES128:kPSK + AES128
#
#必填:否
# 默认:
#TLSCipherPSK =
###选项:TLSCipherAll13
#用于TLS 1.3或更高版本的OpenSSL 1.1.1的密码字符串。
#覆盖基于证书和基于PSK的加密的默认密码套件选择标准。
# 例子:
#TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
#
#必填:否
# 默认:
#TLSCipherAll13 =
###选项:TLSCipherAll
#GnuTLS优先级字符串或OpenSSL(TLS 1.2)密码字符串。
#覆盖基于证书和基于PSK的加密的默认密码套件选择标准。
#GnuTLS示例:
#NONE:+ VERS-TLS1.2:+ ECDHE-RSA:+ RSA:+ ECDHE-PSK:+ PSK:+ AES-128-GCM:+ AES-128-CBC:+ AEAD:+ SHA256:+ SHA1:+曲线所有:+ COMP-NULL:+签署所有:+ CTYPE-X.509
#OpenSSL示例:
#EECDH + aRSA + AES128:RSA + aRSA + AES128:kECDHEPSK + AES128:kPSK + AES128
#
#必填:否
# 默认:
#TLSCipherAll =