一、架构图图
二、 总体目录结构
三、部署 Zabbix Server
1 zabbix/deploy-server.yml
2 zabbix/template/zabbix_server.conf.j2
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBName=zabbix
DBUser=zabbix
DBPassword=QFedu123@
StartDiscoverers=10
JavaGateway=192.168.122.58
JavaGatewayPort=10052
StartJavaPollers=5
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=4M
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
四、部署 Zabbix Proxy
1 zabbix/deploy-proxy.yml
2 zabbix/template/zabbix_proxy.conf.j2
# 代理模式 0 主动上报给 Zabbix Server, 1 被动,默认 0
ProxyMode=0
# Zabbix 服务器的IP
Server=192.168.122.58
# 唯一的、区分大小写的代理名称。确保服务器知道代理名称!
# 如果未定义,则从HostnameItem获取值。
Hostname=bj-proxy
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=QFedu123@
LogFile=/var/log/zabbix/zabbix_proxy.log
# 允许日志文件最大多少 MB, 默认是 0,就是不限制大小,
# 也就是不进行日志切割
LogFileSize=2
# 即使数据已经与服务器同步,代理也会在本地保留N个小时。
#如果第三方应用程序将使用本地数据,则可以使用此参数
# 默认 0
ProxyLocalBuffer=0
# 如果没有与Zabbix服务器连接,代理将保留数据N小时。
# 旧数据将丢失。
# 默认 1
ProxyOfflineBuffer=1
# 心跳消息的频率(秒)。
#用于监控服务器端代理的可用性。
#0-已禁用心跳消息。
#对于处于被动模式的代理,此参数将被忽略。
# 默认 60
HeartbeatFrequency=60
# 向服务端更新监控配置的间隔时间
# 为了快速看到实验效果,这里设置5秒,默认3600秒
ConfigFrequency=5
# 向服务端发送监控数据的间隔时间,单位秒
DataSenderFrequency=5
# 外部脚本绝对路径
ExternalScripts=/usr/lib/zabbix/externalscripts
# MySQL 数据库慢查询时间
LogSlowQueries=3000
# 可以使另一个Zabbix实例或第三方工具远程访问
# Zabbix服务器和代理的一些内部指标。
# 只运行下面列出的 IP 地址访问此 zabbix 数据
# 多个用英文逗号隔开
StatsAllowedIP=127.0.0.1
五、部署 Zabbix Agent
1 zabbix/deploy-agent.yml
---
- name: 部署 Zabbix Agent
hosts: all
gather_facts: no
vars:
zabbix_server: 192.168.122.59
repo: https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
tasks:
- name: 安装 zabbix 的仓库文件
yum:
name:
- "{{ repo }}"
state: present
tags: deploy
- name: 安装 zabbix-agent
yum:
name:
- zabbix-agent
state: present
tags: deploy
- name: 启动 zabbix agent 服务
systemd:
name: zabbix-agent
enabled: yes
state: started
tags:
- start
- deploy
- name: 传输 配置文件
template:
src: zabbix_agentd.conf
dest: /etc/zabbix/zabbix_agentd.conf
tags: update
- name: 重启 zabbix-agent
systemd:
name: zabbix-agent
state: restarted
tags: update
...
2 zabbix/template/zabbix_agent.conf.j2
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server={{ zabbix_server }}
Hostname={{inventory_hostname}}
Include=/etc/zabbix/zabbix_agentd.d/*.conf