zabbix 6.0 监控LNPM环境

这里的LNPM是指Linux,Nginx,php-fpm和Mysql.具体版本如下。

  • Linux : centos7.9
  • Nginx: 1.22.1
  • php-fpm:7.4
  • Mysql: 8.0

一、centos7.9 编译安装Nginx

为了弄清楚Nginx各种配置,我们采用编译安装的形式部署Nginx。

1.下载安装包

首先下载Nginx软件包,大家根据自己的实际情况下载所需的版本,本文以Nginx 1.22.1 为例,Nginx 1.22.1下载地址.下载完成后进入下载目录,解压nginx-1.22.1.tar.gz文件。

tar -zxvf nginx-1.22.1.tar.gz

在这里插入图片描述
然后进入nginx-1.22.1

cd nginx-1.22.1/

2.生成配置文件

构建Nginx,由于我们要监控Nginx的状态,需要在configure时添加http_stub_status模块。

./configure --with-http_stub_status_module

在这里插入图片描述
这一步非常的顺利,构建成功后,configure会打印出配置摘要,这一步非常的人性化,建议大家把最后一步截图保留,方便以后维护时使用。
在这里插入图片描述
上图就是我的配置文件摘要。接下来直接编译安装就可以了。

make & make install

这一步一般不会出现大的问题,最可能出现的问题就是系统缺少相关的依赖包,大家根据报错信息进行安装就可以了,在此不多赘述。

在这里插入图片描述

3.将nginx主程序文件加入到/usr/bin

到目前为止,Nginx的编译安装基本已经完成,是不是非常的简单?Nginx的二进制运行文件默认安装在/usr/local/nginx/sbin目录中,使用起来不太方便,除非你修改系统环境变量。我通常是将二进制运行文件复制到/usr/bin目录中。复制完成后,不用修改环境变更也可以在任意目录下运行nginx命令了。

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

在这里插入图片描述

4.将Nginx加入开机自启

将应用加入开机自启是一个很好的习惯,毕竟服务器和个人PC还是有所区别的,个人PC追求更快的开机速度,因此各种优化软件会尽量的减少你的开机服务,而服务器以服务为主,应当将你的服务设置成开机自启。在Linux系统中将应用加入开机自启有很多方法,可以在/etc/init.d/创建启动文件,也可以在/etc/rc.local文件中添加启动命令,但官方推荐使用添加开机服务的方式来实现开机自启,在高版本的Ubuntu中已经没有rc.local文件了。通过上述方法编译安装的Nginx是没有nginx.service文件的,需要我们自己编辑一个nginx.service文件。

编辑Nginx.service文件。

vim /lib/systemd/system/nginx.service

添加以下的内容

[Unit]
Description=nginx
After=network.target[Service]
Type=forking
ExecStart=/usr/bin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/bin/nginx -s reload
ExecStop=/usr/bin/nginx -s quit
PrivateTmp=true[Install]
WantedBy=multi-user.target

👿 在编辑上述文件时,注意nginx的可执行文件的路径,大家要根据自己的实际情况进行修改,如果照抄我的可能无法正常启动服务,大家可以使用which nginx命令查看自己的nginx的安装路径,上述nginx.service要以which nginx查找出来路径为准。
在这里插入图片描述

👿注意nginx.service文件的路径,一定是在/lib/systemd/system/目录下。

将nginx服务加入开机自启。

通过上面的操作,我们新建了nginx.service文件,并且把它放到了正确的路径下,接下来使用下面的命令将nginx服务添加到开机自启。

systemctl enable nginx

通过下图中的命令大家可检查自己的操作是否正确,生效。

在这里插入图片描述
如果出现上图所示的信息,说明我们的操作是正确的。

5.修改nginx.conf配置文件

通过上述步骤安装的Nginx默认配置文件在/usr/local/nginx/conf/目录中。
在这里插入图片描述
在这里插入图片描述
大家一定要认真研读nginx.conf配置文件,理解它的文件结构及相关意义,大家可以通过搜索引擎查找相应的技术文档来进行学习,本文就不在再赘述。

nginx.conf配置文件是以模块的方式进行配置的,我们可以在server模块中看到root目录,root目录就是你的站点文件的家目录,默认配置中使用了相对路径html,也就是说你要把你的站点发布文件放在这个目录下才能实现站点的发布。在实际的项目应用中一般使用绝对路径,这样能够更加方便你对站点的文件的管理。本例中我把root目录设置成了/var/www/html.

vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
下图是修改后的情形,我们可以把站点文件发布到/var/www/html目录下。
在这里插入图片描述
为了使修改生效,大家要注意重启nginx,下面是重启nginx的命令。

nginx -s reload

6.验证

/var/www/html目录下新建一个index.html文件。

vim /var/www/html/index.html

并写入以下内容.

<html>
<body><h1>Nginx is working...</h1>
</body></html>

使用浏览器打开http://localhost,如果能正常出现下图说明我们的Nginx已经安装并配置成功了。

在这里插入图片描述
👿 如果centos7的防火墙是打开的,要将80端口放开。

firewall-cmd --permanent --zone=public --add-port=80/tcp

二、zabbix 监控Nginx

1.安装zabbix-agent并完成相关配置

这一步大家可以查看我以前的教程,在此不在重复。

2.开启Nginx的状态信息

出于安全性的目的,Nginx的状态信息默认是关闭的,zabbix监控Nginx需要将Nginx的状态信息打开,这样通过http协议就能监控到Nginx状态了。

打开Nginx配置文件。

vim /usr/local/nginx/conf/nginx.conf

server模块中添加以下内容。

	location = /basic_status {stub_status;server_tokens on;}

在这里插入图片描述
👿配置文件中 ‘stub_status;’和‘stub_status on’都可以。

3.验证

在浏览器中输入地址http://localhost/basic_status,如果出现相关的Nginx状态信息说明配置成功了。如果你的浏览器中出现了报错信息,请认真检查你前面的操作步骤,直到看到下面的信息才能继续后面的操作。
在这里插入图片描述

4、监控nginx

登录zabbix管理配置页面,在欲监控的Nginx主机上添加Nginx by HTTP模板。
在这里插入图片描述
添加完成后到监测面板中的主机中就能查看到Nginx的运行数据了。如果出现下图的数据说明你的监控已经生效了。
在这里插入图片描述

三、zabbix 监控php-fpm

1.编译安装php-fpm

1.1 下载安装包

本文使用php7.4为例,大家可以根据自己的需求到php官网进行下载。

下载php7.4安装包。

wget https://www.php.net/distributions/php-7.4.33.tar.gz

1.2.解压

tar -zxvf php-7.4.33.tar.gz

1.3.编译安装

在编译时要把php-fpm模块加上,其余的模块大家可以根据自己的实际需求进行加减,本文只是用来演示如何使用zabbix监控LNPM,并非真正的生产或测试环境。

cd php-7.4.33/
./configure --enable-fpm --enable-sockets
make 
make install

如果在安装的过程中没有出现报错信息说明安装成功,下图是安装成功后的截图 。

在这里插入图片描述
1.4.创建及修改配置文件

复制解压目录下的php.ini-development/usr/local/php/目录下,并将其重命名为php.ini

cp php.ini-development /usr/local/php/php.ini

在这里插入图片描述
复制/usr/local/etc/php-fpm.d/目录下的www.conf.default文件并重命名为www.conf

cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf

复制sapi/fpm目录下的php-fpm到/usr/local/bin,复制php-fpm.conf

在这里插入图片描述
创建www-data用户及用户组,如果你的系统中已经存在www-data用户及用户组此步可以省略。

groupadd www-data
useradd -M -s /sbin/nologin www-data -g www-data

修改www.conf文件。

vim /usr/local/etc/php-fpm.d/www.conf

user = group =后面添加用户及用户组。

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = www-data
group = www-data

1.5.启动php-fpm

/usr/local/bin/php-fpm

为了以后方便使用,可以在/usr/bin创建php-fpm的软链接。

ln -s /usr/local/bin/php-fpm /usr/bin/php-fpm

如果启动php-fpm时系统没有报错,说明我们的安装配置都没有什么问题了。可以使用以下命令查看php-fpm的进程是否已经启动。

ps -aux | grep php-fpm

在这里插入图片描述
如果出现上图说明php-fpm进程已经正确的启动了。

1.6.将php-fpm加入开启自启服务

将安装包中的php-fpm.service,复制到/usr/lib/systemd/system/文件夹下,php-fpm.service文件的位置要以自己系统中的位置为准,不可照抄我下面的命令。

cp /home/alfiy/Downloads/php-7.4.33/sapi/fpm/php-fpm.service /usr/lib/systemd/system/

修改php-fpm.service文件,使其仅保留以下内容,其余的模块先注释掉,如果后续需要启用对应的模块时在添加了对应的模块后再将相对应的注释打开。

[Unit]
Description=The PHP FastCGI Process Manager
After=network.target[Service]
Type=simple
PIDFile=/usr/local/var/run/php-fpm.pid
ExecStart=/usr/local/sbin/php-fpm --nodaemonize --fpm-config /usr/local/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID[Install]
WantedBy=multi-user.target

在这里插入图片描述
php-fpm加入开机自启。

systemctl enable php-fpm

2.启用php-fpm状态参数

2.1.修改www.conf文件

修改www.conf,找到pm.status_path= /status,ping.path = /ping,将它前面的注释打开。

pm.status_path = /status
ping.path = /ping

在这里插入图片描述
在这里插入图片描述
也可以修改php-fpm.conf文件,在该文件中添加。

pm.status_path = /status
ping.path = /ping

👿 php-fpm启动时php-fpm.conf的优先级高于www.conf,也就是说,当php-fpm.confwww.conf两个配置文件 出现配置冲突时,php-fpm会以php-fpm.conf配置中的配置为准。

2.2 重启php-fpm

使用下面的命令检查php-fpm配置是否正确。

php-fpm -t

在这里插入图片描述
修改完php-fpm的配置后,先进行配置检查是一个好习惯,上图就是使用该命令检查通过的图片。检查配置文件没有问题我们就可以重启php-fpm了。

php-fpm restart 

2.3.修改nginx.conf文件

编辑Nginx服务器块(虚拟主机)的配置文件nginx.conf,并在其下方添加开启php-fpm状态参数的location块。

找到Nginx的配置文件,在server模块中添加以下内容。

# Enable php-fpm status page
location ~ ^/(status|ping)$ {# disable access logging for request if you preferaccess_log off;# Only allow trusted IPs for security, deny everyone else# allow 127.0.0.1;# allow 1.2.3.4;    # your IP here# deny all;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_index index.php;include fastcgi_params;# Now the port or socket of the php-fpm pool we want the status of#fastcgi_pass 127.0.0.1:9000;fastcgi_pass unix:/run/php-fpm/your_socket.sock;
}

在这里插入图片描述
👿 fastcgi_pass unix:/run/php-fpm/your_socket.sock; fastcgi_pass 127.0.0.1:9000;

这两行代码需要根据系统实际的情况来决定,在www.conf以及php-fpm.conf文件中可以查看相关信息,要以www.conf文件中的值为依据,php-fpm.confnginx.conf配置文件中要和www.conf中的配置一致。
在这里插入图片描述
如果在www.conf文件中默认使用了listen = 127.0.0.1:9000时,php-fpm.confnginx.conf配置文件中也需要使用listen = 127.0.0.1:9000.
在这里插入图片描述
2.4.重启服务激活更改

前面我们已经修改了php-fpmnginx.conf配置文件,接下来需要重启这两个服务才能使用我们的修改生效。

重启之前先检查一下配置文件是否正确,如果不正确会有相应的提示信息,大家根据提示进行排查就可以了。

php-fpm -t
nginx -t

如果配置文件没有报错信息就可以重启服务了。

systemctl restart php-fpm
systemctl restart nginx

3. 监控php-fpm

只要前面的操作步骤一切正常,zabbix对php-fpm的监控就完成了绝大部分了,接下来只需要在我们要监控的主机上添加相应的php-fpm监控模板就OK了。
在这里插入图片描述
模板添加完成后,就能在主机的面板中查看相应的监控数据了。

四、zabbix监控Mysql

1.安装mysql8.0

首先下载mysql8.0社区版。

cd /home
wget https://repo.mysql.com//mysql80-community-release-el7-7.noarch.rpm
rpm -ivh mysql80-community-release-el7-7.noarch.rpm
yum clean all
yum update

这里的安装我没有截图,应该不会有什么问题。

mysql8.0安装完成之后,默认的密码在安装日志中。

vim /var/log/mysqld.log

打开日志文件,搜索password关键字就能找到默认的密码。
在这里插入图片描述
启动mysql,并将mysql服务加入开机自启。

systemctl start mysqld
systemctl enable mysqld

登录验证。

mysql -uroot -p

输入你从安装日志中查找出的密码就能登录mysql了,记得修改root密码,密码必须符合复杂度要求。

👿 entos中安装mysql的同时默认安装了mysqladmin,ubuntu中需要单独安装mysqladmin.

# ubuntu
apt install mysql-client-core-8.0

2.修改配置文件

在安装zabbix-agent完成之后,会在/usr/share/doc/zabbix-agent/目录下自动生成mysql的用户参数配置文件userparameter_mysql.conf,将这个文件 复制到/etc/zabbix/zabbix_agentd.d/目录下,并重命名为。

 cp /usr/share/doc/zabbix-agent/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/template_db_mysql.conf

新建zabbix监控用户,首先登录mysql然后使用下面的命令新建监控用户zbx_monitor用户。

use mysql;
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON *.* TO 'zbx_monitor'@'%' ;
FLUSH PRIVILEGES;
quit;

创建.my.cnf配置文件

在Linux中创建/var/lib/zabbix目录,在该目录下创建.my.cnf配置文件。

mkdir -p /var/lib/zabbix
cd /var/lib/zabbix
vim .my.cnf

添加zabbix监控用户名和密码。

[client]
user='zbx_monitor'
password='yourpassword'

重启zabbix-agent

systemctl restart zabbix-agent

👿 在mysql8中对密码复杂度有了强制要求,大家在设置密码时将我上面示例中的“yourpassword”更换成符合mysql8密码复杂度要求的密码,否则设置不会通过。

3.添加mysql监控模板

在要监控的Mysql主机上添加mysql模板。

在这里插入图片描述
检查模板监控项是否生效。

在主机监控项中找到MySql:status监控项,测试一下是否能够正常获取到监控值,如果不能正常获取监控值,则根据提示进行排错。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从上图可以看出我的mysql监控项已经正确的出现监控值了,再到监控仪表盘中看下吧。
在这里插入图片描述
监控数据也正常了。

好了,到此为止,zabbix对LNPM环境的监控就做好了,在安装监控的过程中,你可能会遇到些问题,如果遇到问题请检查你使用的各种环境版本是否与本文的相同,然后根据错误提示信息进行排查,相信你一定会成功的。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/3160.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么媒体和创意工作者更喜欢 Splashtop 进行远程访问

在当今快速发展的数字环境中&#xff0c;可靠的远程访问已成为全球媒体和创意工作者不可或缺的工具。 远程访问让创意工作者不再受传统办公空间边界的限制&#xff0c;完全实现了随时随地办公。无论是实时剪辑、高分辨率渲染还是其他创意任务&#xff0c;创意工作者对高性能远…

ENSP实验四:搭建VPN(GRE,配置安全策略)

首先分析一下数据的流向&#xff1a; PC1->PC2 1、FW1&#xff1a;trust->dmz 【192.168.1.1->192.168.2.1 ICMP】 2、AR1->AR2&#xff1a;【202.1.1.1->202.1.3.1|GRE|192.168.1.1->192.168.2.1 icmp】 3、FW2&#xff1a; ①untrust->local …

kotlin中使用Room数据库(包含升降级崩溃处理)

目录 1.导入依赖库 2.数据实体类 3.数据访问对象 (DAO) 4.数据库类 5.调用DAO里面的“增、删、改、查”方法 6.数据库升降级处理 升级&#xff08;保存数据库历史数据&#xff09;&#xff1a; 升级&#xff08;不保存数据库历史数据&#xff09;&#xff1a; 降级&…

SpringCloud学习路线(1)—— 从头开始的微服务

一、服务架构的历史 现有的服务框架&#xff1a; 单体架构 概念&#xff1a; 将业务所有功能集中在一个项目中开发&#xff0c;打包部署优点&#xff1a; 架构简单&#xff0c;部署成本低缺陷&#xff1a; 耦合度高 分布式架构 概念&#xff1a; 根据业务功能对系统进行拆分&a…

了解 3DS MAX 3D摄像机跟踪设置:第 7 部分

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 在SynthEyes中跟踪素材 步骤 1 打开SynthEyes软件。 打开合成之眼 步骤 2 在跟踪素材之前&#xff0c;您需要设置首选项。因为&#xff0c;你 稍后将在 3ds Max 中工作&#xff0c;必须根据 3ds Max…

【源码解析】Mybatis执行原理

Mybatis执行原理 1.获取SqlSessionFactory2.创建SqlSession3.创建Mapper、执行SQL MyBatis 是一款优秀的持久层框架&#xff0c;MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息&#xff0c;将接口和…

elasticsearch学习入门+实战

学习链接1 基础概念 官网学习&#xff1a;地址 基本命令 PS&#xff1a;使用Apifox测试 查询所有索引库 添加索引库 添加时&#xff0c;加入分词器 添加时&#xff0c;加入记录属性值 查询获取索引库 删除索引库 添加文档 必须要在添加文档值的时候用【_doc】&a…

如何在 Excel 中快速生成随机密码?

有时&#xff0c;我们可能想创建随机密码来保护某些重要内容。 但是&#xff0c;您有什么技巧可以在Excel中快速生成随机密码&#xff1f; 在这里&#xff0c;我有一些可以在Excel工作表中处理的方法。 用公式生成随机密码 使用插入随机数据生成随机密码​编辑 用公式生成随机…

IPD跟敏捷、DevOps一样吗?有什么区别?

1992年在激烈的全球市场竞争下&#xff0c;IBM遭遇到了严重的财政困难&#xff0c;公司销售收入停止增长&#xff0c;利润急剧下降。经过内部分析&#xff0c;IBM发现他们在研发费用、研发损失费用和产品上市时间等几个方面远远落后于业界最佳。为了重新获得市场竞争优势&#…

思维决定发展,测试人也不例外

最近特别懒&#xff0c;不想码字&#xff0c;原本写作就很差&#xff0c;更是退化严重。社招和校招面试过很多人&#xff0c;从十年前自己还很弱的时候学着面试&#xff0c;到数百次面试积累之后&#xff0c;面对候选人的时候&#xff0c;我的内心依然有些许紧张&#xff0c;非…

初识protobuf

Protobuf 全称Protocol Buffers&#xff08;协议缓冲区&#xff09;&#xff0c;是一种轻量级、高效的数据序列化格式&#xff0c;由Google开发。它被设计用于结构化数据的序列化、反序列化以及数据交换&#xff0c;常用于网络通信和数据存储等领域。 Protobuf使用简洁的消息描…

高效又安全的企业大数据传输解决方案推荐

在当前的商业领域中&#xff0c;企业大数据传输是一个重要而复杂的问题。随着企业规模和数据量的扩大&#xff0c;如何安全可靠、高效快速地传输大数据成为了许多企业需要面对的挑战。本文将介绍几种值得考虑的企业大数据传输解决方案&#xff0c;以帮助企业有效应对这一挑战。…

【产品设计】微信小程序如何做好“授权”设计?

授权登录降低了用户注册账号时的操作成本&#xff0c;减少了产品的获客门槛。在本文中&#xff0c;作者结合案例&#xff0c;盘点了微信小程序授权登录设计中需要注意的几点问题&#xff0c;并对功能设计背后的设计思路与原理进行了简要的分析 01 openID 这是微信生态圈中&…

ROS:动态参数

目录 一、前言二、概念三、作用四、实际用例4.1需求4.2客户端4.2.1流程4.2.2新建功能包4.2.3添加.cfg文件4.2.4配置 CMakeLists.txt4.2.5编译 4.3服务端(C)4.3.1流程4.3.2vscode配置4.3.3服务器代码实现4.3.4编译配置文件4.3.5执行 4.4服务端(Python)4.4.1流程4.4.2vscode配置4…

EasyCVR视频融合平台能正常播放其他协议流,但无法播放HLS流的原因排查

EasyCVR基于云边端一体化架构&#xff0c;支持海量视频汇聚管理&#xff0c;平台支持多协议与多类型设备接入&#xff0c;具体包括国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等&#xff0c;能对外分发RTMP、RTSP、HTTP-FLV、WS-FLV、HLS、WebRTC等。…

Python 和 RabbitMQ 进行消息传递和处理

一、RabbitMQ 简介 RabbitMQ 是一个开源的消息代理软件&#xff0c;它实现了高级消息队列协议&#xff08;AMQP&#xff09;标准。它的官方客户端提供了多种编程语言的接口&#xff0c;包括 Python、Java 和 Ruby 等。它支持消息的持久化、多种交换机类型、消息通知机制、灵活…

【Leetcode】687.最长同值路径

一、题目 1、题目描述 给定一个二叉树的 root ,返回 最长的路径的长度 ,这个路径中的 每个节点具有相同值 。 这条路径可以经过也可以不经过根节点。 两个节点之间的路径长度 由它们之间的边数表示。 示例1: 输入:root = [5,4,5,1,1,5] 输出:2示例2: 输入:root …

MySQL数据库与表的基本操作 + 表的基本CRUD(增删改查)操作

文章目录 前言一、库的基本操作显示当前所有数据库创建数据库使用数据库删除数据库 二、表的基本操作创建表查看库中所有表查看表结构删除表 三、表的增删改查(基础)新增数据(Create)全列插入指定列插入 查询数据(Retrieve)全列查询指定列查询查询字段为表达式指定列的别名去重…

【Kubernetes运维篇】RBAC之准入控制器详解

文章目录 一、ResourceQuota准入控制器1、ResourceQuota是什么&#xff1f;2、限制CPU、内存、Pod数量、Deployment数量3、限制存储空间大小 二、LimitRanger准入控制器1、LimitRanger是什么&#xff1f;2、LimitRanger限制案例 一、ResourceQuota准入控制器 中文官方参考文档…

scrapy

scrapy介绍安装--架构 Scrapy 是一个爬虫框架&#xff08;底层代码封装好了&#xff0c;只需要在固定位置写固定代码即可&#xff09;&#xff0c;应用领域比较广泛---》爬虫界的django# 安装 #Windows平台1、pip3 install wheel #安装后&#xff0c;便支持通过wheel文件安装软…