当前位置: 首页 > ops >正文

day058-docker常见面试题与初识zabbix

文章目录

  • 0. 老男孩核心思想-人性思维方式
  • 1. docker常见面试题
    • 1.1 docker单机网络类型
      • 1.1.1 桥接模式
      • 1.1.2 Host主机模式
      • 1.1.3 container容器模式
    • 1.2 docker跨主机网络类型
    • 1.3 docker的底层原理
  • 2. zabbix
    • 2.1 监控服务
    • 2.2 zabbix架构
    • 2.3 部署zabbix服务端
      • 2.3.1 导入镜像
      • 2.3.2 配置docker-compose文件
      • 2.3.3 浏览器访问web页面
    • 2.4 部署zabbix客户端
      • 2.4.1 官方下载客户端
      • 2.4.2 阿里云下载客户端
      • 2.4.3 修改配置文件
    • 2.5 前端页面配置服务端主机
    • 2.6 监控主机流程
      • 2.6.1 客户端配置
      • 2.6.2 前端添加客户端主机
  • 3. 思维导图

0. 老男孩核心思想-人性思维方式

在这里插入图片描述

1. docker常见面试题

1.1 docker单机网络类型

docker单机网络类型说明
bridge桥接默认网络类型;
类似于虚拟机的NAT模式
自定网络自定义网络网段,一般与桥接搭配
host模式与宿主机共用网卡,优势:性能好;
缺点:ip都一样,端口不能冲突
container模式多个容器同用一个ip
none无网络

1.1.1 桥接模式

在这里插入图片描述

1.1.2 Host主机模式

在这里插入图片描述

1.1.3 container容器模式

Container模式是Docker的一种特殊网络模式,它允许一个容器共享另一个容器的网络命名空间,而不是使用独立的网络栈。这种模式适用于需要紧密网络耦合的场景,例如日志收集、Sidecar代理等。

  • 主容器(如 nginx)拥有自己的网络命名空间(IP、端口、路由等)。
  • 副容器(如 log-collector)共享主容器的网络栈,没有独立的IP,直接使用主容器的网络接口。

在这里插入图片描述

1.2 docker跨主机网络类型

在这里插入图片描述

跨主机的网络类型特点
macvlan(1)docker原⽣⽀持,⽆需安装额外插件,配置起来相对简单。
(2)适合⼩规模docker环境,例如只有1-3台,如果服务器过多,
⼿动分配IP地址可能会⽆形之间增加⼯作量;
缺点: 需要⼿动分配IP地址,容器⽆⽹络。
overlay⼀般给docker swarm集群使⽤. 早期20.10overlay可以直接使⽤.
23,24版本只能搭配swarm使⽤.
fannelk8s编排容器的时候使⽤的⽹络结构
calicok8s编排容器的时候使⽤的⽹络结构

1.3 docker的底层原理

  • 容器是隔离环境中运行的一个进程;如果进程结束,容器就会停止
  • 容器的隔离环境,拥有自己的IP地址,系统文件,主机名,进程管理,相当于一个mini系统
  • 容器技术是基于Linux内核技术实现的
    • namespace:命名空间,资源隔离
    • cgroup:资源控制/限制
    • overlayfs:文件系统
    • chroot:切换根目录
  • namespace分类:
namespace分类说明
net网络资源隔离
user用户id,信息隔离
mnt磁盘资源隔离
ipc进程通讯资源格式
pid进程id隔离
uts系统资源,比如主机名隔离

2. zabbix

  • 服务端端口:10051
  • 客户端端口:10050

2.1 监控服务

监控服务说明
zabbix监控系统底层环境;有模板,上手简单(前端是php页面)
Prometheus通过各种客户端(exporter监控),性能高(golang),适用于docker、k8s容器监控
grafana优雅显示,监控大屏(获取zabbix或Prometheus数据)
open falcon小米
n9e(夜莺 Nighngale)滴滴
云监控(CMS)云产品
skywalking监控链路监控(apm)

2.2 zabbix架构

在这里插入图片描述

2.3 部署zabbix服务端

  • 镜像与docker-compose文件:docker-compose.yml等4个文件 链接: https://pan.baidu.com/s/1-ZvhlB1JwvLpXQkhWQqnWg?pwd=vf2k 提取码: vf2k
  • 基础环境:docker、docker-compose

2.3.1 导入镜像

[root@m03 ~]# ll
-rw-r--r-- 1 root root      1607  718 08:11 docker-compose.yml # docker-compose文件:自动化启动zabbix服务端容器
-rw-r--r-- 1 root root 615832064  718 12:16 mysql-8.0.tar # 数据库容器
-rw-r--r-- 1 root root 334369792  718 12:16 zbx-server-mysql-7.0.9.tar # zabbix服务端容器
-rw-r--r-- 1 root root 464802304  718 12:16 zbx-web-ngx-mysql-7.0.9.tar # zabbix前端容器
# 导入镜像
[root@m03 ~]# for i in `ls *.tar` ;do docker load -i $i ;done
……
[root@m03 ~]# docker images
REPOSITORY                      TAG            IMAGE ID       CREATED         SIZE
zabbix/zabbix-web-nginx-mysql   7.0.9-ubuntu   b5019f1efaa9   5 months ago    455MB
zabbix/zabbix-server-mysql      7.0.9-ubuntu   77801f625b74   5 months ago    327MB
mysql                           8.0-debian     44a5ac32be1d   12 months ago   611MB

2.3.2 配置docker-compose文件

  • zabbix-server、zabbix前端页面以及Mysql都需要数据库变量,可以将数据库变量写入文件,统一调用
# docker-compose变量
[root@m03 /app/tools/zbx]# cat .env 
ROOT_PASS="Root123"
ZBX_DB="zabbix"
ZBX_USER="zabbix"
ZBX_PASS="pwd"
# docker-compose文件
[root@m03 /app/tools/zbx]# cat docker-compose.yml 
#version: "3.8"
services:  db:  image: mysql:8.0-debiancontainer_name: zbx_dbnetworks:   - oldboy_zbx_net  restart: always   volumes:  - ./zbx_db/:/var/lib/mysql/environment:  MYSQL_ROOT_PASSWORD: "${ROOT_PASS}"MYSQL_DATABASE: "${ZBX_DB}"MYSQL_USER:     "${ZBX_USER}"MYSQL_PASSWORD: "${ZBX_PASS}"command:  - --character-set-server=utf8  - --collation-server=utf8_bin  - --default-authentication-plugin=mysql_native_password  zbx_server:image: zabbix/zabbix-server-mysql:7.0.9-ubuntucontainer_name: zabbix-server-mysql-7.0networks:   - oldboy_zbx_net  restart: always   ports:  - 10051:10051depends_on:- dbenvironment:  DB_SERVER_HOST: "db"MYSQL_ROOT_PASSWORD: "${ROOT_PASS}"MYSQL_DATABASE: "${ZBX_DB}"MYSQL_USER:     "${ZBX_USER}"MYSQL_PASSWORD: "${ZBX_PASS}"zbx_web:image: zabbix/zabbix-web-nginx-mysql:7.0.9-ubuntucontainer_name: zabbix-web-nginx-mysqlnetworks:   - oldboy_zbx_net  restart: always   ports:  - 80:8080depends_on:- db- zbx_serverenvironment:  ZBX_SERVER_HOST: "zbx_server"DB_SERVER_HOST: "db"MYSQL_ROOT_PASSWORD: "${ROOT_PASS}"MYSQL_DATABASE: "${ZBX_DB}"MYSQL_USER:     "${ZBX_USER}"MYSQL_PASSWORD: "${ZBX_PASS}"networks:  oldboy_zbx_net:  driver: bridge  ipam:  config:  - subnet: 172.100.0.0/16  ip_range: 172.100.1.0/24  gateway: 172.100.1.1# 启动容器
[root@m03 /app/tools/zbx]# docker-compose up -d
[+] Running 3/3✔ Container zbx_db                   Started                                                  1.7s ✔ Container zabbix-server-mysql-7.0  Started                                                  1.6s ✔ Container zabbix-web-nginx-mysql   Started                                                  1.8s 
[root@m03 /app/tools/zbx]# docker ps
CONTAINER ID   IMAGE                                        COMMAND                   CREATED          STATUS                            PORTS                                             NAMES
a7db1b841689   zabbix/zabbix-web-nginx-mysql:7.0.9-ubuntu   "docker-entrypoint.sh"    10 seconds ago   Up 8 seconds (health: starting)   8443/tcp, 0.0.0.0:80->8080/tcp, :::80->8080/tcp   zabbix-web-nginx-mysql
925d50fe425e   zabbix/zabbix-server-mysql:7.0.9-ubuntu      "/usr/bin/docker-ent…"   11 seconds ago   Up 9 seconds                      0.0.0.0:10051->10051/tcp, :::10051->10051/tcp     zabbix-server-mysql-7.0
9efc68ea5d19   mysql:8.0-debian                             "docker-entrypoint.s…"   11 seconds ago   Up 10 seconds                     3306/tcp, 33060/tcp                               zbx_db

2.3.3 浏览器访问web页面

  • 主机做好hosts

在这里插入图片描述

在这里插入图片描述

  • 修改语言和时区

在这里插入图片描述

2.4 部署zabbix客户端

  • zabbix服务端需要自我监控,所以需要安装zabbix-agent2

2.4.1 官方下载客户端

  • [下载Zabbix 7.0 LTS for Red Hat Enterprise Linux 7](https://www.zabbix.com/cn/download?zabbix=7.0&os_distribution=red_hat_enterprise_linux&os_version=7&components=agent_2&db=&ws=)

在这里插入图片描述

在这里插入图片描述

2.4.2 阿里云下载客户端

  • [zabbix-zabbix-7.0-rhel-7-x86_64安装包下载_开源镜像站-阿里云](https://mirrors.aliyun.com/zabbix/zabbix/7.0/rhel/7/x86_64/?spm=a2c6h.25603864.0.0.45f246a3iL3tFU)
[root@m03 ~]# yum install -y https://mirrors.aliyun.com/zabbix/zabbix/7.0/rhel/7/x86_64/zabbix-agent2-7.0.0-release1.el7.x86_64.rpm
……

2.4.3 修改配置文件

  • zabbix-agent2配置文件路径:/etc/zabbix/zabbix_agent2.conf
[root@m03 ~]# grep -E '^Server=' /etc/zabbix/zabbix_agent2.conf
Server=172.16.1.63,172.100.1.0/16  # zabbix服务端地址,docker容器网段;其他客户端只写服务端IP即可
[root@m03 ~]# systemctl enable --now zabbix-agent2.service 
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-agent2.service → /usr/lib/systemd/system/zabbix-agent2.service.

2.5 前端页面配置服务端主机

在这里插入图片描述

在这里插入图片描述

2.6 监控主机流程

2.6.1 客户端配置

[root@web01.oldboy.cn ~]# yum install -y https://mirrors.aliyun.com/zabbix/zabbix/7.0/rhel/7/x86_64/zabbix-agent2-7.0.0-release1.el7.x86_64.rpm
[root@web01.oldboy.cn ~]# vim /etc/zabbix/zabbix_agent2.conf 
[root@web01.oldboy.cn ~]# grep '^Server=' /etc/zabbix/zabbix_agent2.conf
Server=172.16.1.63
[root@web01.oldboy.cn ~]# systemctl enable --now zabbix-agent2.service 
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-agent2.service → /usr/lib/systemd/system/zabbix-agent2.service.

2.6.2 前端添加客户端主机

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 思维导图

https://kdocs.cn/join/gpuxq6r?f=101\r\n邀请你加入共享群「老男孩教育Linux运维99期-孙克旭」一起进行文档协作

http://www.xdnf.cn/news/15929.html

相关文章:

  • 果园里的温柔之手:Deepoc具身智能如何重塑采摘机器人的“生命感知”
  • CS课程项目设计4:支持AI人机对战的五子棋游戏
  • 计算机网络中:传输层和网络层之间是如何配合的
  • buntu 22.04 上离线安装Docker 25.0.5(二)
  • 动静态库原理与实战详解
  • Pycaita二次开发基础代码解析:边线提取、路径追踪与曲线固定
  • WebAPIs事件流与事件委托与其他事件
  • 力扣15:三数之和
  • 识别PDF中的二维码
  • Android开发中卡顿治理方案
  • 通俗易懂卷积神经网络(CNN)指南
  • 【PTA数据结构 | C语言版】双连通分量
  • 【Spark征服之路-3.6-Spark-SQL核心编程(五)】
  • 处理excel/wps表格中数值格式的警告的工具和脚本
  • SQL审计、Archery实战记录
  • 代码随想录算法训练营第二十七天
  • 算法训练营DAY37 第九章 动态规划 part05
  • channel_up和lane_up
  • Promise 详解与实现:从原理到实践
  • 【设计模式C#】工厂方法模式(相比简单工厂模式更加具有灵活性和扩展性的工厂模式)
  • Day07_网络编程20250721(网络编程考试试卷)
  • 本地部署Dify、Docker重装
  • JAVA后端开发—— JWT(JSON Web Token)实践
  • 【实践篇】基于.venv 的 ComfyUI 环境同配置迁移:pyvenv.cfg 路径修改法
  • 论文Review Lidar 3DGS Splat-LOAM: Gaussian Splatting LiDAR Odometry and Mapping
  • Ubuntu 22.04 安装 Docker (安装包形式)
  • 使用pymongo进行MongoDB的回收
  • 机器学习中的数据预处理:从入门到实践
  • FastMCP全篇教程以及解决400 Bad Request和session termination的问题
  • IOPaint+CPolar:零公网IP也能搭建专属AI图像编辑平台