本文主要记录在上班学(mo)习(yu)时的一些学习记录,本文主要记录的是zabbix监控系统的学习。
关键词:zabbix
zabbix架构
![]()
镜像种类
docker-compose.yml文件
根据架构图,zabbix主要有以下组件:
- zabbix
server服务端,负责处理由agent或者proxy发送来的数据,并将这部分数据写入数据库。与这部分相关的docker配置文件如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| server: image: zabbix/zabbix-server-mysql restart: always volumes: - ./alertscripts:/usr/lib/zabbix/alertscripts - /etc/localtime:/etc/localtime environment: - DB_SERVER_HOST=192.168.15.131 - MYSQL_DATABASE=zabbix - MYSQL_USER=zabbix - MYSQL_PASSWORD=zabbix - MYSQL_ROOT_PASSWORD=root - ZBX_JAVAGATEWAY=192.168.15.131 - ZBX_JAVAGATEWAY_ENABLE=true - ZBX_JAVAGATEWAYPORT=10052
|
主要设置以下几个地方:
- DB_SERVER_HOST:这部分是设置后端数据库的地址,如果两者在同一台机器上直接使用localhost即可。
- MYSQL_DATABASE:数据库名称,默认是zabbix。
- MYSQL_USER:zabbix数据库的用户名,默认也是zabbix。
- MYSQL_PASSWORD:zabbix数据库的密码,默认也是zabbix。
- MYSQL_ROOT_PASSWORD:数据库的root密码
- ZBX_JAVAGATEWAY:java gateway的地址,这里以容器的名称代替。
- ZBX_JAVAGATEWAY_ENABLE:设置是否启用java gateway。
- ZBX_JAVAGATEWAYPORT:java gateway的端口。
配置文件目录对应/etc/zabbix/zabbix_server.conf
1 2 3 4 5 6 7 8 9 10 11 12 13
| mysql: image: mysql:debian restart: always environment: - MYSQL_DATABASE=zabbix - MYSQL_USER=zabbix - MYSQL_PASSWORD=zabbix - MYSQL_ROOT_PASSWORD=root command: - mysqld - --default-authentication-plugin=mysql_native_password - --character-set-server=utf8 - --collation-server=utf8_bin
|
这部分是zabbix连接的mysql数据库,需要注意的是mysql的版本对于某个特定版本可能会有要求,这个可以在日志中查看到对应的报错。
1 2 3 4 5 6
| zabbix-java-gateway: image: zabbix/zabbix-java-gateway restart: always volumes: - /etc/localtime:/etc/localtime network_mode: host
|
- zabbix的前端展示界面,一般是php+nginx的环境。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| zabbix-web-nginx-mysql: image: zabbix/zabbix-web-nginx-mysql restart: always environment: - DB_SERVER_HOST=192.168.15.131 - MYSQL_DATABASE=zabbix - MYSQL_USER=zabbix - MYSQL_PASSWORD=zabbix - MYSQL_ROOT_PASSWORD=root - ZBX_SERVER_HOST=192.168.15.131 privileged: true network_mode: host volumes: - /etc/localtime:/etc/localtime - ./Song.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
|
这里注意区分DB_SERVER_HOST和ZBX_SERVER_HOST的区别,一个是连接后端数据库的端口,另一个是连接zabbix服务端的端口。
此外容器的默认字体无法正常显示中文,这里使用宋体进行替换。
- zabbix的代理客户端:负责监控当前主机的组件,
配合自定义的脚本可以实现自定义监控.
1 2 3 4 5 6 7 8
| zabbix-agent: image: zabbix/zabbix-agent restart: always environment: - ZBX_HOSTNAME=Zabbix server - ZBX_SERVER_HOST=192.168.15.131 - ZBX_SERVER_PORT=10051 network_mode: host
|
主要设置Zabbix Server的IP地址和Zabbix的端口地址
总体zabbix配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| version: '3'
services: zabbix-web-nginx-mysql: image: zabbix/zabbix-web-nginx-mysql restart: always environment: - DB_SERVER_HOST=192.168.15.131 - MYSQL_DATABASE=zabbix - MYSQL_USER=zabbix - MYSQL_PASSWORD=zabbix - MYSQL_ROOT_PASSWORD=root - ZBX_SERVER_HOST=192.168.15.131 privileged: true network_mode: host volumes: - /etc/localtime:/etc/localtime - ./Song.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf depends_on: - zabbix-server-mysql - zabbix-mysql zabbix-mysql: image: mysql:debian restart: always environment: - MYSQL_DATABASE=zabbix - MYSQL_USER=zabbix - MYSQL_PASSWORD=zabbix - MYSQL_ROOT_PASSWORD=root command: - mysqld - --default-authentication-plugin=mysql_native_password - --character-set-server=utf8 - --collation-server=utf8_bin volumes: - /etc/localtime:/etc/localtime - ./db:/var/lib/mysql network_mode: host zabbix-java-gateway: image: zabbix/zabbix-java-gateway restart: always volumes: - /etc/localtime:/etc/localtime network_mode: host zabbix-server-mysql: image: zabbix/zabbix-server-mysql restart: always volumes: - ./alertscripts:/usr/lib/zabbix/alertscripts - /etc/localtime:/etc/localtime environment: - DB_SERVER_HOST=192.168.15.131 - MYSQL_DATABASE=zabbix - MYSQL_USER=zabbix - MYSQL_PASSWORD=zabbix - MYSQL_ROOT_PASSWORD=root - ZBX_JAVAGATEWAY=192.168.15.131 - ZBX_JAVAGATEWAY_ENABLE=true - ZBX_JAVAGATEWAYPORT=10052 depends_on: - zabbix-mysql network_mode: host zabbix-agent: image: zabbix/zabbix-agent restart: always environment: - ZBX_HOSTNAME=Zabbix server - ZBX_SERVER_HOST=192.168.15.131 - ZBX_SERVER_PORT=10051 network_mode: host
|