Docker安装Zabbix

Docker安装Zabbix

CentOS7 默认使用的是firewall作为防火墙

-- 查看防火墙状态
firewall-cmd --state
-- 停止firewall
systemctl stop firewalld.service
-- 开启firewall
firewall-cmd --state
-- 禁止firewall开机启动
systemctl disable firewalld.service

安装MySql

-- 下载镜像
docker pull mysql:5.7

-- 创建容器
docker run --name mysql-server -t \
	  -p 3307:3306 \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="admins" \
      -d mysql:5.7 \
      --character-set-server=utf8 --collation-server=utf8_bin

安装zabbix-java-gateway

-- 下载镜像
docker pull zabbix/zabbix-java-gateway

-- 创建容器
docker run --name zabbix-java-gateway -t \
  -d zabbix/zabbix-java-gateway:latest

安装zabbix-server-mysql

-- 下载镜像
docker pull zabbix/zabbix-server-mysql

-- 创建容器
docker run --name zabbix-server-mysql -t \
  -e DB_SERVER_HOST="192.168.20.223" \
  -e DB_SERVER_PORT=3307 \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e MYSQL_ROOT_PASSWORD="admins" \
  -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

安装zabbix-web-nginx-mysql

-- 下载镜像
docker pull zabbix/zabbix-web-nginx-mysql

-- 创建容器(注意:nginx在docker中默认端口是8080)
docker run --name zabbix-web-nginx-mysql -t \
  -e PHP_TZ="Asia/Shanghai" \
  -e DB_SERVER_HOST="192.168.20.223" \
  -e DB_SERVER_PORT=3307 \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e MYSQL_ROOT_PASSWORD="admins" \
  --link mysql-server:mysql \
  --link zabbix-server-mysql:zabbix-server \
  -p 80:8080 \
  -d zabbix/zabbix-web-nginx-mysql:latest

登录zabbix

地址:http://192.168.20.223/

登录账号:Admin

登录密码:zabbix

解决中文乱码问题

1)上传字体

找到C:\Windows\Fonts\simkai.ttf(楷体),搜索楷体能找到该字体,将该字体上传到服务器

2)拷贝到容器

docker cp simkai.ttf zabbix-web-nginx-mysql:/usr/share/zabbix/assets/fonts/

3)进入容器修改配置

[root@tfryb-04-30-02 ~]# docker exec -it zabbix-web-nginx-mysql /bin/bash
bash-5.0$ ls /usr/share/zabbix/assets/fonts/
DejaVuSans.ttf	simkai.ttf
bash-5.0$ vi /usr/share/zabbix/include/defines.inc.php
# 更改前
// define('ZBX_GRAPH_FONT_NAME',                'DejaVuSans'); // font file name
# 更改后
define('ZBX_GRAPH_FONT_NAME',           'simkai'); // font file name

搜索文件内容命令,进入编辑模式时按下/键,然后输入搜索内容,找到相关文字以后,按下小写n,向下查找,按下大写N,向上查找。修改完输入exit退出编辑,查看界面发现乱码已解决。

Liunx安装zabbix-agent

1)下载安装包

wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/6/x86_64/zabbix-agent-5.0.0-1.el6.x86_64.rpm

2)安装

[root@localhost ~]# ll -h zabbix-agent-5.0.0-1.el6.x86_64.rpm
-rw-r--r-- 1 root root 436K 5月  11 20:06 zabbix-agent-5.0.0-1.el6.x86_64.rpm

[root@localhost ~]# rpm -ivh zabbix-agent-5.0.0-1.el6.x86_64.rpm
警告:zabbix-agent-5.0.0-1.el6.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
错误:依赖检测失败:
        libpcre.so.0()(64bit) 被 zabbix-agent-5.0.0-1.el6.x86_64 需要

如果下载的zabbix-agent 5.0安装包使用rpm安装时提示错误:

依赖检测失败:libpcre.so.0()(64bit),则可以使用zabbix 5.0 Yum源来安装zabbix-agent 5.0软件。

3)修改配置

安装Zabbix Yum源仓库

[root@localhost ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

[root@localhost ~]# yum clean all

使用Zabbix 5.0 Yum源文件安装zabbix-agent 5.0软件,并且将gpgcheck=1修改为gpgcheck=0,防止出现获取GPG密钥失败报错。

修改Zabbix 5.0 Yum源配置文件:

[root@localhost ~]# sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/zabbix.repo

[root@localhost ~]# cat /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=0          //修改gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=0        //修改gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=0        //修改gpgcheck=0

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=0        //修改gpgcheck=0

[root@localhost ~]# yum -y install zabbix-agent     //安装zabbix-agent 5.0软件
...
已安装:
  zabbix-agent.x86_64 0:5.0.0-1.el7

完毕!
12345678910111213141516171819202122232425262728293031323334353637

修改zabbix-agent配置文件:

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
119 Server=127.0.0.1,192.168.2.128   //Zabbix-server地址,多个用","隔开
160 ServerActive=192.168.2.128     //主动检查本主机数据发送给Zabbix-server
171 #Hostname=Zabbix server
172 Hostname=192.168.2.129     //客户端IP地址

[root@localhost ~]# systemctl start zabbix-agent
[root@localhost ~]# systemctl enable zabbix-agent

[root@localhost ~]# ss -antulp | grep :10050
tcp    LISTEN     0      128       *:10050                 *:*                   users:(("zabbix_agentd",pid=3389,fd=4),("zabbix_agentd",pid=3388,fd=4),("zabbix_agentd",pid=3387,fd=4),("zabbix_agentd",pid=3386,fd=4),("zabbix_agentd",pid=3385,fd=4),("zabbix_agentd",pid=3384,fd=4))
tcp    LISTEN     0      128      :::10050                :::*                   users:(("zabbix_agentd",pid=3389,fd=5),("zabbix_agentd",pid=3388,fd=5),("zabbix_agentd",pid=3387,fd=5),("zabbix_agentd",pid=3386,fd=5),("zabbix_agentd",pid=3385,fd=5),("zabbix_agentd",pid=3384,fd=5))

注意:上面的Zabbix-server地址对应的是docker里面的ip地址,不是宿主机的地址;如果配置错误,则在设置主机时,zabbix会报错:

Received empty response from Zabbix Agent at [192.168.20.223]. Assuming that agent dropped connection because of access permissions.

查看容器所有信息:

docker inspect 容器名称或容器ID

查看IP:

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称或容器ID

修正Zabbix时间

-- 查看当前时间:
date

-- 修改服务器时间为上海时间:
rm -rf /etc/localtime #删除当前默认时区www.kwx.gd
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #复制替换默认时区为上海

-- 在创建容器的时候带上参数即可更正Zabbix时间格式:
-e PHP_TZ="Asia/Shanghai"

挂载配置文件

zabbix_server.conf配置文件在容器里面,不方便修改,先将zabbix-server-mysql容器删除,再执行下面命令:

docker run --privileged=true -v /usr/zabbix:/etc/zabbix --name zabbix-server-mysql -t \
  -e DB_SERVER_HOST="192.168.20.223" \
  -e DB_SERVER_PORT=3307 \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e MYSQL_ROOT_PASSWORD="admins" \
  -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

这时发现容器创建成功,但是无法启动,如果是CentOS7中的安全模块selinux把权限禁掉了,无法使用-v命令进行挂载,解决方案如下:

先删除创建的容器,然后选择下面方式解决之后,再创建容器

方式一:在创建命令上加:--privileged=true

方式二:添加selinux规则,将要挂载的目录添加到白名单

chcon -Rt svirt_sandbox_file_t /usr/zabbix

方式三:关闭Selinux

临时关闭:

[root@localhost ~]# getenforce
Enforcing
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive

永久关闭:

[root@localhost ~]# vi /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled

重启服务reboot

如果最终还是无法解决,则使用如下方式:

先创建一个没有挂载目录的容器,在执行文件拷贝:

docker cp zabbix-server-mysql:/etc/zabbix/zabbix_server.conf /usr/zabbix

删除容器,创建一个挂载目录的容器,这时应该启动成功

Window安装zabbix-agent

下载安装包,官网下载地址:https://www.zabbix.com/cn/download_agents

4

手动安装,设置如下

3

安装包与启动,配置文件和日志文件所在目录如下:

2

启动程序如下:

1

posted @ 2020-10-12 21:48  肖德子裕  阅读(7315)  评论(10编辑  收藏  举报