Zabbix 是一个企业级的、开源的、分布式的监控套件,被用来监控IT基础设施的可用性和性能。Zabbix可以监控网络和服务的监控状况,Zabbix 利用灵活的告警机制,允许用户对事件发送基于邮件、短信、微信和钉钉等告警方式,这样可以保证快速的对问题作出相应。
Zabbix支持主动和被动两种方式.所有的Zabbix报告都可以通过配置参数在WEB前端进行访问,Web前端将帮助你在任何区域都能够迅速获得你的网络及服务状况。 zabbix架构不仅支持小型组织,还支持大规模的公司的部署。Zabbix 是零成本的,因为 Zabbix 编写和发布基于 GPL V2 协议,意味着源代码是免费发布的。
- 基本环境
操作系统 | CPU | 内存 | 硬盘 |
---|---|---|---|
CentOS-7-1908 | i7-10510U | 8G | 500G |
- 软件版本
软件 | 版本 |
---|---|
docker | 18.09.0-0505 |
mysql | 5.7 |
zabbix-java-gateway | 4.4.6 |
zabbix-server-mysql | 4.4.6 |
zabbix-web-nginx-mysql | 4.4.6 |
zabbix-agent | 4.4.6 |
-
docker 安装参考:https://blog.csdn.net/m0_37929348/article/details/105068437
-
安装mysql
docker run --name mysqldb -t \
--hostname mysqldb \
--restart=always \
-v /etc/localtime:/etc/localtime \
-v /data/mysql/:/var/lib/mysql \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="root" \
-d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin
--name mysql-db
:指定容器名称-t
:分配终端--hostname mysql-server
:容器主机名称--restart=always
:自动启动容器-v /etc/localtime:/etc/localtime
:让容器时间和宿主机时间同步-v /data/mysql/:/var/lib/mysql
:映射数据库目录-e
:指定变量-d
:后台运行mysql:5.7
:使用mysql5.7版本--character-set-server=utf8
:字符集设置--collation-server=utf8_bin
:排序规则
- 运行zabbix-java-gateway
docker run --name zabbix-java-gateway -t \
--hostname zabbix-java-gateway \
--restart=always \
-v /etc/localtime:/etc/localtime \
-d zabbix/zabbix-java-gateway:latest
- 运行zabbix-server-mysql
docker run --name zabbix-server-mysql -t \
--hostname zabbix-server-mysql \
--restart=always \
-v /etc/localtime:/etc/localtime \
-e DB_SERVER_HOST="mysqldb" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="root" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--link mysqldb:mysql \
--link zabbix-java-gateway:zabbix-java-gateway \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest
--link mysqldb:mysql
:链接到“mysqldb”容器,后面的“mysql”是别名,类似与linux中的hosts文件里的内容。--link zabbix-java-gateway:zabbix-java-gateway
:链接到“zabbix-java-gateway”容器,后面“zabbix-java-gateway”是别名。-p 10051:10051
:对将容器里的主机10051端口映射到主机10051端口。
- 运行zabbix-server-mysql
docker run --name zabbix-web-nginx-mysql -t \
--hostname zabbix-web-nginx-mysql \
--restart=always \
-v /etc/localtime:/etc/localtime \
-e PHP_TZ=Asia/Shanghai \
-e DB_SERVER_HOST="mysqldb" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="root" \
--link mysqldb:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 80:80 \
-d zabbix/zabbix-web-nginx-mysql:latest
-e PHP_TZ=Asia/Shanghai
:使用的时区,如果不加服务器报警的时候就会使用国外的。--link zabbix-server-mysql:zabbix-server
:不要修改默认的“zabbix-server”名称,如果修改了会造成“zabbix-server”端起不来。
- 安装zabbix-agent
注意,这里我不建议在docker版的zabbix-server中使用docker版的zabbix-agent,因为docker容器,重启之后IP地址会变更!!!
我们可以到zabbix官网下载对应版本的agent来进行安装:http://repo.zabbix.com/zabbix
# 下载对应版本的zabbix-agent RPM安装包
wget http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-agent-4.4.6-1.el7.x86_64.rpm
# 使用rpm -ivh 命令进行安装
rpm -ivh zabbix-agent-4.4.6-1.el7.x86_64.rpm
修改zabbix-agent配置文件
vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log #错误日志
LogFileSize=0
ListenPort=10050 #启动监听端口
StartAgents=3 #被动模式下选择,主动模式则为0
ListenIP=0.0.0.0 #监听所有IP
Server=192.168.1.1 #被动模式下必填,将zabbix-server端的ip填入
#ServerActive=10.27.146.250 #主动模式下填写
Hostname=zabbix-server #本机的hostname,此值必须与zabbix的网页上创建的主机名一致即可
Include=/etc/zabbix/zabbix_agentd.d/
修改完之后,使用命令systemctl start zabbix-agent
启动zabbix-agnet服务,然后使用命令systemctl enable zabbix-agent
设置zabbix-agent服务开机自动启动。
- 登录zabbix
登录地址 | 用户名 | 密码 |
---|---|---|
http://服务器IP | Admin | zabbix |
首次登录默认语言为英文,我们修改成中文。