Docker 安装 zabbix

2021-02-20 12:23发布

一 安装DOCKER
 1 配置源

cd /etc/yum.repos.d
wget https://download.docker.com/linux/centos/docker-ce.repo

2 安装 docker-ce

yum install docker-ce -y
systemctl start docker
systemctl enable docker

二 安装 Zzbbix
1 启动一个空的MySQL服务器实例

docker run --name mysql-server -t --restart=always \
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix_pwd" \
    -e MYSQL_ROOT_PASSWORD="root_pwd" \
    -d mysql:5.7 \
    --character-set-server=utf8 --collation-server=utf8_bin

2 启动Zabbix Java gateway实例

docker run --name zabbix-java-gateway -t --restart=always \
       -d zabbix/zabbix-java-gateway:latest

3 启动Zabbix server实例,并关联这个实例到已创建的MySQL服务器实例

docker run --name zabbix-server-mysql -t --restart=always \
     -e DB_SERVER_HOST="mysql-server" \
     -e MYSQL_DATABASE="zabbix" \
     -e MYSQL_USER="zabbix" \
     -e MYSQL_PASSWORD="zabbix_pwd" \
     -e MYSQL_ROOT_PASSWORD="root_pwd" \
     -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
     --link mysql-server:mysql \
     --link zabbix-java-gateway:zabbix-java-gateway \
     -p 10051:10051 \
     -d zabbix/zabbix-server-mysql:latest

4 启动Zabbix web 接口,并将它与MySQL服务器实例和Zabbix server实例关联

docker run --name zabbix-web-nginx-mysql -t --restart=always \
    -e DB_SERVER_HOST="mysql-server" \
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix_pwd" \
    -e MYSQL_ROOT_PASSWORD="root_pwd" \
    --link mysql-server:mysql \
    --link zabbix-server-mysql:zabbix-server \
    -p 8080:80 \
    -d zabbix/zabbix-web-nginx-mysql:latest

三 访问zabbix
1 url http://服务器IP:8080
2 登录账号和密码: Admin zabbix

四 Zabbix 基本设置
1 设置 为中文并解决中文乱码问题
从我们的Windows主机上面把简体语言包拷贝出来   路径:C:\Windows\Fonts\  语言包: “楷体 常规”
 拷贝到zabbix网页的容器里 

docker cp STKAITI.TTF 1b0245fc4128:/usr/share/zabbix/fonts/

有的版本在这个目录里面
/usr/share/zabbix/assets/fonts

进入到容器进行替换    

docker exec -it 1b0245 /bin/bash
cd /usr/share/zabbix/fonts
mv graphfont.ttf graphfont.ttf.bak
ln -sv STKAITI.TTF graphfont.ttf

或者直接改文件
cd /usr/share/zabbix/assets/fonts
mv DejaVuSans.ttf DejaVuSans.ttf.bak

/usr/share/zabbix/include
vi defines.inc.php
define('ZBX_GRAPH_FONT_NAME',           'DejaVuSans'); // font file name  
改为
define('ZBX_GRAPH_FONT_NAME',           'stkaiti'); // font file name   

2 设置主机名称用中文

docker exec -it 1b0245 /bin/bash

修改文件:/usr/share/zabbix/include/defines.inc.php

vim /usr/share/zabbix/include/defines.inc.php
define('ZBX_PREG_INTERNAL_NAMES', '([0-9a-zA-Z_\. \-]+)'); // !!! Don't forget sync code with C !!!
修改为
define('ZBX_PREG_INTERNAL_NAMES', '([0-9a-zA-Z_\. \-\x{80}-\x{ff}]+)');/* !!! Don't forget sync code with C !!! */

3 退出容器重启容器

五 安装zabbix_agent(监控其他主机)
1 docker方式安装

docker run --name zabbix-agent -t --restart=always \
        -e ZBX_HOSTNAME="主机名" \
        -e ZBX_SERVER_HOST="zabbix服务器IP" \
        -e ZBX_METADATA="zabbix里面显示的主机名" \
        -p 10050:10050 \
        --privileged \
        -d zabbix/zabbix-agent:latest

 2 非yum 安装
 配置源      

rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

安装agent

yum install zabbix-sender zabbix-agent zabbix-get -y
        

 修改配置文件  

vi /etc/zabbix/zabbix_agentd.conf

  设置 

Server=服务器IP
ServerActive=服务器IP
Hostname=对应主机名

3 启动Zabbix_agent

systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service

六 监控 zabbix主机

docker run --name zabbix-agent -t --restart=always \
       -e ZBX_HOSTNAME="Zabbix_agent" \
       -e ZBX_SERVER_HOST="zabbix-server-mysql" \
       --link zabbix-server-mysql:zabbix-server \
       --link zabbix-java-gateway:zabbix-java-gateway \
       -p 10050:10050 \
       -d zabbix/zabbix-agent:latest

查看zabbixserver容器IP

docker exec -it $(docker ps -a | grep "zabbix-agent" | awk '{print $1}') "ifconfig"

修改主机配置

标签: