Zabbix百科简述
- zabbix(
zæbiks)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
- zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
- zabbix由2部分构成,zabbix server与可选组件zabbix agent。
- zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
1、安装参数说明
| 参数 |
描述 |
| DB_SERVER_HOST |
此变量是MySQL或PostgreSQL服务器的IP或DNS名称。默认情况下,MySQL和PostgreSQL的值分别是MySQL -server和PostgreSQL -server |
| DB_SERVER_PORT |
104/5000 此变量是MySQL或PostgreSQL服务器的端口。默认值分别为'3306'或'5432'。 |
| MYSQL_USER |
MySQL默认用户,默认为 'zabbix'. |
| MYSQL_PASSWORD |
MySQL数据库密码,默认为zabbix |
| MYSQL_DATABASE |
MySQL数据库的名称,默认为zabbix |
| POSTGRES_USER |
PostgreSQL 数据库用户. 默认值为'zabbix' |
| POSTGRES_PASSWORD |
PostgreSQL数据库密码,默认为zabbix |
| POSTGRES_DB |
PostgreSQL数据库的名称,默认为zabbix |
| PHP_TZ |
PHP格式的时区。支持的时区的完整列表可在php.net上获得。默认值是'Europe/Riga'。 |
| ZBX_SERVER_NAME |
在web界面的右上角可见Zabbix安装名,默认值是'Zabbix Docker' |
| ZBX_JAVAGATEWAY_ENABLE |
启用与Zabbix Java网关的通信来收集Java相关检查。默认值为“false” |
| ZBX_ENABLE_SNMP_TRAPS |
启用SNMP陷阱特性。它需要Zabbix-snmptraps实例和共享卷/var/lib/zabbix/snmptraps到Zabbix服务器或Zabbix代理。 |
| restart always |
总是要重启zabbix,docker或Linux服务挂了,然后服务重启了会跟着启动服务 |
2 案例一、MySQL
2.1 启动一个空MySQL实例
docker run --name mysql-server --restart always -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin
2.3、启动一个 Zabbix Java 网关实例
docker run --name zabbix-java-gateway -t -d zabbix/zabbix-java-gateway:latest
2.4、启动Zabbix服务器实例,并将该实例与创建的MySQL服务器实例链接
docker run --name zabbix-server-mysql --restart always -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--link mysql-server:mysql \
--link zabbix-java-gateway:zabbix-java-gateway \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest
2.5、启动Zabbix web接口,并将实例与创建的MySQL服务器和Zabbix服务器实例链接起来
docker run --name zabbix-web-nginx-mysql --restart always -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 80:80 \
-d zabbix/zabbix-web-nginx-mysql:latest
3 案例一、PostgreSQL
3.1 启动一个空PostgreSQL 实例
docker run --name postgres-server --restart always -t \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix" \
-e POSTGRES_DB="zabbix_pwd" \
-d postgres:latest
3.2 启动Zabbix snmptraps实例
docker run --name zabbix-snmptraps --restart always -t \
-v /zbx_instance/snmptraps:/var/lib/zabbix/snmptraps:rw \
-v /var/lib/zabbix/mibs:/usr/share/snmp/mibs:ro \
-p 162:162/udp \
-d zabbix/zabbix-snmptraps:latest
3.3 启动Zabbix服务器实例,并将该实例与创建的PostgreSQL服务器实例链接
docker run --name zabbix-server-pgsql --restart always -t \
-e DB_SERVER_HOST="postgres-server" \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix" \
-e POSTGRES_DB="zabbix_pwd" \
-e ZBX_ENABLE_SNMP_TRAPS="true" \
--link postgres-server:postgres \
-p 10051:10051 \
--volumes-from zabbix-snmptraps \
-d zabbix/zabbix-server-pgsql:latest
3.4 启动Zabbix web接口,并将实例与创建的PostgreSQL服务器和Zabbix服务器实例链接起来
docker run --name zabbix-web-nginx-pgsql --restart always -t \
-e DB_SERVER_HOST="postgres-server" \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix" \
-e POSTGRES_DB="zabbix_pwd" \
--link postgres-server:postgres \
--link zabbix-server-pgsql:zabbix-server \
-p 443:443 \
-v /etc/ssl/nginx:/etc/ssl/nginx:ro \
-d zabbix/zabbix-web-nginx-pgsql:latest
4、docker-compose安装
4.1 案例一
docker-compose -f ./docker-compose_v2_alpine_mysql_latest.yaml up -d
4.2 案例二
docker-compose -f ./docker-compose_v2_ubuntu_mysql_local.yaml up -d
5、参考文档