kubeflow Synchnorized Jenkins less split sqlalchemy uiwebview EaselJS vue注册组件 vue自定义组件 前端项目实战 cos图像和sin图像 移动端上传图片插件 时间戳java css面试题 js原生点击事件 python的数据类型 python平方函数 python加入环境变量 java中的队列 java中的数据结构 java集合遍历 java查看数据类型 java基本数据结构 java泛型方法 java中的map nginx安装教程 linux安装系统 vb编程 服务器系统下载 java电子书下载 德鲁伊武器 props 刺激战场脚本 pr缩放 坐标标注插件 cad视口旋转 popen函数 ps调整边缘抠头发丝 udp测试工具
当前位置: 首页 > 学习教程  > 编程语言

【记录】Zabbix安装及简单使用(二)

2020/11/4 13:48:39 文章标签:

需要说明的是,此记录仅是本人安装过程的情况,每个人的安装环境不一,过程中可能还需要安装其它的依赖情况,这里说不尽也道不完,还需各位根据情况进行排错。 Zabbix4.0 为什么要写这个标题的原因,是因为我在…

需要说明的是,此记录仅是本人安装过程的情况,每个人的安装环境不一,过程中可能还需要安装其它的依赖情况,这里说不尽也道不完,还需各位根据情况进行排错。

Zabbix4.0

为什么要写这个标题的原因,是因为我在部署到线上环境的时候,由于种种原因选择了docker部署Zabbix4.0版本的。因为自己没有好好阅读官方的产品手册,所以遇到了不少坑,所以也在这记录下来,希望能帮助到一些后来的朋友。
docker镜像用的是centos-4.0.26版本
拉取

docker pull zabbix/zabbix-server-mysql:centos-4.0.26
docker images 
REPOSITORY                              TAG                 IMAGE ID            CREATED             SIZE
zabbix/zabbix-server-mysql              centos-5.0-latest   45a52b35737c        8 days ago          345MB

获取数据库文件和web源码
在官网
在这里插入图片描述
下拉
在这里插入图片描述
下载Zabbix源码并解压缩

wget https://cdn.zabbix.com/zabbix/sources/stable/4.0/zabbix-4.0.26.tar.gz
tar -xzvf zabbix-4.0.26.tar.gz

解压后得到zabbix-4.0.26文件夹
sql文件在zabbix-4.0.26/database/mysql下,web文件在zabbix-4.0.26/frontends/php下
创建数据库并导入数据

mysql -uroot -p
mysql>create database zabbix character set utf8 collate utf-bin;
mysql>grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'zabbix';
mysql>flush privileges;
mysql>use zabbix;
mysql>source <yourpath>/zabbix-4.0.26/database/mysql/schema.sql;
mysql>source <yourpath>/zabbix-4.0.26/database/mysql/images.sql;
mysql>source <yourpath>/zabbix-4.0.26/database/mysql/data.sql;
mysql>quit;

必须按照schema.sql>images.sql>data.sql导入数据,否则报错。
把web源码拷贝到站点文件夹,参考前一篇文章【记录】Zabbix安装及简单使用(一)
需注意的是配置文件在站点根目录/conf/zabbix.conf.php。

server端部署

  1. 启动镜像
docker run -d -t \
--name zabbix-server
--hostname zabbix-server
-e DB_SERVER_HOST="your database host" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_DATABASE="zabbix" \
-v /home/zabbix/zabbix_server.conf:/etc/zabbix/zabbix_server.conf \
-v /home/zabbix/logs:/tmp/logs \
-v /home/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-v /home/zabbix/externalscripts:/usr/lib/zabbix/externalscripts \
-p 10051:10051 \
zabbix/zabbix-server-mysql:centos-4.0.26

-d:后台运行容器
-t:给容器分配一个终端
-e:设置容器的环境变量
-v:挂载文件夹
-p:端口映射 宿主机端口:容器端口
–name:设置容器名称
–hostname:设置容器的主机名
这几个数据库的环境变量是必须设置的,否则容器起不来。zabbix-server docker会根据这几个环境变量写入配置文件的数据库配置,至于还能传入其它的环境变量,大家可以看看官方手册:Zabbix Documentation 4.0 从容器安装
在这里插入图片描述

挂载点也是有限制的
在这里插入图片描述
查看容器运行情况

docker ps -a
CONTAINER ID        IMAGE                                      COMMAND                  CREATED             STATUS                      PORTS                                                                                                                                                  NAMES
f53c6cd87c67        zabbix/zabbix-server-mysql:centos-4.0.26   "/sbin/tini -- /usr/…"   46 hours ago        Up 38 hours                 0.0.0.0:10051->10051/tcp                                                                                                                               zabbix-server

查看容器IP

docker inspect zabbix-server

把web的配置文件相应修改即可访问。

  1. 存在的一些坑
    坑一:
    原本的本地上用docker部署5.0版本的时候一切都十分顺利,只要把容器正常启动就可以正常工作,但是部署了4.0后发现ICMP的监控模版不能使用,在web上看报了错
    在这里插入图片描述
    server容器上日志
    在这里插入图片描述
    补充一句,因为zabbix容器的日志类型是不能修改的,即配置文件里的LogType,默认就是console,要查看日志使用命令
dokcer logs zabbix-server -f

这是因为fping的执行权限问题,按照网上的解决步骤是:

docker exec -it zabbix-server bash
chown -R root:root /usr/sbin/fping
chmod 4710 /usr/sbin/fping
chown -R root:root /usr/sbin/fping6
chmod 4710 /usr/sbin/fping6

修改/etc/passwd,允许zabbix使用shell登录,测试fping

vim /etc/passwd
zabbix:x:997:994:Zabbix Monitoring System:/var/lib/zabbix:/bin/bash
su zabbix
fping baidu.com 
baidu.com is alive

好的,可以执行说明权限没问题,然而报错并没有消失。
这个问题困扰了我好几天,问了好多人也没发现什么问题。
经过不断的docker stop rm run 之后,还是没有找出问题所在。
就在我快要顶不住了要吐了的时候,一道闪电划过我的脑袋瓜子,我的手不受控制地敲下两行命令

mv /usr/sbin/fping6 /usr/sbin/fping6.bk
ln -s /usr/sbin/fping /usr/sbin/fping6

wrlg,两分钟过后,告警消失了!我又添加了几个测试主机使用ICMP监控,发现已经可以正常使用。
至今我仍然不明白,难道4.0版本默认使用ipv6?因为我是务实的,所以并没有深究下去,如果有大神可以告知一二那就甚好。
坑二:
容器里没有中文环境,是得邮件推送是中文内容乱码而且以bin结尾的附件发送。
需要执行以下命令生成中文环境:

localedef -f UTF-8 -i zh_CN zh_CN.UTF-8
locale -a
C
POSIX
en_US.utf8
zh_CN.utf8

看到有zh_CN.utf8就可以推送中文了


本文链接: http://www.dtmao.cc/news_show_350005.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?