zabbix容器化部署实践

声明:

本博客欢迎转发,但请保留原作者信息!

博客地址:http://t.51gocloud.com

新浪微博:@线超博

内容系本人学习、研究和总结,如有雷同,实属荣幸!

zabbix是一个开源分布式监控解决方案,数据采集监控通过agent、ipmi、snmp等方式,最终采集结果通过WEB页面呈现。本文主要介绍通过容器方式安装部署zabbix(3.0版本)。

环境:两台ubuntu14.04,一台用于zabbix server;一台用于安装zabbix agent(被监控的节点)

1、部署zabbix server

(1)安装数据容器

数据容器提供数据库数据的持久化,采用busybox,将本地目录通给这个容器,目的是为了将数据库容器的数据和Host解耦,将耦合点都集中在此容器中。

docker run -d -v /var/lib/mysql --name zabbix-db-storage busybox:latest

(2)安装数据库容器

docker run \
    -d \
    --name zabbix-db \
    -v /backups:/backups \
    -v /etc/localtime:/etc/localtime:ro \
    --volumes-from zabbix-db-storage \
    --env="MARIADB_USER=zabbix" \
    --env="MARIADB_PASS=my_password" \
    zabbix/zabbix-db-mariadb

(3)安装zabbix server

docker run \
    -d \
    --name zabbix \
    -p 80:80 \
    -p 10051:10051 \
    -v /etc/localtime:/etc/localtime:ro \
    --link zabbix-db:zabbix.db \
    --env="ZS_DBHost=zabbix.db" \
    --env="ZS_DBUser=zabbix" \
    --env="ZS_DBPassword=my_password" \
    zabbix/zabbix-3.0:latest

关于zabbix server容器的更多环境变量参数,可以参考https://hub.docker.com/r/zabbix/zabbix-3.0/

(4)检查是否正常

通过docker ps查看容器状态是否正常。zabbix-docker-ps

如果正常,等待60秒时间,然后访问zabbix WEB(HostIP:80),可以看到登录页面,默认用户名密码为admin/zabbixzabbix-login

zabbix-3.0容器中包含了一个默认的agent,但默认是disable状态,可以将其enable,然后就可以看到zabbix server监控信息。zabbix-enable-host

2、部署agent

zabbix agent本文采用apt方式安装,当然docker hub上也有一些zabbix agent容器,这些容器都是为了监控特定信息定制化的,比如monitoringartist/zabbix-agent-xxl,主要用来监控docker

(1)安装zabbix agent

$aptitude install zabbix-agent

(2)配置zabbix agent

修改配置文件/etc/zabbix/zabbix_agentd.conf,相关配置项有:

Server=10.229.51.250 (Server IP)
ServerActive=10.229.51.250 (Server IP)
Hostname=Host250 (这个名字很重要,下面在Server中增加agent会使用到这个name)

(3)zabbix server增加这个agent

configure->hosts->Creat hostszabbix-add-host

默认选择linux os 监控模板zabbix-add-host-temp

查看结果,可以看到host250已被监控zabbix-events