docker安装zabbix
Posted shykevin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker安装zabbix相关的知识,希望对你有一定的参考价值。
一、概述
Zabbix 是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的警报。这样可以快速相应服务器问题。Zabbix 基于存储的数据提供出色的报告和数据可视化。这些功能使得 Zabbix 成为容量规划的理想选择。
官方安装文档:
https://www.zabbix.com/documentation/5.4/zh/manual/installation/containers
二、安装
环境说明
master-server
ip地址:192.168.1.3
下载镜像
docker pull mysql:5.7
docker pull zabbix/zabbix-java-gateway:5.4-alpine-latest
docker pull zabbix/zabbix-server-mysql:5.4-alpine-latest
docker pull zabbix/zabbix-web-nginx-mysql:5.4-alpine-latest
创建目录
mkdir -p /data/zabbix/mysql/data
mkdir -p /data/zabbix/master
安装mysql
docker run -d \\
--name mysql-server \\
--restart=always \\
--privileged=true \\
-e MYSQL_DATABASE="zabbix" \\
-e MYSQL_USER="zabbix" \\
-e MYSQL_PASSWORD="zabbix_pwd" \\
-e MYSQL_ROOT_PASSWORD="root_pwd" \\
-v /data/zabbix/mysql/data:/var/lib/mysql \\
-d mysql:5.7 \\
--character-set-server=utf8 \\
--collation-server=utf8_unicode_ci
查看日志
docker logs -f mysql-server
出现以下日志,说明启动成功
Version: '5.7.41' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)
安装zabbix-java-gateway
docker run -d \\
--restart=always \\
--name zabbix-java-gateway \\
zabbix/zabbix-java-gateway:5.4-alpine-latest
安装zabbix-server
先临时启动,这里需要拷贝一个sql文件。
docker run -d --name zabbix-server-mysql zabbix/zabbix-server-mysql:5.4-alpine-latest
拷贝sql文件到当前目录
docker cp zabbix-server-mysql:/usr/share/doc/zabbix-server-mysql/create.sql.gz .
解压文件
gunzip create.sql.gz
将sql文件拷贝到mysql容器中
docker cp create.sql mysql-server:/tmp/
进入mysql容器,导入sql文件
docker exec -it mysql-server /bin/bash
登录mysql,注意要先删除zabbix,然后指定编码创建数据库,导入sql
mysql -u root -proot_pwd
> drop database zabbix;
> create database zabbix character set utf8 collate utf8_bin;
> use zabbix;
> source /tmp/create.sql;
等待1分钟,差不多就结束了。
复制zabbix文件
docker cp zabbix-server-mysql:/usr/lib/zabbix /data/zabbix/master/
重启zabbix-server-mysql
docker rm -f zabbix-server-mysql
docker run -d \\
--name zabbix-server-mysql \\
-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 \\
-v /data/zabbix/master/zabbix:/usr/lib/zabbix \\
zabbix/zabbix-server-mysql:5.4-alpine-latest
查看日志
docker logs -f zabbix-server-mysql
出现以下日志,说明启动成功
196:20230402:102723.147 item "Zabbix server:zabbix[process,service manager,avg,busy]" became not supported: Invalid second parameter.
启动zabbix-web-nginx-mysql
docker run -d \\
--name zabbix-web-nginx-mysql \\
-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:8080 \\
zabbix/zabbix-web-nginx-mysql:5.4-alpine-latest
查看日志
docker logs -f zabbix-web-nginx-mysql
出现以下日志,说明启动成功
2023-04-01 07:45:07,450 INFO success: php-fpm81 entered RUNNING state, process has stayed up for > than 2 seconds (startsecs)
编辑系统配置文件,开启ipv4转发
vi /etc/sysctl.conf
最后一行增加
net.ipv4.ip_forward=1
如果有的话,就不需要增加了。
刷新配置
sysctl -p
访问web页面
http://192.168.1.13:8080/
默认的用户名:Admin,密码:zabbix
登录成功如下
点击下面的User settings-->Profile,设置语言为中文
效果如下
图表中文乱码问题
zabbix默认的字体不支持中文,因此需要替换掉容器zabbix-web-nginx-mysql中的/usr/share/zabbix/assets/fonts/DejaVuSans.ttf文件
需要复制windows系统的字体文件进行替换,路径为:C:\\Windows\\Fonts,找到楷体常规,复制到桌面,就会有一个文件simkai.ttf
进入linux服务器,拷贝默认的字体文件
cd /data/zabbix
docker cp zabbix-web-nginx-mysql:/usr/share/zabbix/assets/fonts nginx-fonts
cd nginx-fonts
cp DejaVuSans.ttf DejaVuSans.ttf.bak
将simkai.ttf文件上传到此目录,然后覆盖
cp simkai.ttf DejaVuSans.ttf
重启zabbix-web-nginx-mysql,挂载字体目录
docker rm -f zabbix-web-nginx-mysql
docker run -d \\
--name zabbix-web-nginx-mysql \\
-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:8080 \\
-v /data/zabbix/nginx-fonts:/usr/share/zabbix/assets/fonts \\
zabbix/zabbix-web-nginx-mysql:5.4-alpine-latest
重新刷新页面,就可以显示中文了
Docker安装Zabbix
https://www.cnblogs.com/xdzy/p/13805762.html
Docker安装Zabbix
目录
正文
Docker安装Zabbix
CentOS7 默认使用的是firewall作为防火墙
查看防火墙状态
firewall-cmd --state
停止firewall
systemctl stop firewalld.service
开启firewall
firewall-cmd --state
禁止firewall开机启动
systemctl disable firewalld.service
0)安装mysql
0.1 下载镜像
docker pull mysql:5.7
0.2 创建容器
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
1)安装zabbix-java-gateway
1.1 下载镜像
docker pull zabbix/zabbix-java-gateway
1.2 创建容器
docker run --name zabbix-java-gateway -t \\ -d zabbix/zabbix-java-gateway:latest
2)安装zabbix-server-mysql
2.1 下载镜像
docker pull zabbix/zabbix-server-mysql
2.2 创建容器
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
3)安装zabbix-web-nginx-mysql
3.1 下载镜像
docker pull zabbix/zabbix-web-nginx-mysql
3.2 创建容器(注意: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
4)登录zabbix
登录账号:Admin
登录密码:zabbix
5)解决中文乱码问题
5.1 上传字体
找到C:\\Windows\\Fonts\\simkai.ttf(楷体),搜索楷体能找到该字体,将该字体上传到服务器
5.2 拷贝到容器
docker cp simkai.ttf zabbix-web-nginx-mysql:/usr/share/zabbix/assets/fonts/
5.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退出编辑,查看界面发现乱码已解决。
6)Liunx安装zabbix-agent
5.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
5.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软件。
5.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
7)修正Zabbix时间
查看当前时间:
date
修改服务器时间为上海时间:
rm -rf /etc/localtime #删除当前默认时区www.kwx.gd ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #复制替换默认时区为上海
在创建容器的时候带上参数即可更正Zabbix时间格式:
-e PHP_TZ="Asia/Shanghai"
8)挂载配置文件
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
删除容器,创建一个挂载目录的容器,这时应该启动成功
9)Window安装zabbix-agent
9.1 下载安装包
官网下载地址:https://www.zabbix.com/cn/download_agents
9.2 手动安装,设置如下
9.3 安装包与启动
配置文件和日志文件所在目录如下:
启动程序如下:
以上是关于docker安装zabbix的主要内容,如果未能解决你的问题,请参考以下文章