docker部署zabbix

Posted 大聪明胖胖龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker部署zabbix相关的知识,希望对你有一定的参考价值。

docker部署zabbix

1、zabbix入门:

Zabbix 是一款能够监控各种网络参数以及服务器健康性和完整性的软件。

Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警,这样可以快速反馈服务器的问题。

zabbix基础框架:

核心组件:

  • agent:

    负责采集数据并通过主动或者被动的方式采集数据发送到 Server/Proxy,除此之外,为了扩展监控项,Agent 还支持执行自定义脚本。

  • server:

    Server 主要负责接收 Agent 发送的监控信息,并进行汇总存储,触发告警等

Zabbix Server 将收集的监控数据存储到 Zabbix Database 中。Zabbix Database 支持常用的关系型数据库,如果 mysql、PostgreSQL、Oracle 等,默认是 MySQL,并提供 Zabbix Web页面(php 编写)数据查询。

现在zabbix也支持TSDB 时序数据库,用于监控docker等。

2、zabbix和Prometheus对比:

监控软件发行时间开发语言性能社区支持容器支持企业使用部署难度
Prometheus2016go支持万为单位相对不如zabbix,但人数与日剧增支持swarm、k8s等容器集群的监控,监控容器最好的方案使用容器与k8s的企业只有一个核心server组件,一条命令即可启动
zabbix2012C+php上限约为10000节点应用广泛,支持较成熟服务器相关监控具有绝对优势传统服务器监控多种系统,多种监控信息采集方式

结论:

  • 如果监控的是物理机,用 Zabbix,Zabbix 在传统监控系统中,尤其是在服务器相监控方面,占据绝对优势。甚至环境变动不会很频繁的情况下,Zabbix 也会比 Prometheus 好使

  • 如果是云环境的话,除非是 Zabbix 玩的非常溜,可以做各种定制,否则还是Prometheus 吧,毕竟人家就是干这个的。

  • Prometheus 开始成为主导及容器监控方面的标配,并且在未来可见的时间内被广泛应用。如果是刚刚要上监控系统的话,不用犹豫了,Prometheus 准没错。

3、linux安装docker:

(1)手动安装docker:

docker入门及部署

(2)脚本一键部署docker:

[脚本一键安装docker]((3条消息) docker自动部署脚本_老六萧楚河的博客-CSDN博客_docker自动部署)

#!/bin/bash 
#file:docker_install.sh 
echo "--检查内核版本......--"
yum -y install bc &> /dev/null
kenel=`uname -r`
ken=`echo $kenel:0:4`
if [ $(echo "$ken >= 3.10" | bc) = 1 ]
then
  echo "--检查Docker......!--"
  docker -v &> /dev/null
  a=`echo $?`
  while [ $a -ne 0 ]; do
    echo "--安装docker环境...--"
    echo "--安装基础依赖...--"
    yum install yum-utils device-mapper-persistent-data lvm2 -y &> /dev/null
    echo "--安装docker-ce.repo--"
    cd /etc/yum.repo.d
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo &> /dev/null
    echo "--安装docker环境...--"
    yum install docker-ce -y
    docker -v &> /dev/null
    a=`echo $?`
  done
  echo "--安装完成!启动Docker--"
  systemctl start docker
  systemctl enable docker &> /dev/null
  echo "----网络优化----"
  sed -i '$a net.ipv4.ip_forward=1' /etc/sysctl.conf
  sysctl -p
  systemctl restart network
  systemctl restart docker
  docker version
else
  echo "--内核版本太低,请您升级内核版本!--"
fi
#!/bin/bash
#file:docker_net.sh 
echo "----镜像加速-----"
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'

"registry-mirrors": ["https://yagayyvn.mirror.aliyuncs.com"]

EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
echo "镜像加速完成!!!"

(3)脚本安装docker compose:

#!/bin/bash
#file:docker-compose_install.sh
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version

4、docker环境下部署zabbix:

zabbix在docker官方的镜像源中,有维护zabbix公司官方的镜像,我们可以通过hub.docker.com进行下载,搭建docker环境下的zabbix,可以使我们的安装和部署更加快捷。

1、zabbix的docker镜像源:

  • 这里 zabbix docker镜像源 我们可以打开看到zabbix官方在docker仓库里面维护的镜像源信息。
  • 官方的dockerhub仓库中有各个zabbix的组件的镜像源,可以根据需求自行pull。

2、zabbix官方文档:

初始化数据文件可以从 [zabbix的官方](Zabbix Manual) 进行下载,一些操作啥的,官方文档有详细的说明,并且支持中文。

3、docker compose一键部署zabbix:

  • 先配置环境:
#创建相关的目录及文件
cd /home
mkdir -p docker/mysql
vi docker/zabbix.yml

#下面是zabbix的yml文件
version: '3.7'
services:
  mysql-server:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      MYSQL_DATABASE: zabbix
    volumes:
      - "/etc/localtime:/etc/localtime"
      - "/home/docker/mysql:/var/lib/mysql"
    ports:
      - "3306:3306"
    networks:
      - zbx_net

  zabbix-server:
    image: zabbix/zabbix-server-mysql:centos-latest
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
    ports:
      - "10051:10051"
    depends_on:
      - "mysql-server"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro 
      - "zabbix:/var/lib/zabbix"
    networks:
      - zbx_net


  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:latest
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      PHP_TZ: Asia/Shanghai
      ZBX_SERVER_HOST: zabbix-server
    ports:
      - 8088:8080
    depends_on:
      - mysql-server
      - zabbix-server    
    networks:
      - zbx_net

  zabbix-agent:
    image: zabbix/zabbix-agent:latest
    environment:
      ZBX_SERVER_HOST: zabbix-server
    ports:
     - "10050:10050"
    depends_on:
     - "zabbix-server"
    networks:
     - zbx_net

networks:
 zbx_net:
volumes:
  zabbix:

4、使用zabbix:

  • 访问地址:ip:8088

这个ip是你主机的ip,端口是yml 文件中映射在你主机上的端口;可以自行修改。

这是Zabbix的“欢迎”界面。输入用户名 Admin 以及密码 zabbix 以作为 Zabbix超级用户登陆。

下面想要快速入门的话,可以看官方文档,超级详细。

zabbix 里面还可将web 界面设置成中文:

下面就开始使用zabbix吧!!!

zabbix 还支持脚本编写来进行告警哦。比如利用shell 写一个调用短信接口的脚本,然后利用这个脚本进行短信告警,会实时的发送短信。

以上是关于docker部署zabbix的主要内容,如果未能解决你的问题,请参考以下文章

docker部署比jar强多少

阿里云服务器-docker部署 web 应用(端口号)

如何部署 Docker Registry 服务

如何使用 Docker 部署容器

docker部署react项目

使用docker部署node项目(一)