zabbix详解:(一)使用docker搭建安装zabbix3.2监控平台

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

docker是什么,还有怎么用,请看我另一篇博客,希望你们看懂了,然后还能用得上.

至于zabbix,应该是挺出名的服务器监控软件了,简单灵活而又智能化,还能调用API,比起我以前用的nagios感觉还简单一些,下面来介绍在docker环境安装zabbix3.2.

首先说说3.2这个版本是最新版,这个版本和之前2.X的差异,主要在于UI优化,还有加强了一些自动发现的功能,性能优化等,很多人担心太新稳定性不行,但是我这边稳定性暂时没发现问题.

安装前要准备一套LNMP环境,因为zabbix本身也是web系统,怎么安装LNMP,我就不在这里详细说了,也不应再篇幅之内,各位自行安装.


启动docker容器:   

    我标题写的是使用docker搭建,所以先用docker启动一个容器来实现,不过比较遗憾,我并不打算详细说docker的事情,各位就请看我另一篇文章了,我这边直接用自己已经定义好的模板来做了,命令如下:

1
docker run -ti --name zabbix-test1 --restart=on-failure:3 -c 256 -m 1g --memory-swap=-1 -p 25001:22 -p 10050:10050 -p 10051:10051 - v  /data/zabbix : /data  - v  /mnt/soft : /soft  centos /test :zabbix-test1  /bin/init .sh

    具体意思还是得说说的,不然真的云里雾里,这里创建了一个叫zabbix-test1的容器,分配了256份cpu,1G内存,把22端口映射到25001,把10050和10051映射到母机相同的端口,并挂载相关要使用的文件夹.

    里面已经有安装好的LNMP环境,端口映射也直接能用,我不用装服务器了,也不用拉一大堆依赖包,相当方便,所以LNMP环境也不准备细说了,没错,docker就是这点爽.


安装:

    安装前嘛,当然是先下载软件了,可以去这个网站:

    http://www.zabbix.com/download

其他不用研究了,我们只看Zabbix Sources源码包系列和Zabbix pre-compiled agents监控节点程序

监控节点稍后再说,现在来看用源码安装zabbix server和agent,zabbix的源码包已经有了一整套的环境,按着流程来做就完全没问题了

创建、导入zabbix数据库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#进入软件包下载目录,没有定性,只是我喜欢放到这里
cd  /opt/ 
#解压
tar  xf zabbix-3.2.1. tar .gz 
#里面有几种数据库,但是我们用mysql,所以进入mysql数据库创建脚本目录,
cd  /opt/zabbix-3 .2.1 /database/mysql
#列出文件,可以看到有schema.sql、images.sql、data.sql这三个文件 
ls  -l
total 3064
-rw-r--r-- 1 www www 1032494 Sep 30 17:47 data.sql
-rw-r--r-- 1 www www 1978341 Sep 30 17:43 images.sql
-rw-r--r-- 1 www www  122134 Sep 30 17:47 schema.sql
#进入准备好的mysql数据库,输入密码,进入MySQL控制台
mysql -uroot -pXXXXXX 
#创建数据库zabbix,并且数据库编码使用utf8
create database zabbix character  set  utf8;
#刷新系统授权表 
#新建账户zabbix,密码zabbix,一般情况下,直接用下面一种方法就可以
insert into mysql.user(Host,User,Password) values( 'localhost' , 'zabbix' ,password( 'zabbix' )); 
flush privileges; 
#允许账户zabbix能从本机连接到数据库zabbix
grant all on zabbix.* to  'zabbix' @ 'localhost'  identified by  'zabbix'
flush privileges; 
#进入数据库,准备导库
use zabbix
#注意:请按照以上顺序进行导入,否则会出错。
#导入脚本文件到zabbix数据库 
source  /opt/zabbix-3 .2.1 /database/mysql/schema .sql 
#导入脚本文件到zabbix数据库
source  /opt/zabbix-3 .2.1 /database/mysql/images .sql 
#导入脚本文件到zabbix数据库
source  /opt/zabbix-3 .2.1 /database/mysql/data .sql 
#退出
exit 
#也可以或者这样导入
mysql -uzabbix -p123456 -hlocalhost zabbix <  /opt/zabbix-3 .2.1 /database/mysql/schema .sql
mysql -uzabbix -p123456 -hlocalhost zabbix <  /opt/zabbix-3 .2.1 /database/mysql/images .sql
mysql -uzabbix -p123456 -hlocalhost zabbix <  /opt/zabbix-3 .2.1 /database/mysql/data .sql

   安装zabbix:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
1、添加用户:
#创建用户组zabbix
groupadd zabbix 
#创建用户zabbix,并且把用户zabbix加入到用户组zabbix中
useradd  zabbix -g zabbix -s  /bin/false 
2、安装依赖包 
#CentOS使用yum命令安装,如果在安装Web环境LAMP或者LNMP时已经安装过,此步骤可忽略
yum  install  net-snmp-devel curl curl-devel mysql-devel
apt-get  install  -y libsnmp-dev libmysqld-dev curl
3、安装zabbix
#进入安装目录
cd  /opt/zabbix-3 .2.1 
#配置,
. /configure  --prefix= /usr/local/zabbix  -- enable -server -- enable -agent --with-net-snmp --with-libcurl -- enable -proxy --with-mysql= /usr/bin/mysql_config 
#如果报错,那就要:find / -name mysql_config 查找位置,如果没有mysql_config,需要安装yum install mysql-devel 或者查看mysqlclinet.so库文件
#完成后编译
make 
#最后安装
make  install 
#添加命令软连接
ln  -s  /usr/local/zabbix/sbin/ /usr/local/sbin/ 
#添加命令软连接
ln  -s  /usr/local/zabbix/bin/ /usr/local/bin/ 
 
4、添加zabbix服务对应的端口
#编辑,在最后添加以下代码,一般系统会自带,不过多添加也不影响
vi  /etc/services 
# Zabbix
zabbix-agent 10050 /tcp  # Zabbix Agent
zabbix-agent 10050 /udp  # Zabbix Agent
zabbix-trapper 10051 /tcp  # Zabbix Trapper
zabbix-trapper 10051 /udp  # Zabbix Trapper
#保存退出
:wq! 
5、修改zabbix配置文件
cd  /usr/local/zabbix/etc
#修改zabbix server端的配置
vi  /usr/local/zabbix/etc/zabbix_server .conf
#数据库名称
DBName=zabbix 
#数据库用户名
DBUser=zabbix 
#数据库密码
DBPassword=zabbix 
#数据库ip地址,如果是远程地址,要记得改
ListenIP=localhost 
#数据库端口,同上配合
DBPort=3306
#zabbix运行脚本存放目录,如果是自定义脚本,就自己考虑要怎么改
AlertScriptsPath= /usr/local/zabbix/share/zabbix/alertscripts 
#保存退出
:wq! 
#修改zabbix agent端的配置,因为是本机,要改的地方很少
vi  /usr/local/zabbix/etc/zabbix_agentd .conf
#额外自定义监控配置文件的存放位置,有自定义监控就一定要设置了
Include= /usr/local/zabbix/etc/zabbix_agentd .conf.d/
#启用自定义key
UnsafeUserParameters=1 
#保存退出
:wq! 
6、添加开机启动脚本
#服务端,如果只是需要客户端,可以忽略这个
cp  /usr/local/src/zabbix-3 .2.1 /misc/init .d /fedora/core/zabbix_server  /etc/init .d /zabbix_server 
#客户端
cp  /usr/local/src/zabbix-3 .2.1 /misc/init .d /fedora/core/zabbix_agentd  /etc/init .d /zabbix_agentd 
#添加脚本执行权限
chmod  +x  /etc/init .d /zabbix_server 
#添加脚本执行权限
chmod  +x  /etc/init .d /zabbix_agentd 
#添加开机启动,centos7之后会不一样,各位自己看情况
chkconfig zabbix_server on 
#添加开机启动,如果只是需要客户端,可以忽略这个
chkconfig zabbix_agentd on 
7、修改zabbix开机启动脚本中的zabbix安装目录
#编辑服务端配置文件
vi  /etc/init .d /zabbix_server 
#zabbix安装目录
BASEDIR= /usr/local/zabbix/ 
#保存退出
:wq! 
#编辑客户端配置文件
vi  /etc/init .d /zabbix_agentd 
#zabbix安装目录
BASEDIR= /usr/local/zabbix/ 
#保存退出
:wq!

    配置web站点(php代码):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#进入zabbix源码包目录
cd  /opt/zabbix-3 .2.1
#拷贝zabbix的php文件到已经安装并定义好的LNMP代码目录
cp  -r  /usr/local/src/zabbix-3 .2.1 /frontends/php  /data/htdocs/www/zabbix
#更改好属主权限,是nginx的权限,我这里是www用户
chown  www:www -R  /data/htdocs/www/zabbix
备注: /data/htdocs/www 为我自己设置的Nginx默认站点目录 www为Nginx运行账户
#启动zabbix服务端
service zabbix_server start 
#启动zabbix客户端
service zabbix_agentd start 
#编辑修改php配置,不然会用不了
vi  /etc/php .ini 
post_max_size =16M
max_execution_time =300
max_input_time =300
#保存退出
:wq! 
#编辑修改
vi  /usr/local/php/etc/php-fpm .conf 
request_terminate_timeout = 300
#保存退出
:wq! 
#重启php-fpm
service php-fpm reloa

不过,还要多做一个事,修改web界面为中文,因为虽然zabbix自带中文语言包,但是翻译效果惨不忍睹(谁叫电脑是美国发明的呢),有很多乱码,所以需要改善一下,

1、修改系统配置文件,让web页面支持简体中文显示,新版本其实已经改好,但是还是要注意这个地方,别被坑

1
2
3
4
5
6
7
#编辑修改
vi  /data/htdocs/www/zabbix/include/locales .inc.php 
'zh_CN'  => array( 'name'  => _( 'Chinese (zh_CN)' ),  'display'  =>  false ),
#修改为
'zh_CN'  => array( 'name'  => _( 'Chinese (zh_CN)' ),  'display'  =>  true ),
#保存退出
:wq!

2、替换监控图像上系统默认的字体,默认字体如果不替换,图像上会显示乱码

在Windows系统中的C:\Windows\Fonts目录中复制出一个中文字体文件,例如msyh.ttf是微软雅黑

1
2
3
4
5
6
#把字体文件msyh.ttf上传到zabbix站点根目录下fonts文件夹中
cp  -ar msyh.ttf  /data/htdocs/www/zabbix/fonts/msyh .ttf
#备份默认的字体文件:
mv  DejaVusSans.ttf DejaVusSans.ttf.bak
#修改msyh.ttf名称为DejaVusSans.ttf
mv  msyh.ttf DejaVusSans.ttf

最后,在web界面修改配置信息,把默认语言修改为简体中文,这个后面再说明在哪里改

Language:Chinese(zh_CN)  

 安装web:

这个步骤主要是在web运行,zabbix的web和zabbix_server是两回事,和zabbix_agent是三回事,所以配置都是不一样的,下面来看看.

先打开已经配置好的web站点,你的LNMP环境没问题就可以正常了.

进入http://10.27.X.X/zabbix 看到欢迎界面,直接右下角下一步:

wKiom1gz7PHhS04PAABpfAVb5qU526.png-wh_50

这里全是ok的话,你就可以下一步了.这里是否ok取决于你LNMP的配置环境符不符合他的要求,有一个不ok,你就不能下一步了,这里也看到了,php要5.4以上,还有一些特定的php配置.不过,如果不ok也会有提示的,只要不是软件版本不兼容的问题,按着他提示的来改配置,也是能过的:

wKioL1gz7PKyhcFfAACfNa5-gA0004.png-wh_50

这一步就是配置数据库了,你的zabbix_server是怎么配置的,就怎么配置吧,然后下一步就行,当然你要保证数据库能连得上是吧:

wKioL1gz7PLzSgu2AACHikUC24k591.png-wh_50

这一步是确认你自己的地址和端口,要不是你自己闲的蛋疼做了什么特殊的网络配置,直接下一步就可以了:

wKiom1gz7PLQpahBAABn2Wxyoas188.png-wh_50

这一步就是确认你之前提交过的数据,生成表单,然后提交,属于检查吧,检查过没问题就下一步吧:

wKiom1gz7POz3HsiAACW9vnZdhI452.png-wh_50

这步就是完成配置了,直接点finish就行了,你的zabbix就配置完成了.

wKioL1gz7POyCKypAAB0oB4fnS0934.png-wh_50


登录使用:

    详细的使用方法会在下一篇深入探讨,这里只说明怎么登录和简单使用

默认的账号:admin

默认的密码:zabbix

Sign in 登录进去

当然你是可以改的,进去再改吧

wKioL1gz8Zrgdb3eAAAlRfrlx-M225.png-wh_50

进去了就是这样,当然这是我有一些机器了,不要紧张为什么和我不一样:

wKioL1gz8X7jXudFAAEiu5aN1ys089.png-wh_50

修改密码和语言就点右上角的小人头然后就出来一个修改框让你改了,改成什么你们随意:

wKiom1gz84-BJmkfAABgLWcu-Es840.png-wh_50

想要添加用户,就点击管理--用户,去添加和修改用户,你也可以添加用户群组,还可以配置特定权限,这个自己摸索,不想详细说明了

wKioL1gz9DyACaTKAACAAFOgN3E834.png-wh_50

然后,这就能用了,当然还要添加机器了,不然还看啥,不过要下一篇再详细说明,敬请期待.





     本文转自arthur376 51CTO博客,原文链接:http://blog.51cto.com/arthur376/1875442,如需转载请自行联系原作者







相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
监控 关系型数据库 Linux
|
2月前
|
监控 网络协议 Linux
使用Docker部署监控服务Uptime Kuma并实现无公网ip远程访问本地服务
使用Docker部署监控服务Uptime Kuma并实现无公网ip远程访问本地服务
122 0
|
3月前
|
存储 SQL 监控
修改Zabbix源码实现监控数据双写,满足业务需求!
虽然对接Elasticsearch后有诸多好处,但是它不往数据库写历史数据了,同时还不再计算趋势数据了。有这么一个场景...
修改Zabbix源码实现监控数据双写,满足业务需求!
|
4月前
|
数据采集 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
77 4
|
4月前
|
监控 Ubuntu Docker
Sentry 监控 Docker 方式部署
Sentry 监控 Docker 方式部署
128 0
|
5天前
|
存储 运维 监控
构建高效稳定的Docker容器监控体系
【4月更文挑战第18天】 在现代微服务架构中,Docker容器已成为部署和运行应用的标准环境。随之而来的挑战是如何有效监控这些容器的性能与健康状况,确保系统的稳定性和可靠性。本文将探讨构建一个高效稳定的Docker容器监控体系的关键技术和方法,包括日志管理、性能指标收集以及异常检测机制,旨在为运维人员提供实用的指导和建议。
10 0
|
26天前
|
运维 监控 云计算
构建高效稳定的Docker容器监控体系
随着微服务架构的普及,Docker容器作为其核心承载单元,在系统运维中扮演着日益重要的角色。本文旨在探讨如何构建一个高效且稳定的Docker容器监控体系,以确保容器运行的可靠性和系统的高可用性。文章首先分析了容器监控的必要性,接着详细介绍了监控体系的设计理念和组件选择,最后提供了实施过程中的关键步骤与最佳实践。通过本文,读者将掌握构建和维护Docker容器监控体系的有效方法。
|
1月前
|
数据采集 监控 数据库
请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
【2月更文挑战第25天】请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
25 2
|
2月前
|
缓存 监控 测试技术
【Docker项目实战】使用Docker部署miniboard轻量级监控仪表板
【2月更文挑战第5天】使用Docker部署miniboard轻量级监控仪表板
83 0
|
2月前
|
监控 Cloud Native 关系型数据库
使用 Grafana 统一监控展示 - 对接 Zabbix
使用 Grafana 统一监控展示 - 对接 Zabbix