Centos 8 LNMP环境部署zabbix监控

Stella981
• 阅读 760

LNMP环境构建

本次构建LNMP环境采用源码的方式来进行构建

软件包

下载地址

nginx-1.19.2.tar.gz

http://nginx.org/download/

mysql

mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

php-7.4.10.tar.gz

https://www.php.net/downloads.php

准备工作

1.准备一台centos 8 的系统
2.提前关闭防火墙以及selinux
3.提前解决相关源码包的依赖问题

防火墙以及selinux的关闭

[root@localhost ~]# hostnamectl set-hostname zabbix  //修改主机名
[root@localhost ~]# su     //输入su 或者base 生效主机名的配置
[root@zabbix ~]# systemctl stop firewalld       //关闭防火墙
[root@zabbix ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@zabbix ~]# vim /etc/selinux/config    //修改selinux的配置文件
......
SELINUX=disabled
......
[root@zabbix ~]# setenforce 0      //生效配置

源码编译依赖关系解决

[root@zabbix ~]# yum install gcc gcc-c++ autoconf automake  libtool make zlib zlib-devel openssl openssl-devel pcre* pcre-devel  -y

Nginx的安装

编译安装过程

[root@zabbix ~]# mkdir /lnmp      //创建一个目录用于存放源码包
[root@zabbix ~]# cd /lnmp/
[root@zabbix lnmp]# wget http://nginx.org/download/nginx-1.19.2.tar.gz   //下载Nginx源码包
[root@zabbix lnmp]# useradd -s /sbin/nologin -M nginx   //创建Nginx用户
[root@zabbix lnmp]# tar -xf nginx-1.19.2.tar.gz   //解压源码包
[root@zabbix lnmp]# cd nginx-1.19.2/    //进入Nginx目录
[root@zabbix nginx-1.19.2]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre    //然后进行源码编译
[root@zabbix nginx-1.19.2]# mkae -j 2 && make install 
make  -j  参数 使用这个参数可以加快编译的效率
[root@zabbix nginx-1.19.2]# cd /usr/local/nginx/    //编译完成以后,在对应的目录下就会多出如下的内容
[root@zabbix nginx]# ls
conf  html  logs  sbin

对Nginx进行配置

[root@zabbix ~]# /usr/local/nginx/sbin/nginx    //启动测试
[root@zabbix ~]# ss -tan | grep 80         //查看端口是否正常开启
LISTEN   0         128                 0.0.0.0:80              0.0.0.0:
[root@zabbix ~]# vim /usr/local/nginx/conf/nginx.conf    //编辑Nginx的配置文件
......
4 user nginx nginx;
43         location / {
   
   
44             root   html;
45             index  index.php index.html index.htm;
46         }
65         location ~ \.php$ {
   
   
66             root           html;
67             fastcgi_pass   127.0.0.1:9000;
68             fastcgi_index  index.php;
69             fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
70             include        fastcgi_params;
71         }
72 
[root@zabbix ~]# /usr/local/nginx/sbin/nginx -t   //检测配置文件是否有误
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@zabbix ~]# /usr/local/nginx/sbin/nginx -s reload   //重启服务即可

访问测试
Centos 8 LNMP环境部署zabbix监控

mysql的安装

安装过程

[root@zabbix lnmp]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz    //下载mysql对应的软件包
[root@zabbix lnmp]# tar -xf  mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz  -C /usr/local/   //然后进行解压,解压路径为/usr/local/mysql 
[root@zabbix local]# mv mysql-8.0.13-linux-glibc2.12-x86_64 mysql
[root@zabbix local]# cd mysql/   //进入数据库的目录会发现很多文件
[root@zabbix mysql]# ls
bin   include  LICENSE         man     README.router  support-files
docs  lib      LICENSE.router  README  share
[root@zabbix mysql]# mkdir data    //创建数据目录
[root@zabbix mysql]# useradd -s /sbin/nologin -M mysql    //创建mysql用户
[root@zabbix mysql]# chown -R mysql:mysql data/   把data目录的所属组以及用户都给mysql用户
[root@zabbix mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data     //然后初始化数据库
......
2020-09-28T06:36:47.435694Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rf!i!svaS6dh   初始化密码登录数据库用
[root@zabbix mysql]# cd support-files/   
[root@zabbix support-files]# cp -a mysql.server /etc/init.d/    //复制mysql的启动脚本到/etc/init.d 目录下
[root@zabbix support-files]# chmod a+x /etc/init.d/mysql.server    //给mysql启动脚本执行权限
[root@zabbix ~]# /etc/init.d/mysql.server start   //启动数据库
Starting MySQL.Logging to '/usr/local/mysql/data/zabbix.err'.
... SUCCESS! 
[root@zabbix ~]# ss -tan |grep 3306     //查看端口
LISTEN   0         70                        *:33060                  *:*       
LISTEN   0         128                       *:3306                   *:*   
[root@zabbix ~]# vim /etc/profile            //编辑环境变量配置文件
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin   //添加mysql bin目录的位置
[root@zabbix ~]# source .bash_profile     //生效环境变量文件
[root@zabbix ~]# mysql -uroot -p      //启动如果出现如下问题
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
[root@zabbix ~]# ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5      //执行这一步操作即可
[root@zabbix ~]# mysql -uroot -p    //登录验证
mysql> alter user 'root'@'localhost' identified by '123';     //修改密码  初始密码太复杂

PHP的安装

依赖包安装

[root@zabbix ~]# yum -y install gcc gcc-c++ libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel libicu-devel freetype-devel openldap-devel openldap openldap-devel php-pear sqlite-devel          //解决PHP相关的依赖包
注:7.0以上的PHP还需要支持两个软件包(默认用yum源来下载下载不了 所以我们先进行源码编译安装)

安装libmcrypt
ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt 软件包下载地址
[root@zabbix lnmp]# ll
libmcrypt-2.5.8.tar.gz     //准备这个软件包
[root@zabbix lnmp]# tar -xf libmcrypt-2.5.8.tar.gz   //进行解压操作
[root@zabbix lnmp]# cd libmcrypt-2.5.8/
[root@zabbix libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt     //然后进行编译安装
[root@zabbix libmcrypt-2.5.8]# make && make install   //然后进行安装操作
[root@zabbix local]# vim /etc/ld.so.conf   //然后编辑这个配置文件
......
/usr/local/libmcrypt/lib
/usr/local/mysql/lib
添加如上两条路径   如果不添加后面操作会有误
[root@zabbix local]# ldconfig     //执行这个生效配置
[root@zabbix local]# echo "ldconfig" >> /etc/rc.local   //把这个命令写入开机自启中 

安装oniguruma
https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz   //下载地址
[root@zabbix lnmp]# wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz   //下载源码包
[root@zabbix lnmp]# tar -xf v6.9.4.tar.gz    //解压操作
[root@zabbix lnmp]# cd oniguruma-6.9.4/    //进入目录
[root@zabbix oniguruma-6.9.4]#  ./autogen.sh && ./configure --prefix=/usr     //执行这个命令

PHP的安装过程

[root@zabbix lnmp]# wget https://www.php.net/distributions/php-7.4.10.tar.gz    //下载PHP7.4.10源码包
[root@zabbix lnmp]# cd php-7.4.10/
[root@zabbix php-7.4.10]#   ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype --with-jpeg --with-png-dir --with-zlib --with-libxml=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex  --enable-fpm --enable-mbstring --enable-gd --enable-mysqlnd  --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --with-gettext 
         //然后在进行编译安装
注意  --enable-gd   要写为这个 不能够写完 --with-gd
[root@zabbix php-7.4.10]# make -j 2 && make install    //然后在来进行编译安装即可
[root@zabbix php-7.4.10]# cp php.ini-development /usr/local/php/php.ini     //然后复制配置文件到指定目录下
[root@zabbix php-7.4.10]# cd /usr/local/php/etc/
[root@zabbix etc]# mv php-fpm.conf.default php-fpm.conf
[root@zabbix etc]# mv php-fpm.d/www.conf.default php-fpm.d/www.conf
[root@zabbix fpm]# cp -a /lnmp/php-7.4.10/sapi/fpm/
init.d.php-fpm.in /etc/init.d/php-fpm 
[root@zabbix fpm]# chmod a+x /etc/init.d/php-fpm 
[root@zabbix ~]# /etc/init.d/php-fpm start 
[root@zabbix ~]# ss -tan | grep 9000
LISTEN   0         128               127.0.0.1:9000             0.0.0.0:*       

测试Nginx能否识别PHP文件

[root@zabbix ~]# echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
[root@zabbix ~]# /usr/local/nginx/sbin/nginx -s reload

访问测试
Centos 8 LNMP环境部署zabbix监控

zabbix监控搭建

本次zabbix采用源码的方式来进行搭建

https://cdn.zabbix.com/zabbix/sources   zabbix源码包下载地址

zabbix平台搭建

[root@zabbix ~]# yum install -y net-snmp-devel  libevent libevent-devel     //解决相关依赖关系
[root@zabbix ~]# mkdir zabbix    //创建一个zabbix目录用于存放zabbix源码包
[root@zabbix ~]# cd zabbix/
[root@zabbix zabbix]# wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.3.tar.gz      //然后下载源码包
[root@zabbix zabbix]# tar -xf zabbix-5.0.3.tar.gz    //解压zabbix
[root@zabbix zabbix]# cd zabbix-5.0.3
[root@zabbix zabbix-5.0.3]# useradd -s /sbin/nologin -M zabbix              //创建zabbix用户
[root@zabbix zabbix-5.0.3]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config  --with-net-snmp --with-libcurl --with-mysql       //然后进行编译安装
[root@zabbix zabbix-5.0.3]# make install    //最后执行安装即可

导入数据库

[root@zabbix zabbix-5.0.3]# mysql -uroot -p     //登录数据库
mysql> create database zabbix character set utf8 collate utf8_bin;     //创建一个zabbix数据库
Query OK, 1 row affected, 2 warnings (0.05 sec)
mysql> create user 'zabbix'@'localhost' identified by 'zabbix';    //创建一个用户为zabbix
Query OK, 0 rows affected (0.07 sec)
mysql>  grant all privileges on *.* to 'zabbix'@'localhost' with grant option;   //赋权操作
Query OK, 0 rows affected (0.08 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

导入数据库操作如下:
[root@zabbix zabbix-5.0.3]# mysql -uzabbix -p zabbix < database/mysql/schema.sql    
Enter password: 
[root@zabbix zabbix-5.0.3]# mysql -uzabbix -p zabbix < database/mysql/images.sql 
Enter password: 
[root@zabbix zabbix-5.0.3]# mysql -uzabbix -p zabbix < database/mysql/data.sql 
Enter password: 
[root@zabbix zabbix-5.0.3]# 

配置zabbix-server端

[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf    //编辑zabbix_server.conf 
85 DBHost=localhost        //本地系统的名称
94 DBName=zabbix           //数据库的名称
110 DBUser=zabbix          //数据库用户名
118 DBPassword=zabbix      //数据库用户名的密码
[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf   //编辑zabbix_agent.conf 
113 Server=127.0.0.1        //zabbix_server 服务器的地址
154 ServerActive=127.0.0.1
165 Hostname=Zabbix server

以上配置完成以后我们就可以启动zabbix_server 服务器了
[root@zabbix ~]# /usr/local/zabbix/sbin/zabbix_server 
[root@zabbix ~]# netstat -lnupt | grep zabbix
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      94031/zabbix_server 

zabbix优化配置

[root@zabbix ~]# cd zabbix/zabbix-5.0.3/misc/init.d/fedora/core    //进入这个目录
[root@zabbix core]# ls
zabbix_agentd  zabbix_server
[root@zabbix core]# cp -a * /etc/init.d/   //拷贝里面的文件到启动目录下
[root@zabbix core]# vim /etc/init.d/zabbix_server  //编辑zabbix_server 启动脚本 
 22         BASEDIR=/usr/local/zabbix     //编辑这一行
[root@zabbix core]# vim /etc/init.d/zabbix_agentd 
 22         BASEDIR=/usr/local/zabbix     //编辑这一行
启动测试:
[root@zabbix ~]# /etc/init.d/zabbix_server restart 
Reloading systemd:                                         [  确定  ]
正在重启 zabbix_server(通过 systemctl):                 [  确定  ]
[root@zabbix ~]# /etc/init.d/zabbix_agentd start 
正在启动 zabbix_agentd (via systemctl):                   [  确定  ]
[root@zabbix ~]# netstat -lnupt | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      103587/zabbix_agent 
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      94031/zabbix_server 

配置zabbix浏览器登录界面

[root@zabbix ~]# cp -r zabbix/zabbix-5.0.3/ui/* /usr/local/nginx/html/     //复制源码包目录下ui的所有内容到Nginx的发布目录中

登录测试
Centos 8 LNMP环境部署zabbix监控
然后我们点击下一步
Centos 8 LNMP环境部署zabbix监控

在以上画红框框的地方出现了一些问题,现在我们来进行解决:
[root@zabbix ~]# vim /usr/local/php/php.ini     //编辑PHP的配置文件
2 always_populate_raw_post_data = -1    //这两个是没有的自行添加
3 mysqli.default_socket = /tmp/mysql.sock
386 max_execution_time = 300
396 max_input_time = 300
690 post_max_size = 16M
958 date.timezone = Asia/Shanghai
[root@zabbix ~]# /etc/init.d/php-fpm restart    //重启php-fpm 服务即可

如下,如果又出现以下警告
Centos 8 LNMP环境部署zabbix监控

针对以上警告,为了不影响后面的功能,我们现在来进行解决操作
[root@zabbix ~]# cd /lnmp/php-7.4.10/ext/ldap/    //进入PHP源码编译目录
[root@zabbix ldap]# /usr/local/php/bin/phpize 
Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902
[root@zabbix ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap   //如果报错如下错误
configure: error: Cannot find ldap libraries in /usr/lib.
解决方案:
[root@zabbix ldap]# cp -r /usr/lib64/libldap* /usr/lib/   //执行这一项即可  然后在来重新编译安装
[root@zabbix ldap]# make && make install    //成功后执行这个即可
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/

然后编辑php.ini文件写入如下内容即可:
[root@zabbix ~]# vim /usr/local/php/php.ini 
extension = ldap.so
[root@zabbix ~]# /etc/init.d/php-fpm restart    /重启PHP服务
[root@zabbix ~]# /usr/local/nginx/sbin/nginx -s reload   //重启Nginx服务

然后点击下一步如下图(输入zabbix 以及zabbix的密码)
Centos 8 LNMP环境部署zabbix监控
然后以下操作默认,点击下一步
Centos 8 LNMP环境部署zabbix监控
然后点击下一步
Centos 8 LNMP环境部署zabbix监控
报了如下的错误

我们点击红色箭头的位置,然后会下载一个,我们把这个文件上传到Linux服务器上/usr/local/nginx/html/conf
[root@zabbix /]# ls
 zabbix.conf.php
[root@zabbix /]# mv zabbix.conf.php /usr/local/nginx/html/conf

Centos 8 LNMP环境部署zabbix监控
然后点击finish即可
Centos 8 LNMP环境部署zabbix监控
登录界面如下图
Centos 8 LNMP环境部署zabbix监控
登录界面如下:
Centos 8 LNMP环境部署zabbix监控

至此,LNMP环境搭建zabbix监控就此完成了,过程当中遇到的问题也是非常多。如有问题,提出加以改进,是一位还在努力中的小白网工
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这