Aws EC2使用docker-Compose安装Zabbix
Aws EC2使用docker-Compose安装Zabbix
安装zabbix server
zabbix官方提供了docker安装zabbix的方案和相关配置:
https://www.zabbix.com/documentation/5.2/zh/manual/installation/containers#docker
下面我们使用zabbix官方的docker-compose来运行zabbix server
# 从gitHub克隆docker文件和配置
[root@ip-172-31-30-39 zabbix-docker]# git clone https://github.com/zabbix/zabbix-docker.git
# 修改运行的配置文件
[root@ip-172-31-30-39 zabbix-docker]# cd zabbix-docker
[root@ip-172-31-30-39 zabbix-docker]# vi .env
使用docker-compose运行zabbix时,配置文件中默认的web http端口为80:8080, ssl端口为443:8443。通过编辑.env文件可以修改相关的端口。下面我们将80和443端口修改为默认端口
# Expose ports per service
ZABBIX_SERVER_PORT=10051 # zabbix server运行端口
ZABBIX_PROXY_MYSQL_PORT=10071
ZABBIX_PROXY_SQLITE3_PORT=10061
ZABBIX_WEB_NGINX_HTTP_PORT=8081 # 使用nginx时Web控制台的端口
ZABBIX_WEB_NGINX_HTTPS_PORT=8443 # 使用nginx时Web控制台ssl端口
ZABBIX_WEB_APACHE_HTTP_PORT=8081 # 使用apache时Web控制台的端口
ZABBIX_WEB_APACHE_HTTPS_PORT=8443 # 使用apache时Web控制台ssl端口
ZABBIX_AGENT_PORT=10050 # zabbix agent运行端口
ZABBIX_AGENT2_PORT=10060
ZABBIX_JAVA_GATEWAY_PORT=10052
ZABBIX_SNMPTRAPS_PORT=162
ZABBIX_WEB_SERVICE_PORT=10053
zabbix提供的docker-compose支持多个系统和数据库,在aws ec2上,我们直接使用pgsql的docker-compose配置文件。
[root@ip-172-31-30-39 zabbix-docker]# ls -lh | grep docker-compose
lrwxrwxrwx. 1 root root 42 Dec 10 08:24 compose.yaml -> docker-compose_v3_alpine_mysql_latest.yaml
-rw-r--r--. 1 root root 4.6K Dec 10 08:24 docker-compose_v3_alpine_mysql_latest.yaml
-rw-r--r--. 1 root root 7.8K Dec 10 08:24 docker-compose_v3_alpine_mysql_local.yaml
-rw-r--r--. 1 root root 4.6K Dec 10 08:24 docker-compose_v3_alpine_pgsql_latest.yaml
-rw-r--r--. 1 root root 8.2K Dec 10 08:24 docker-compose_v3_alpine_pgsql_local.yaml
-rw-r--r--. 1 root root 4.6K Dec 10 08:24 docker-compose_v3_centos_mysql_latest.yaml
-rw-r--r--. 1 root root 7.9K Dec 10 08:24 docker-compose_v3_centos_mysql_local.yaml
-rw-r--r--. 1 root root 4.6K Dec 10 08:24 docker-compose_v3_centos_pgsql_latest.yaml
-rw-r--r--. 1 root root 8.2K Dec 10 08:24 docker-compose_v3_centos_pgsql_local.yaml
-rw-r--r--. 1 root root 4.5K Dec 10 08:24 docker-compose_v3_ol_mysql_latest.yaml
-rw-r--r--. 1 root root 7.6K Dec 10 08:24 docker-compose_v3_ol_mysql_local.yaml
-rw-r--r--. 1 root root 4.6K Dec 10 08:24 docker-compose_v3_ol_pgsql_latest.yaml
-rw-r--r--. 1 root root 8.0K Dec 10 08:24 docker-compose_v3_ol_pgsql_local.yaml
-rw-r--r--. 1 root root 4.3K Dec 10 08:24 docker-compose_v3_ubuntu_mysql_latest.yaml
-rw-r--r--. 1 root root 7.6K Dec 10 08:24 docker-compose_v3_ubuntu_mysql_local.yaml
-rw-r--r--. 1 root root 4.4K Dec 10 08:24 docker-compose_v3_ubuntu_pgsql_latest.yaml
-rw-r--r--. 1 root root 7.9K Dec 10 08:24 docker-compose_v3_ubuntu_pgsql_local.yaml
使用docker-compose运行zabbix server
[root@ip-172-31-30-39 zabbix-docker]# docker-compose -f ./docker-compose_v3_alpine_pgsql_latest.yaml up -d
[+] Running 4/4
✔ Container zabbix-docker-db-data-pgsql-1 Started 0.4s
✔ Container zabbix-docker-postgres-server-1 Running 0.0s
✔ Container zabbix-docker-zabbix-web-nginx-pgsql-1 Running 0.0s
✔ Container zabbix-docker-zabbix-server-1 Running
需要注意的是,zabbix官方的docker-compose配置文件需要较新的docker-compose程序才能运行成功,在低版本的docker-compose运行时可能会出现解析配置文件错误等异常问题。
# 安装最新的docker-compose
[root@ip-172-31-30-39 zabbix-docker]# sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\1/')/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
[root@ip-172-31-30-39 zabbix-docker]# docker-compose --version
Docker Compose version v2.31.0
查看docker-compose运行的结果
[root@ip-172-31-30-39 zabbix-docker]# docker-compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
zabbix-docker-postgres-server-1 postgres:16-alpine "docker-entrypoint.s…" postgres-server 17 hours ago Up 17 hours
zabbix-docker-zabbix-server-1 zabbix/zabbix-server-pgsql:alpine-7.0-latest "/usr/bin/docker-ent…" zabbix-server 17 hours ago Up 17 hours 0.0.0.0:10051->10051/tcp, :::10051->10051/tcp
zabbix-docker-zabbix-web-nginx-pgsql-1 zabbix/zabbix-web-nginx-pgsql:alpine-7.0-latest "docker-entrypoint.sh" zabbix-web-nginx-pgsql 17 hours ago Up 17 hours (healthy) 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp, 0.0.0.0:8081->8080/tcp, [::]:8081->8080/tcp
登录zabbix控制台
使用浏览器访问zabbix服务器的IP和对应端口,即可进入zabbix控制台。首次进入使用默认的管理员账号登入:
Username: Admin Password: zabbix
登入成功后,在左侧菜单栏依次进入"监测>主机",可以看到默认有一台Zabbix Server记录,这就是安装zabbix对应宿主机的监测。
添加主机监测
添加其他主机时,对应的主机需要先安装zabbix-agent作为客户端,通过运行在主机上的zabbix-agent程序收集系统信息上报给zabbix server。
[root@ip-172-31-21-120 ec2-user]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/amazonlinux/2023/x86_64/zabbix-release-latest-7.0.amzn2023.noarch.rpm
[root@ip-172-31-21-120 ec2-user]# yum install -y zabbix-agent
[root@ip-172-31-21-120 ec2-user]# systemctl restart zabbix-agent
[root@ip-172-31-21-120 ec2-user]# systemctl enable zabbix-agent
# 修改zabbix-agent配置
[root@ip-172-31-21-120 ec2-user]# vi /etc/zabbix/zabbix_agentd.conf
需要修改的项目如下:
Server=172.31.30.39 # 修改为zabbix server宿主机的ip
ServerActive=172.31.30.39 # 修改为zabbix server宿主机的ip
Hostname=zf-ops # 当前主机的自定义命名
配置文件修改保持后,重启zabbix-agent使配置文件生效
[root@ip-172-31-21-120 ec2-user]# systemctl restart zabbix-agent
# 查看zabbix-agent的日志
[root@ip-172-31-21-120 ec2-user]# tail -f /var/log/zabbix/zabbix_agentd.log
在zabbix控制台,左侧菜单栏依次进入"监测>主机",点击右上角"创建主机",进入添加主机的窗口。
其中,主机名称为zabbix-agent配置中 Hostname 对应的值,模板配置可以选择官方已经配置好的"Linux by Zabbix agent",主机群组选择"Linux Servers"即可。
接口新增使用agent接口,IP地址填写为被添加主机的IP地址(同一内网时填写内网IP地址即可),端口没有修改的话使用默认的10050端口即可。
主机添加成功后,在主机列表可以看到新增的主机。稍等一段时间后,刷新页面点击"监控项"或者"图形"即可看到最新的数据记录。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧