一般选择使用docker部署,简单不易出错,
安装zabbix服务端
在文件夹下创建docker-compose.yaml,然后docker compose up -d(环境变量的数据库密码要一致)
services:
# 数据库,用mariadb或者mysql都行
mariadb-server:
image: mariadb:10.11
container_name: mariadb-server
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_bin
- --innodb_rollback_on_timeout=OFF
- --innodb_lock_wait_timeout=30
volumes:
- ./db_data:/var/lib/mysql
environment:
- MARIADB_USER=zabbix
- MARIADB_PASSWORD=insertpassword #改数据库密码
- MARIADB_ROOT_PASSWORD=insertpassword #改数据库密码
- MARIADB_DATABASE=zabbix
restart: always
# zabbix server
zabbix-server:
image: zabbix/zabbix-server-mysql:alpine-7.0-latest
container_name: zabbix-server
ports:
- "10051:10051"
links:
- mariadb-server
environment:
- DB_SERVER_HOST=mariadb-server
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=insertpassword #改数据库密码
- MYSQL_ROOT_PASSWORD=insertpassword #改数据库密码
depends_on:
- mariadb-server
restart: always
# zabbix web
zabbix-web-nginx-mysql:
image: zabbix/zabbix-web-nginx-mysql:alpine-7.0-latest
container_name: zabbix-web-nginx
ports:
- "8080:8080" #web访问端口
links:
- mariadb-server
- zabbix-server
environment:
- ZBX_SERVER_HOST=zabbix-server
- DB_SERVER_HOST=mariadb-server
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=insertpassword #改数据库密码
- MYSQL_ROOT_PASSWORD=insertpassword #改数据库密码
- PHP_TZ=Asia/Shanghai
depends_on:
- mariadb-server
- zabbix-server
restart: always
部署后正常跑起来等几分钟后才能访问,因为zabbix第一次跑会往数据库里建很多表。
默认超级管理员账号密码是Admin和zabbix,防火墙记得要开10051和8080端口
想要中文语言在用户->用户->点进当前用户名里面改

客户端安装zabbix-agent2(debian)
在一台主机上安装zabbix-agent2并配置,就能在zabbix-server实时监控这台主机的状态
debian系的linux可以用apt install zabbix-agent2 直接安装
用systemctl status zabbix-agent2 可以直接可看到zabbix-agent2的配置文件在/etc/zabbix/zabbix_agent2.conf
打开配置文件,找到Hostname=,后面的值填这台agent2的主机名(可以随便取一个,注意区分大小写,等会要在zabbix-proxy添加)
然后再找到Server=和ServerActive= ,这两分别是被动模式和主动模式的服务端ip组设置,填zabbix服务端的ip地址,也可以填域名。
主动模式:只允许服务端ip组(Server=)内的ip主动连接到zabbix-agent2拿监控数据(zabbix-agent2的防火墙需要开放10050端口)
被动模式:zabbix-agent2主动连接到服务端ip组(ServerActive=)并上报监控数据给所有服务端ip
填好之后保存,重启zabbix-agent2
systemctl restart zabbix-agent2
服务端添加agent
监测->主机->创建主机

主机名称填刚才在zabbix_agent2.conf配置文件里面设的主机名Hostname=
模板这里点进去,模板群组选择Templates,再选择Linux by Zabbix agent(也可以选Linux by Zabbix agent active,实际上是被动模式和主动模式的区别,如果选了就要添加一个agent接口,填zabbix-agent2客户端的ip。也可以在右边填域名,不过记得点一下右边的“连接到”下面的“DNS”。)
主机群组可以选Linux servers
安装zabbix-proxy代理端(可选)
一般情况下,zabbix-agent2能通过ip连接到zabbix-server,同时zabbix-server也能通过ip连接到zabbix-agent2,就不需要搭建zabbix proxy。
但如果zabbix-agent2在防火墙或者nat网络环境下,zabbix-server无法通过ip连接到zabbix-agent2,就需要在zabbix-agent2的内网搭建一个zabbix-proxy服务器,代理zabbix-server和zabbix-agent2之间的连接。(不需要开放zabbix proxy任何端口到外网,只需要保证能连接到zabbix-server即可)
创建docker-compose.yaml,然后docker compose up -d(记得改Proxy名称和zabbix-server ip,保证宿主机系统防火墙开放10051端口)
services:
zabbix-proxy:
image: zabbix/zabbix-proxy-sqlite3:alpine-7.0-latest
container_name: zabbix-proxy
restart: always
environment:
- ZBX_HOSTNAME=zabbix-proxy #设置Proxy名称
- ZBX_SERVER_HOST=192.168.1.1 #zabbix-server的ip或域名
- ZBX_PROXYMODE=0 #0代表主动模式 (active)
- ZBX_DBNAME=/var/lib/zabbix/home_cloud.sqlite
- ZBX_CONFIGCACHESIZE=32M
- ZBX_STARTPOLLERS=5
volumes:
- /etc/localtime:/etc/localtime:ro
- ./zbx_proxy_db:/var/lib/zabbix
ports:
- "10051:10051" #端口映射然后在zabbix服务端上添加zabbix-proxy
管理->Proxy->创建Proxy

Proxy名称填刚才在yaml文件里面设置的container_name
Proxy模式选主动式
然后点添加就可以
添加后,记得在zabbix-server中为agent设置zabbix-proxy代理

同时,需要改zabbix-agent2的配置zabbix_agent2.conf,把Server=和ServerActive= 改成zabbix-proxy的ip,再重启zabbix-agent2才生效。
添加自定义监控
添加自定义监控项
模板自带的监控项足够齐全,能满足大部分需求,但还是有一部分可能需要自己实现。
这里就以收集agent与某个ip的icmp网络延迟为例(原版Zabbix Agent2没有内置Key用来主动ping其他IP),需要主动给agent手动添加一个监控项。
在zabbix-agent2的zabbix_agent2.conf配置文件的顶部添加这一行(同时需要安装fping)
UserParameter=A.icmp.cf,fping -c 1 -q 1.0.0.1 2>&1 | awk -F'/' 'END{ print (NR==0 || $8=="") ? -10 : $8 }'
保存然后重启zabbix-agent2
在zabbix-server的webui中进入到
数据采集->主机->点击对应主机右边的监控项->创建监控项

名称可以随便填一个
类型可以选Zabbix客户端或者Zabbix客户端(主动式),这两个的区别也就是上面说的被动模式和主动模式,被动模式需要添加一个主机接口
单位写ms,
更新间隔就是采集间隔,可以填5s
可以按需设置一下历史记录,然后点添加(如果类型选了Zabbix客户端,会有个测试选项,可以测试是否正常采集数据)
添加仪表盘和图形
此时,已经采集到数据了,但还要把数据在仪表盘中展示出来
在仪表盘处新建

然后拖动新建一个大一点的控件,就会弹出来一个组件配置窗口

类型选择图形
然后添加的数据集里面主机选择对应agent,还有刚刚添加的监控项
点添加,再点右上角保存设置就能在新仪表盘看到刚刚添加的图形。
评论