宝塔面板LNMP环境Zabbix5与Grafana7源码部署教程

部署资源

通过从源代码编译获得最新版本的Zabbix 5.4,本文介绍从源代码安装Zabbix的分步教程。

1、 Zabbix 5.4正式版(刚发布没几天)

2、阿里云ECS 4H8G

3、CentOS 8

4、WEB环境为宝塔面板下编译LNMP(Nginx 1.20、MySQL 8.0.18、PHP 7.3)

5、Grafana 7.5.7(新版)

Zabbix5.4+Grafana7.5源码部署

一、Zabbix5与Grafana7源码部署教程之Zabbix源码部署教程

1、上传源码zabbix-5.4.0.tar.gz包至服务器

##本文拟定安装目录
[root@master-03 ~]# cd /usr/local/
##上传源码zabbix-5.4.0.tar.gz包方式,自定义
[root@master-03 ~]# rz

Zabbix5.4源码部署教程(图1)

2、解压缩zabbix-5.4.0.tar.gz源码包

##NOTE:在命令中输入正确的Zabbix版本,它必须与下载的源码包的名称匹配
[root@master-03 opt]# tar -zxvf zabbix-5.4.0.tar.gz -C /usr/local/
[root@master-03 opt]# cd /usr/local/zabbix-5.4.0/
[root@master-03 zabbix-5.4.0]# ll
total 2024
-rw-r--r--  1 www www   53763 May 14 17:13 aclocal.m4
-rw-r--r--  1 www www      98 Mar 29 16:33 AUTHORS
drwxr-xr-x  4 www www      32 Mar 29 16:33 bin
drwxr-xr-x  5 www www      45 Mar 29 17:02 build
-rw-r--r--  1 www www 1245095 May 14 17:13 ChangeLog
-rwxr-xr-x  1 www www    7383 Nov  5  2018 compile
drwxr-xr-x  3 www www     134 Apr 26 23:52 conf
-rwxr-xr-x  1 www www   44283 Feb 25  2018 config.guess
-rwxr-xr-x  1 www www   36136 Feb 25  2018 config.sub
-rwxr-xr-x  1 www www  469613 May 14 17:13 configure
-rw-r--r--  1 www www   63031 May 14 17:13 configure.ac
-rw-r--r--  1 www www   17990 Mar 29 16:33 COPYING
drwxr-xr-x  7 www www     125 May 14 17:13 database
-rwxr-xr-x  1 www www   23568 Nov  5  2018 depcomp
drwxr-xr-x  2 www www    4096 May 14 17:13 include
-rw-r--r--  1 www www      82 Mar 29 16:33 INSTALL
-rwxr-xr-x  1 www www   15368 Nov  5  2018 install-sh
drwxr-xr-x  2 www www    4096 May 14 17:13 m4
-rw-r--r--  1 www www    6329 Apr 26 23:52 Makefile.am
-rw-r--r--  1 www www   36345 May 14 17:13 Makefile.in
drwxr-xr-x  2 www www     220 May 14 17:13 man
drwxr-xr-x  5 www www      88 May 14 17:13 misc
-rwxr-xr-x  1 www www    6878 Nov  5  2018 missing
-rw-r--r--  1 www www      52 Mar 29 16:33 NEWS
-rw-r--r--  1 www www    1317 Mar 29 17:02 README
drwxr-xr-x  4 www www     302 May 14 17:13 sass
drwxr-xr-x 12 www www     217 May 14 17:13 src
drwxr-xr-x 12 www www    4096 May 14 17:13 ui

Zabbix5.4源码部署教程(图2)

3、创建Zabbix用户帐号(Create user account)

对于所有Zabbix守护进程,都需要一个没有特权的用户。  如果从没有特权的用户帐户启动Zabbix守护程序,它将以该用户身份运行。

但是,如果守护程序是从“ root”帐户启动的,它将切换到“ zabbix”用户帐户,该帐户必须存在。  要创建这样的用户帐户(在其自己的组“ zabbix”中),

在基于RedHat\Centos的系统上

[root@master-03 local]# groupadd --system zabbix
[root@master-03 local]# useradd --system -g zabbix -d /usr/local/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

在基于Debian的系统上

[root@master-03 local]# addgroup --system --quiet zabbix
[root@master-03 local]# adduser --quiet --system --disabled-login --ingroup zabbix --home /usr/local/zabbix --no-create-home zabbix

Zabbix进程不需要主目录,这就是为什么我们不建议创建它的原因。  但是,如果您使用某些需要的功能(例如,将MySQL凭据存储在 $HOME/.my.cnf),您可以使用以下命令自由创建它。 

在基于RedHat\Centos的系统上

[root@master-03 local]# mkdir -m u=rwx,g=rwx,o= -p /usr/local/zabbix
[root@master-03 local]# chown zabbix:zabbix /usr/local/zabbix

在基于Debian的系统上

[root@master-03 local]# mkdir -m u=rwx,g=rwx,o= -p /usr/local/zabbix
[root@master-03 local]# chown zabbix:zabbix /usr/local/zabbix

4、创建Zabbix数据库实例及用户

1、数据库初始化部分参照《【手册】Zabbix 5.4安装部署教程之DNF、YUM安装》,查询以前文章或者互联网资源

2、本次着重介绍宝塔面板环境下,数据库创建与使用场景,步骤如下图登录宝塔面板首页>>单机左侧数据库>>添加数据库>>数据库名“zabbix”>>用户名“zabbix”>>密码“随机码”>>访问权限“本地、分布式均可”,提交完成数据库与数据库访问账户权限创建。

Zabbix5.4源码部署教程(图3)

3、导入zabbix 5.4初始数据文件,依次是schema.sql、images.sql、data.sql,源码安装包的数据库初始文件分为三个,位于源码包目录/usr/local/zabbix/database/mysql/下

##首先登录MySQL
[root@master-03 local]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4573
Server version: 5.7.33-log Source distribution

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> source /usr/local/zabbix/database/mysql/schema.sql
mysql> source /usr/local/zabbix/database/mysql/images.sql
mysql> source /usr/local/zabbix/database/mysql/data.sql

5、Zabbix源码编译安装

1、首先,解决编译依赖问题,再执行zabbix编译命令

[root@master-03 local]# yum -y install gcc gcc-c++ curl curl-devel net-snmp net-snmp-devel perl-DBI libxml2-devel libevent-devel pcre
[root@master-03 local]# ./configure --prefix=/usr/local/zabbix  --enable-server --enable-agent --enable-agent2 --enable-java --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

config.status: creating man/Makefile
config.status: creating include/config.h
config.status: executing depfiles commands


Configuration:

  Detected OS:           linux-gnu
  Install path:          /usr/local
  Compilation arch:      linux

  Compiler:              cc
  Compiler flags:         -g -O2

  Library-specific flags:
    database:              -I/www/server/mysql/include
    libXML2:               -I/usr/include/libxml2
    Net-SNMP:               -I. -I/usr/include

  Enable server:         yes
  Server details:
    With database:         MySQL
    WEB Monitoring:        cURL
      SSL certificates:      /usr/local/share/zabbix/ssl/certs
      SSL keys:              /usr/local/share/zabbix/ssl/keys
    SNMP:                  yes
    IPMI:                  no
    SSH:                   no
    TLS:                   no
    ODBC:                  no
    Linker flags:           -L/usr/lib64   -L/www/server/mysql/lib              -rdynamic
    Libraries:              -lmysqlclient  -lpthread -lm -lrt -lssl -lcrypto -ldl      -lnetsnmp    -lz -lpthread -levent    -lcurl -lm -ldl  -lresolv -lxml2   -lpcre
    Configuration file:    /usr/local/etc/zabbix_server.conf
    External scripts:      /usr/local/share/zabbix/externalscripts
    Alert scripts:         /usr/local/share/zabbix/alertscripts
    Modules:               /usr/local/lib/modules

  Enable proxy:          no

  Enable agent:          yes
  Agent details:
    TLS:                   no
    Modbus:                no
    Linker flags:                -rdynamic
    Libraries:              -lz -lpthread    -lcurl -lm -ldl  -lresolv -lxml2   -lpcre
    Configuration file:    /usr/local/etc/zabbix_agentd.conf
    Modules:               /usr/local/lib/modules

  Enable agent 2:        yes

  Enable web service:    no

  Enable Java gateway:   yes
  Java gateway details:
    Java compiler:         javac
    Java archiver:         jar

  LDAP support:          no
  IPv6 support:          yes

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************

2、Zabbix5+Grafana7源码部署之zabbix安装

##执行zabbix安装命令,过程预计5分钟左右,出现如下图所示界面,即无报错安装成功
[root@master-03 local]# make && make install

列出安装完毕之后常用zabbix文件目录
[root@master-03 ~]# ll /usr/local/zabbix/     ##安装目录
[root@master-03 ~]# vim /usr/local/zabbix/etc/zabbix_server.conf   ##zabbix服务配置文档
[root@master-03 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf   ##zabbix本地代理文档
[root@master-03 ~]# /usr/local/zabbix/share/zabbix/alertscripts   ##自定义报警脚本的位置
[root@master-03 ~]# /usr/local/zabbix/share/zabbix/externalscripts ##自定义监控脚本的位置

Zabbix5.4源码部署教程(图4)

6、搭建WEB前端环境

##拷贝zabbix web前端PHP运行文件至宝塔面板默认站点目录下/www/wwwroot/zabbix-web/,根据个人习惯重命名为zabbix-web
[root@master-03 ~]# cp -r /usr/local/zabbix5.4/ui/ /www/wwwroot/
[root@master-03 ~]# mv /www/wwwroot/ui /www/wwwroot/zabbix-web

创建zabbix-server与zabbix-agentd服务启动脚本

##从源码包中拷贝至/etc/init.d/
[root@master-03 zabbix5.4]# cp /usr/local/zabbix5.4/misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix-server
[root@master-03 zabbix5.4]# cp /usr/local/zabbix5.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix-agentd

##修改zbbix运行目录,因为解压缩的zabbix源码文件中默认指向/usr/local/,而我们安装目录是/usr/local/zabbix下
[root@master-03 zabbix5.4]# vim /etc/init.d/zabbix-server   #修改22行,安装目录按需修改
[root@master-03 zabbix5.4]# vim /etc/init.d/zabbix-agentd   #修改22行,安装目录按需修改

Zabbix5.4源码部署教程(图5)

7、设置zabbix启动并开机自启动

[root@master-03 ~]# systemctl daemon-reload		#重载
[root@master-03 ~]# service zabbix-server start      #默认监听端口10050
[root@master-03 ~]# service zabbix-agentd start      #默认监听端口10051
 
[root@master-03 ~]# chkconfig --add zabbix-server		#添加到开机自启
[root@master-03 ~]# chkconfig zabbix-server on

8、宝塔面板部署Nginx1.18、MySQL 5.7.33(MySQL 8.0.*也可以)、PHP 7.3

部署宝塔请移步宝塔官方根据系统进行,登录宝塔左侧>>软件商店>>搜索对应应用名(Nginx1.18、MySQL 5.7.33(MySQL 8.0.*也可以)、PHP 7.3)

Zabbix5.4源码部署教程(图6)

进入PHP参数配置界面,在禁用函数中删除putenv函数、PHP option "max_input_time"修改为300或以上

Zabbix5.4源码部署教程(图7)

Zabbix5.4源码部署教程(图8)

9、宝塔面板中创建zabbix前端站点并配置

新建zabbix前端web站点,首页>>网站>>添加站点>>域名>>zabbix web目录“ui”>>保存

Zabbix5.4源码部署教程(图9)

10、zabbix前端配置

浏览器输入http://iP或域名,本文http://zabbix.10691.cn,回车

Zabbix5.4源码部署教程(图10)

PHP程序运行zabbix的初始指标

Zabbix5.4源码部署教程(图11)

下一步,继续完成MySQL数据库配置

Zabbix5.4源码部署教程(图12)

11、修改zabbix数据图标乱码问题

【手册】宝塔面板LNMP+Zabbix5.4+Grafana7.5源码部署教程(图14)

解决思路:拷贝Windows电脑“楷体常规”字体,替换zabbix前端默认调用的未知字体,重启zabbix服务解决

Windows电脑路径如下图

【手册】宝塔面板LNMP+Zabbix5.4+Grafana7.5源码部署教程(图15)

##将Windows电脑复制下的字体上传至/usr/local/zabbix/ui/assets/fonts目录下,并重命名该目录下默认字体名称,直白说“掉包”

[root@master-03 fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
[root@master-03 fonts]# mv simkai.ttf DejaVuSans.ttf

【手册】宝塔面板LNMP+Zabbix5.4+Grafana7.5源码部署教程(图16)

二、Zabbix5与Grafana7源码部署教程之新版Grafana 7.5.7数据展示平台搭建

1.1、适用于Red Hat, CentOS, RHEL, and Fedora(64 Bit),部署Grafana方式

SHA256: 5e7649985bed0e4994f10b86c938bd1e895e394e39b58946dc08e2ff3573e89b

[root@master-03 ~]# wget 
--2021-05-24 08:58:14--  https://dl.grafana.com/oss/release/grafana-7.5.7-1.x86_64.rpm
Resolving dl.grafana.com (dl.grafana.com)... 151.101.26.217, 2a04:4e42:6::729
Connecting to dl.grafana.com (dl.grafana.com)|151.101.26.217|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 51909421 (50M) [application/x-redhat-package-manager]
Saving to: ‘grafana-7.5.7-1.x86_64.rpm’
grafana-7.5.7-1.x86_64.rpm       100%[=======================================================>]  49.50M  10.9MB/s    in 7.0s
2021-05-24 08:58:22 (7.08 MB/s) - ‘grafana-7.5.7-1.x86_64.rpm’ saved [51909421/51909421]

##执行grafana安装命令
[root@master-03 ~]# sudo yum install grafana-7.5.7-1.x86_64.rpm

##启动、重启、开机自启动、停止、取消自启动等常用Grafana命令
[root@master-03 ~]# systemctl start grafana-server.service
[root@master-03 ~]# systemctl restart grafana-server.service
[root@master-03 ~]# systemctl enable grafana-server.service
[root@master-03 ~]# systemctl stop grafana-server.service
[root@master-03 ~]# systemctl disable grafana-server.service

1.2、适用于Ubuntu and Debian(64 Bit),部署Grafana方式

SHA256: f98d7b75fd269414233e8a0e751e0dcf7d687e576220a86df570b78ef3d798ce

[root@master-03 ~]# sudo apt-get install -y adduser libfontconfig1

[root@master-03 ~]# wget https://dl.grafana.com/oss/release/grafana_7.5.7_amd64.deb

[root@master-03 ~]# sudo dpkg -i grafana_7.5.7_amd64.deb

2、查看Grafana守护进程及默认监听端口3000是否启动

Zabbix5.4+Grafana7.5.7源码部署教程(图14)

3、浏览器输入http://IP:3000,回车即可如看到如下图Grafana首页

Zabbix5.4+Grafana7.5.7源码部署教程(图15)

4、安装zabbix相关插件

首先,依次首页>>DATA SOURCES>>下拉页面至底部,单机Find more data source plugins on grafana.com>>搜索“zabbix”关键词>>双击安装搜索结果中的zabbix插件下载>>Installation>>Install the Application,键入命令完成zabbix插件安装

[root@master-03 ~]# grafana-cli plugins install alexanderzobnin-zabbix-app
installing alexanderzobnin-zabbix-app @ 4.1.5
from: https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/4.1.5/download
into: /var/lib/grafana/plugins

✔ Installed alexanderzobnin-zabbix-app successfully

Restart grafana after installing plugins . <service grafana-server restart>

##重启Grafana服务
[root@master-03 ~]# systemctl restart grafana-server.service
[root@master-03 ~]# service grafana-server restart

然后,Grafana前端配置单机zabbix首页,选择“enable”启动zabbix插件

Zabbix5.4+Grafana7.5.7源码部署教程(图16)

最后,配置zabbix登录用户与zabbix监控API地址,首页>>DATA SOURCES>>下拉页面至底部>>>>>>进入zabbix配置页,填写zabbix登录用户名、密码、api地址保存即可Zabbix5.4+Grafana7.5.7源码部署教程(图17)

5、常见zabbix错误bug汇总

a.zabbix server启动失败?

故障现象:zabbix_server[11049]: /usr/sbin/zabbix_server: symbol lookup error: /usr/sbin/zabbix_server: undefined symbol: usmAES192PrivProtocol

错误原因:由于使用系统镜像中的net-snmp-libs-5.8.安装包,不支持usmAES192 privacy protocol,所以导致zabbix-server启动失败

解决办法:升级net-snmp到高版本。访问Centos8 YUM仓库下载rpm或者通过网络YUM源方式升级到net-snmp-libs-5.8.18或以上版本即可

[root@master-03 ~]# wget http://mirror.centos.org/centos/8/AppStream/x86_64/os/Packages/net-snmp-5.8-17.el8.x86_64.rpm
[root@master-03 ~]# yum localinstall net-snmp-5.8-17.el8.x86_64.rpm

故障现象:[Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

错误原因:数据库sock路径不存

解决办法:创建相关路径,并生成软连接

##数据库与zabbix server在同一台机器的情况下,在会有此报错
[root@localhost mysql]# find -name mysql.sock
 mysql:/tmp/mysql.sock
 
[root@localhost mysql]# mkdir -p /var/lib/mysql
[root@localhost mysql]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
[root@localhost mysql]# systemctl restart zabbix-server.service

至此,已完成Zabbix5与Grafana7源码部署教程基于宝塔BT面板。


宝塔面板LNMP环境Zabbix5与Grafana7源码部署教程
https://cn.10691.cn//archives/10068
作者
Ley
发布于
2021年07月07日
许可协议