Zabbix是什么?

  • Zabbix是一个监控软件,其可以监控各种网络参数,保证企业服务架构安全运营,同时支持灵活的告警机制,可以使得运维人员快速定位故障、解决问题。zabbix支持分布式功能,支持复杂架构下的监控解决方案,也支持web页面,为主机监控提供了良好直观的展现。

  • Zabbix完全开源免费,没有任何限制和隐藏费用。

  • h8xfj8cb.png

Zabbix的监控对象

  • Zabbix支持监控各种系统平台,包括Linux和Windows等主流操作系统,也可以借助SNMP或者是SSH协议监控路由交换设备。

  • Zabbix如果部署在服务器上,可以监控其CPU、内存、网络性能等硬件参数,也可以监控具体的服务或者应用程序、服务运行情况及性能。

  • 硬件监控:Zabbix IPMI Interface ,通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控被监控对象的物理特征,比如电压、温度、风扇状态、电源状态等。

  • 系统监控:Zabbix Agent Interface ,通过专用的代理程序进行监控,与常见的master/agent模型类似,如果被监控对象支持对应的agent,推荐首选这种方式。

  • Java监控:Zabbix JMX Interface ,通过JMX进行监控,JMX(java management extensions,即java管理扩展),监控JVM虚拟机时,使用这种方法是非常不错的选择。

  • 网络设备监控:Zabbix SNMP Interface ,通过SNMP协议与被监控对象进行通信,SNMP协议的全称为simple network management protocol,被译为简单网络管理协议,通常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件都支持SNMP协议。

  • 应用服务监控:Zabbix Agent UserParameter

  • MySQL数据库监控:percona-monitoring-plulgins

  • URL监控:Zabbix Web 监控

安装教程

docker-compose方式安装

  1. 演示以在Ubuntu系统上安装为例

  2. 提前安装好DockerDocker-ComposeGit Server
    (自行搜索安装命令)

  3. 打开系统的SSH功能,使用终端软件进行连接,并切换到root状态下。

  4. 进入某个文件夹(你想将项目文件存储到哪就进哪个文件夹)

    cd /mnt
  5. 克隆项目文件到本地

    git clone https://github.com/zabbix/zabbix-docker.git
  6. 对项目文件夹授权everyone的读写权限

    #
    chmod -R 777 /mnt/zabbix-docker
  7. 进入项目文件夹

    cd zabbix-docker
  8. 编辑环境变量配置文件(可选,Zabbix默认80端口。)

    vi .env
  9. 按字母 i 键进入编辑模式,修改下面的配置文件,按Esc键退出编辑模式,输入 :wq 退出并保存。

    # Zabbix images
    ZABBIX_ALPINE_IMAGE_TAG=alpine-6.4
    ZABBIX_CENTOS_IMAGE_TAG=centos-6.4
    ZABBIX_OL_IMAGE_TAG=ol-6.4
    ZABBIX_UBUNTU_IMAGE_TAG=ubuntu-6.4
    ZABBIX_RHEL_IMAGE_TAG=rhel-6.4
    ZABBIX_IMAGE_TAG_POSTFIX=-latest
    ZABBIX_LOCAL_IMAGE_TAG_POSTFIX=-local
    
    ZABBIX_SERVER_MYSQL_IMAGE=zabbix/zabbix-server-mysql
    ZABBIX_SERVER_PGSQL_IMAGE=zabbix/zabbix-server-pgsql
    ZABBIX_PROXY_MYSQL_IMAGE=zabbix/zabbix-proxy-mysql
    ZABBIX_PROXY_SQLITE3_IMAGE=zabbix/zabbix-proxy-sqlite3
    ZABBIX_WEB_NGINX_MYSQL_IMAGE=zabbix/zabbix-web-nginx-mysql
    ZABBIX_WEB_APACHE_MYSQL_IMAGE=zabbix/zabbix-web-apache-mysql
    ZABBIX_WEB_NGINX_PGSQL_IMAGE=zabbix/zabbix-web-nginx-pgsql
    ZABBIX_WEB_APACHE_PGSQL_IMAGE=zabbix/zabbix-web-apache-pgsql
    ZABBIX_AGENT_IMAGE=zabbix/zabbix-agent
    ZABBIX_AGENT2_IMAGE=zabbix/zabbix-agent2
    ZABBIX_JAVA_GATEWAY_IMAGE=zabbix/zabbix-java-gateway
    ZABBIX_SNMPTRAPS_IMAGE=zabbix/zabbix-snmptraps
    ZABBIX_WEB_SERVICE_IMAGE=zabbix/zabbix-web-service
    
    # Database images
    MYSQL_IMAGE=mysql
    MYSQL_IMAGE_TAG=8.0-oracle
    POSTGRESQL_IMAGE=postgres
    POSTGRESQL_IMAGE_TAG=15-alpine
    
    ELASTICSEARCH_IMAGE=elasticsearch
    ELASTICSEARCH_IMAGE_TAG=latest
    
    # Expose ports per service
    ZABBIX_SERVER_PORT=10051
    ZABBIX_PROXY_MYSQL_PORT=10071
    ZABBIX_PROXY_SQLITE3_PORT=10061
    ZABBIX_WEB_NGINX_HTTP_PORT=80   #Zabbix默认访问HTTP端口,可自行修改。
    ZABBIX_WEB_NGINX_HTTPS_PORT=443   #Zabbix默认访问HTTPS端口,可自行修改。
    ZABBIX_WEB_APACHE_HTTP_PORT=8081
    ZABBIX_WEB_APACHE_HTTPS_PORT=8443
    ZABBIX_AGENT_PORT=10050
    ZABBIX_AGENT2_PORT=10060
    ZABBIX_JAVA_GATEWAY_PORT=10052
    ZABBIX_SNMPTRAPS_PORT=162
    ZABBIX_WEB_SERVICE_PORT=10053
    
    # Network IP ranges
    FRONTEND_NETWORK_DRIVER=default
    FRONTEND_SUBNET=172.16.238.0/24
    FRONTEND_ENABLE_IPV6=false
    BACKEND_NETWORK_DRIVER=default
    BACKEND_SUBNET=172.16.239.0/24
    BACKEND_ENABLE_IPV6=false
    DATABASE_NETWORK_ENABLE_IPV6=false
    DATABASE_NETWORK_DRIVER=default
    
    # Locations
    DATA_DIRECTORY=./zbx_env
    ENV_VARS_DIRECTORY=./env_vars
    
    # Options
    RESTART_POLICY=unless-stopped
    
    # Cache base images
    ALPINE_CACHE_FROM=alpine:3.19
    CENTOS_CACHE_FROM=quay.io/centos/centos:stream9
    OL_CACHE_FROM=oraclelinux:9-slim
    UBUNTU_CACHE_FROM=ubuntu:jammy
    RHEL_CACHE_FROM=registry.access.redhat.com/ubi9/ubi-minimal:9.3
    
    # Base images
    BUILD_BASE_IMAGE=zabbix-build-base
    BUILD_BASE_MYSQL_IMAGE=zabbix-build-mysql
    BUILD_BASE_PGSQL_IMAGE=zabbix-build-pgsql
    BUILD_BASE_SQLITE3_IMAGE=zabbix-build-sqlite3
    
    # Operating System tags
    ALPINE_OS_TAG=Alpine
    ALPINE_OS_TAG_SHORT=alpine
    
    CENTOS_OS_TAG=CentOS
    CENTOS_OS_TAG_SHORT=centos
    
    OL_OS_TAG=Oracle Linux
    OL_OS_TAG_SHORT=ol
    
    UBUNTU_OS_TAG=Ubuntu
    UBUNTU_OS_TAG_SHORT=ubuntu
    
    RHEL_OS_TAG=Red Hat
    RHEL_OS_TAG_SHORT=rhel
    
  10. 执行命令,启动docker-compose文件,拉取镜像并创建容器。
    注意:这里拉取的是整个项目文件,内含多个docker-compose模板,请根据自己的需求选择
    演示随意选择一种进行安装。

    #将 docker-compose_v3_centos_mysql_latest.yaml 换成你想使用的模板文件名
    
    docker-compose -f ./docker-compose_v3_centos_mysql_latest.yaml up -d
  11. 查看正在运行的项目容器

    docker-compose ps

访问Zabbix

  1. 打开浏览器,以设备的IP+设置的端口进行访问。
    以本机为例:http://192.168.2.222:89
    默认用户名:Admin
    默认密码:zabbix
    (如果访问时显示数据库报错,稍等一会再刷新即可。)

  2. 登录成功

  3. 点击左侧--Administrator--General--GUI

  4. 选择中国语言和上海时区后,点击Update。

  5. 现在你就可以立即探索Zabbix了。

项目地址

  • GitHub项目地址:https://github.com/zabbix/zabbix-docker

  • 官方文档地址:https://www.zabbix.com/documentation/current/zh/manual/installation/containers#docker-compose

  • Zabbix官网地址:https://www.zabbix.com/cn

功德+1(狗子).gif

👇👇👇