宝塔面板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与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
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
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”>>密码“随机码”>>访问权限“本地、分布式均可”,提交完成数据库与数据库访问账户权限创建。
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 ##自定义监控脚本的位置
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行,安装目录按需修改
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)
进入PHP参数配置界面,在禁用函数中删除putenv函数、PHP option "max_input_time"修改为300或以上
9、宝塔面板中创建zabbix前端站点并配置
新建zabbix前端web站点,首页>>网站>>添加站点>>域名>>zabbix web目录“ui”>>保存
10、zabbix前端配置
浏览器输入http://iP或域名,本文http://zabbix.10691.cn,回车
PHP程序运行zabbix的初始指标
下一步,继续完成MySQL数据库配置
11、修改zabbix数据图标乱码问题
解决思路:拷贝Windows电脑“楷体常规”字体,替换zabbix前端默认调用的未知字体,重启zabbix服务解决
Windows电脑路径如下图
##将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
二、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是否启动
3、浏览器输入http://IP:3000,回车即可如看到如下图Grafana首页
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插件
最后,配置zabbix登录用户与zabbix监控API地址,首页>>DATA SOURCES>>下拉页面至底部>>>>>>进入zabbix配置页,填写zabbix登录用户名、密码、api地址保存即可
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面板。