内容简介:Zabbix 是目前最为主流的开源监控方案之一,前面的文章主要介绍了传统的安装方式,在 Docker 容器出现后我们也拥有更高效的安装方式,这里就主要分享基于 Docker 安装和配置 Zabbix 的相关心得。使用 Docker 安装 Zabbix 实践2018 年 10 月 30 日 - 初稿
Zabbix 是目前最为主流的开源监控方案之一,前面的文章主要介绍了传统的安装方式,在 Docker 容器出现后我们也拥有更高效的安装方式,这里就主要分享基于 Docker 安装和配置 Zabbix 的相关心得。
使用 Docker 安装 Zabbix 实践
更新历史
2018 年 10 月 30 日 - 初稿
阅读原文 - https://wsgzao.github.io/post/zabbix-docker/
扩展阅读
Zabbix - https://www.zabbix.com/
官方文档
zabbix-server
从容器安装 Zabbix Server 最简单的方式之一,关于数据卷是否需要映射,看实际需求吧
https://hub.docker.com/r/zabbix/zabbix-server-mysql/tags/
https://hub.docker.com/r/zabbix/zabbix-web-nginx-mysql/tags/# install docker-ce sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce sudo systemctl start docker # Install mysql, zabbix, nginx in docker docker run --name mysql-server -t \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix" \ -e MYSQL_ROOT_PASSWORD="zabbix" \ -p 127.0.0.1:3306:3306 \ -d mysql:5.7 \ --character-set-server=utf8 --collation-server=utf8_bin docker run --name zabbix-server-mysql -t \ --link mysql-server:mysql \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix" \ -e MYSQL_ROOT_PASSWORD="zabbix" \ -p 10051:10051 \ -d \ zabbix/zabbix-server-mysql:centos-4.0-latest docker run --name zabbix-web-nginx-mysql -t \ --link mysql-server:mysql \ --link zabbix-server-mysql:zabbix-server \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix" \ -e MYSQL_ROOT_PASSWORD="zabbix" \ -e PHP_TZ="Asia/Singapore" \ -p 80:80 \ -d \ zabbix/zabbix-web-nginx-mysql:centos-4.0-latest # 做数据映射后的方案 mkdir -p /data/docker/mysql/zabbix/data mkdir -p /data/docker/zabbix/alertscripts mkdir -p /data/docker/zabbix/externalscripts docker run --name mysql-server -t \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix" \ -e MYSQL_ROOT_PASSWORD="zabbix" \ -v /data/docker/mysql/zabbix/data:/var/lib/mysql \ -p 127.0.0.1:3306:3306 \ -d mysql:5.7 \ --character-set-server=utf8 --collation-server=utf8_bin docker run --name zabbix-server-mysql -t \ --link mysql-server:mysql \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix" \ -e MYSQL_ROOT_PASSWORD="zabbix" \ -v /etc/localtime:/etc/localtime:ro \ -v /data/docker/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \ -v /data/docker/zabbix/externalscripts:/usr/lib/zabbix/externalscripts \ -p 10051:10051 \ -d \ zabbix/zabbix-server-mysql:centos-4.0-latest docker run --name zabbix-web-nginx-mysql -t \ --link mysql-server:mysql \ --link zabbix-server-mysql:zabbix-server \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix" \ -e MYSQL_ROOT_PASSWORD="zabbix" \ -e PHP_TZ="Asia/Singapore" \ -p 80:80 \ -d \ zabbix/zabbix-web-nginx-mysql:centos-4.0-latest
zabbix-proxy 和 zabbix-agent 也可以用容器安装,不过 agent 就不推荐容器化了,针对容器本身的监控可以使用 zabbix-docker-monitoring,当然 Prometheus 才是监控容器的利刃。
https://github.com/monitoringartist/zabbix-docker-monitoringzabbix-docker 官方的 GitHub 站点还包含更详细的 docker compose 配置
https://github.com/zabbix/zabbix-docker关于 Docker 常用命令可以参考 Docker 从入门到实践
https://wsgzao.github.io/post/docker/Zabbix 容器化后的配置
容器化的配置和传统方式略有不同,尤其是网络防火墙策略
# 根据 zabbix_server.conf 配置文件内容创建对应的目录和权限
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=zabbix
StartPollers=500
StartPingers=50
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=8G
TrendCacheSize=1G
Timeout=15
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
# Zabbix 容器默认的配置
LogType=console
DBHost=mysql-server
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/sbin/fping
Fping6Location=/usr/sbin/fping6
SSHKeyLocation=/var/lib/zabbix/ssh_keys
SSLCertLocation=/var/lib/zabbix/ssl/certs/
SSLKeyLocation=/var/lib/zabbix/ssl/keys/
SSLCALocation=/var/lib/zabbix/ssl/ssl_ca/
LoadModulePath=/var/lib/zabbix/modules/
# 按照规范映射指定卷并做好脚本权限设置
-v /data/docker/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-v /data/docker/zabbix/externalscripts:/usr/lib/zabbix/externalscripts \
# Zabbix partition optimization
1. disable Housekeeping
2. mysql_partition
https://www.zabbix.org/wiki/Docs/howto/mysql_partition
# 容器内部的调整
apt-get update
apt-get install lrzsz vim cron -y
mysql -uzabbix -pzabbix zabbix < partition.sql
# 设置定时任务
vim /etc/crontab
01 01 * * * root mysql -uzabbix -pzabbix zabbix -e"CALL partition_maintenance_all('zabbix')"
service cron restart
# 在宿主机上配置定时任务的方法
docker exec $(docker ps -aqf "name=mysql-server") mysql -uzabbix -pzabbix zabbix -e"CALL partition_maintenance_all('zabbix')"
升级容器
- 拉取最新镜像
- 停止并删除当前运行容器
- 用最新镜像重新创建容器
- All Done
# 查找当前系统中使用的镜像 docker images # 拉取最新镜像 docker pull zabbix/zabbix-web-nginx-mysql docker pull zabbix/zabbix-server-mysql # 查找容器 ID docker ps # 导出之前的容器配置信息 docker inspect 14fd67405076 # 停止容器 docker stop 14fd67405076 docker kill 14fd67405076 # 删除容器 docker rm 14fd67405076 # 用最新镜像重新创建容器 docker run --name zabbix-server-mysql -t \ --link mysql-server:mysql \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix" \ -e MYSQL_ROOT_PASSWORD="zabbix" \ -v /etc/localtime:/etc/localtime:ro \ -v /data/docker/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \ -v /data/docker/zabbix/externalscripts:/usr/lib/zabbix/externalscripts \ -p 10051:10051 \ -d \ zabbix/zabbix-server-mysql docker run --name zabbix-web-nginx-mysql -t \ --link mysql-server:mysql \ --link zabbix-server-mysql:zabbix-server \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix" \ -e MYSQL_ROOT_PASSWORD="zabbix" \ -e PHP_TZ="Asia/Singapore" \ -p 80:80 \ -d \ zabbix/zabbix-web-nginx-mysql
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用VMware安装Permeate靶场系统实践
- Zabbix Proxy 分布式监控安装和配置实践
- Zabbix最佳实践一:Zabbix4.0.2的安装与配置
- Golang入门:从安装、部署以及GoLand的安装开始
- Win2016上安装SFB2015先决条件安装失败:RewriteModule
- mac:Go安装和配置+GoLand安装和使用之完整教程
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Google将带来什么?
杰夫·贾维斯 / 陈庆新、赵艳峰、胡延平 / 中华工商联合出版社 / 2009-8 / 39.00元
《Google将带来什么?》是一本大胆探索、至关重要的书籍,追寻当今世界最紧迫问题的答案:Google将带来什么?在兼具预言、宣言、思想探险和生存手册性质的这样一《Google将带来什么?》里,互联网监督和博客先锋杰夫·贾维斯对Google这个历史上发展速度最快的公司进行了逆向工程研究,发现了40种直截了当、清晰易懂的管理与生存原则。与此同时,他还向我们阐明了互联网一代的新世界观:尽管它具有挑战性......一起来看看 《Google将带来什么?》 这本书的介绍吧!