热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何部署Zabbix监控实现监测和报警机制

这篇文章的知识点包括:Zabbix的安装部署、Zabbix监控的实现以及Zabbix报警机制的实现,阅读完整文相信大家对Zabbix监控的使用有了一定的认识。Zabb

这篇文章的知识点包括:Zabbix的安装部署、Zabbix监控的实现以及Zabbix报警机制的实现,阅读完整文相信大家对Zabbix监控的使用有了一定的认识。

Zabbix部署

实验环境:

CentOS 7-2:192.168.18.147(监测端:部署安装zabbix)

CentOS 7-3:192.168.18.128(被监测端)

监测端操作:

[root@cacti ~]# systemctl stop firewalld.service        #关闭防火墙功能
[root@cacti ~]# systemctl disable firewalld.service     #开机禁用防火墙功能
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@cacti ~]# setenforce 0                            #关闭增强型安全功能

`安装LAMP架构`
[root@cacti ~]# yum install -y \
httpd \
mariadb-server mariadb \
php \
php-mysql \
php-gd \
libjpeg* \
php-ldap \
php-odbc \
php-pear \
php-xml \
php-xmlrpc \
php-mhash

`编辑apache配置文件`
[root@cacti ~]# vim /etc/httpd/conf/httpd.conf
95 ServerName www.yun.com:80                        #第95行,删除注释,域名自定义
164     DirectoryIndex index.html index.php         #164行,添加首页支持类类型index.php
#修改完成后按Esc退出插入模式,输入:wq保存退出

`修改时区为中国`
[root@cacti ~]# vim /etc/php.ini
878 date.timezOne= PRC     #878行,把前面模板的;号删除,后面添加中国时区PRC
#修改完成后按Esc退出插入模式,输入:wq保存退出

[root@cacti ~]# systemctl start httpd.service       #启动apache服务
[root@cacti ~]# systemctl start mariadb.service     #启动mariadb服务
[root@cacti ~]# netstat -ntap | egrep '(3306|80)'   #使用egrep命令同时查看3306和80端口
tcp        0      0 0.0.0.0:3306            0.0.0.0:*            LISTEN      4410/mysql   
tcp6       0      0 :::80                   :::*                 LISTEN      4131/httpd    
`初始化数据库配置`
[root@cacti ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):   #此处直接回车
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y      #设置密码
New password:       #abc123
Re-enter new password:      #确认输入:abc123
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] n     #是否删除匿名用户,选择不删除
 ... skipping.
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y   #是否远程连接
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] n      #是否删除测试数据库
 ... skipping.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y    #是否重新加载
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

#验证登录数据库
[root@cacti ~]# mysql -u root -p
Enter password:     #输入密码abc123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.64-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

`创建zabbix数据库,并且设置为utf8形式,把里面的字符串转换为二进制`
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
`提升用户`
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| zabbix             |
+--------------------+
5 rows in set (0.00 sec)
#此时有zabbix数据库,需要创建管理里这个数据库的用户
MariaDB [(none)]> GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';
Query OK, 0 rows affected (0.01 sec)    
#把所有数据库和所有表都交给zabbix进行管理,并且设置密码为admin123

MariaDB [(none)]> flush privileges;     #刷新
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit      #退出数据库
Bye

`测试php基本信息`
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls
[root@localhost html]# vim index.php
此时在宿主机中输入:192.168.18.147,查看是否可以访问php页面:

如何部署Zabbix监控实现监测和报警机制

测试是否能够连接数据库:
[root@localhost html]# vim index.php
#先按3dd删除原有内容,再插入以下内容
Success!!";
else echo "Fail!!";
mysql_close();
?>
此时在宿主机中刷新之前的页面:192.168.18.147,如果可以访问mysql数据库则返回Success提示,如果不能则返回Fail提示:

如何部署Zabbix监控实现监测和报警机制

解决问题:

如果出现Fail报错一般为本地无法登录得问题,可以使用以下方法解决
[root@cacti html]# mysql -u zabbix -p
Enter password:     #此时输入admin123无法登录数据库,说明有用户占用
ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES)

`先使用root用户登录数据库`
[root@cacti html]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]> select user,host from mysql.user;
+--------+-----------+
| user   | host      |
+--------+-----------+
| zabbix | %         |
| root   | 127.0.0.1 |
| root   | ::1       |
|        | cacti     |
|        | localhost |
| root   | localhost |
+--------+-----------+
6 rows in set (0.00 sec)

`以下操作删除空用户`
MariaDB [(none)]> drop user ''@localhost;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> drop user ''@cacti;
Query OK, 0 rows affected (0.00 sec)

`此时空用户被删除`
MariaDB [(none)]> select user,host from mysql.user;
+--------+-----------+
| user   | host      |
+--------+-----------+
| zabbix | %         |
| root   | 127.0.0.1 |
| root   | ::1       |
| root   | localhost |
+--------+-----------+
4 rows in set (0.00 sec)

MariaDB [(none)]> quit
Bye

`此时再次刷新页面就会显示Success!!成功登录`
部署Zabbix Server
[root@cacti html]# yum install php-bcmath php-mbstring -y
`安装zabbix源`
[root@cacti html]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
获取http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
警告:/var/tmp/rpm-tmp.13QGZK: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-release-3.5-1.el7         ################################# [100%]

`查看源`
[root@cacti html]# cd /etc/yum.repos.d/
[root@cacti yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  zabbix.repo
[root@cacti yum.repos.d]# cat zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/3.5/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1

[root@cacti yum.repos.d]# yum install zabbix-server-mysql zabbix-web-mysql -y
......此处省略多行
已安装:
  zabbix-server-mysql.x86_64 0:4.0.0-1.1rc3.el7    zabbix-web-mysql.noarch 0:4.0.0-1.1rc3.el7

作为依赖被安装:
  OpenIPMI.x86_64 0:2.0.27-1.el7                   OpenIPMI-libs.x86_64 0:2.0.27-1.el7
  OpenIPMI-modalias.x86_64 0:2.0.27-1.el7          fping.x86_64 0:3.10-1.el7
  iksemel.x86_64 0:1.4-2.el7.centos                zabbix-web.noarch 0:4.0.0-1.1rc3.el7

`生成数据库文件`
[root@cacti yum.repos.d]# zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -u zabbix -p  zabbix
Enter password:     #输入密码admin123

[root@cacti yum.repos.d]# grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf
38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
101:DBName=zabbix
117:DBUser=zabbix
357:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
475:Timeout=4
518:AlertScriptsPath=/usr/lib/zabbix/alertscripts
529:ExternalScripts=/usr/lib/zabbix/externalscripts
565:LogSlowQueries=3000
#是配置文件中缺少的就是密码,其它得系统已自动配置

[root@cacti yum.repos.d]# vim /etc/zabbix/zabbix_server.conf
125 DBPassword=admin123     #125行删除注释,添加密码admin123在=号后面
#修改完成后按Esc退出插入模式,输入:wq保存退出

`修改时区`
[root@cacti yum.repos.d]# vim /etc/httpd/conf.d/zabbix.conf
20         php_value date.timezone Asia/Shanghai        #20行删除注释,失去改为Asia/Shanghai
#修改完成后按Esc退出插入模式,输入:wq保存退出

`修正图表中文乱码`
[root@cacti yum.repos.d]# vim /usr/share/zabbix/include/defines.inc.php
#输入以下内容进行全局字体替换为kaiti
:%s /graphfont/kaiti/g
#修改完成后按Esc退出插入模式,输入:wq保存退出

`复制STKAITI.TTF文件到字体目录下`
[root@cacti yum.repos.d]# mkdir /aaa        #创建挂载目录
[root@cacti yum.repos.d]# mount.cifs //192.168.0.105/rpm /aaa       #进行远程挂载
Password for root@//192.168.0.105/rpm:
[root@cacti yum.repos.d]# cd /aaa/zabbix/
[root@cacti zabbix]# ls
php-bcmath-5.4.16-42.el7.x86_64.rpm    STKAITI.TTF
php-mbstring-5.4.16-42.el7.x86_64.rpm  zabbix.conf.php
[root@cacti zabbix]# cp STKAITI.TTF /usr/share/zabbix/fonts/

`启动服务查看端口开启情况`
[root@cacti zabbix]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@cacti zabbix]# systemctl start zabbix-server
[root@cacti zabbix]# netstat -ntap | grep zabbix        #监听端口为10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*        LISTEN    6735/zabbix_server
tcp6       0      0 :::10051                :::*             LISTEN    6735/zabbix_server
[root@cacti zabbix]# systemctl restart httpd.service    #重启httpd服务,用于验证登录zabbix

验证:登录操作,安装zabbix

第一步:在宿主机地址栏中输入:http://192.168.18.147/zabbix/可进入以下页面,按Next step进入下一步

如何部署Zabbix监控实现监测和报警机制

第二步:确认检查全部为OK之后,按Next step进入下一步

如何部署Zabbix监控实现监测和报警机制

第三步:数据库设置,输入端口号3306,填写密码admin123,按Next step进入下一步

如何部署Zabbix监控实现监测和报警机制

第四步:填写zabbix服务名称,此处填写Zabbix(可自行定义),按Next step进入下一步

如何部署Zabbix监控实现监测和报警机制

第五步:可以显示之前所有配置的内容,直接按Next step进入下一步

如何部署Zabbix监控实现监测和报警机制

第六步:进入页面后直接按Finish结束,进入登陆界面,输入默认账户Admin,默认密码zabbix,点击登录

如何部署Zabbix监控实现监测和报警机制

此时就可以进入到zabbix的监控界面了:

可点击右上角人物头像,在Language语言栏选择Chinese(zh_CN)简体中文,点击Update更新

如何部署Zabbix监控实现监测和报警机制

以上就是监测端的所有操作!


被监测端操作:

[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0

`安装yum源`
[root@localhost ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
获取http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
警告:/var/tmp/rpm-tmp.elS5cl: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-release-3.5-1.el7         ################################# [100%]

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  zabbix.repo
[root@localhost yum.repos.d]# yum install zabbix-agent -y

`修改配置文件`
[root@localhost yum.repos.d]# grep -n '^'[a-Z] /etc/zabbix/zabbix_agentd.conf
13:PidFile=/var/run/zabbix/zabbix_agentd.pid
32:LogFile=/var/log/zabbix/zabbix_agentd.log
43:LogFileSize=0
98:Server=127.0.0.1             #此处需要修改为监控端IP
139:ServerActive=127.0.0.1      #此处需要修改为监控端IP
150:Hostname=Zabbix server
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf

[root@localhost yum.repos.d]# vim /etc/zabbix/zabbix_agentd.conf
98 Server=192.168.18.147            #98行,指向监控服务器IP
139 ServerActive=192.168.18.147     #139行,指向监控服务器IP
150 Hostname=zhou                   #主机名,可自行定义
#修改完成后按Esc退出插入模式,输入:wq保存退出

`启动服务`
[root@localhost yum.repos.d]# systemctl enable zabbix-agent.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
[root@localhost yum.repos.d]# systemctl restart zabbix-agent.service
[root@localhost yum.repos.d]# netstat -ntap | grep zabbix       #监听端口为10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*         LISTEN   5425/zabbix_agentd
tcp6       0      0 :::10050                :::*              LISTEN   5425/zabbix_agentd

此时不会自动识别被监控端,需要做以下操作:

第一步:找到配置下的主机选项,点击创建主机

如何部署Zabbix监控实现监测和报警机制

第二步:在主机配置界面填入相应内容,然后点击模板

如何部署Zabbix监控实现监测和报警机制

第三步:在模板中选择HTTP和SSH的模板链接,点击提示器中的添加,然后再点击蓝色的添加图标

如何部署Zabbix监控实现监测和报警机制

此时回到开始的界面就会显示新添加的监控项

如何部署Zabbix监控实现监测和报警机制

以上就实现了服务器监控被监控端,假如被监控端遇到问题,就会触发报警,最终会以邮件形式提供(需要添加邮件发送服务)


Zabbix监测和报警机制

监控端安装邮件报警功能的操作
[root@cacti zabbix]# yum install mailx -y
[root@cacti zabbix]# vim /etc/mail.rc
#在末行下插入以下内容
set from=邮箱地址   #例如19919919911@163.com
set smtp=smtp.163.com
set smtp-auth-user=邮箱地址
set smtp-auth-password=邮箱密码
set smtp-auth=login
#修改完成后按Esc退出插入模式,输入:wq保存退出

`尝试发送测试邮件`
[root@cacti zabbix]# echo "hello world" | mail -s "testmail" 邮箱地址
此时邮箱收到测试邮件:

如何部署Zabbix监控实现监测和报警机制

编写发邮件脚本:

[root@cacti zabbix]# cd /usr/lib/zabbix/alertscripts
[root@cacti alertscripts]# vim mail.sh
#!/bin/bash
#send mail

messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1
#修改完成后按Esc退出插入模式,输入:wq保存退出

[root@cacti alertscripts]# mv mail.sh mailx.sh

`在tmp目录下创建mailx的日志文件`
[root@cacti alertscripts]# touch /tmp/mailx.log

`赋予权限`
[root@cacti alertscripts]# chown -R zabbix.zabbix  /tmp/mailx.log
[root@cacti alertscripts]# chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
[root@cacti alertscripts]# chown -R zabbix.zabbix /usr/lib/zabbix/

`验证过程`
[root@cacti alertscripts]# ./mailx.sh 邮箱地址 "yun" "hello"
#其中邮箱地址为$1,yun为$2主题,hello为$3内容

此时执行完脚本,邮箱中就可以收到相对应的邮件了!

如何部署Zabbix监控实现监测和报警机制

接下来进入Web界面进行设置:

第一步:在上方选择管理,找到其中的报警媒介类型,再点击页面右上角的创建媒体类型,在界面中输入相关信息

如何部署Zabbix监控实现监测和报警机制

第二步:选项中会显示3次探测服务,如果宕掉就会触发报警,最后点击下方的蓝色添加图标,就可以生成新的报警类型了

如何部署Zabbix监控实现监测和报警机制


接下来我们需要指定用户

第一步:找到配置中的用户界面,点击Admin用户

如何部署Zabbix监控实现监测和报警机制

第二步:在用户的报警媒介中点击添加,输入相对应的媒介信息,最后点击添加

如何部署Zabbix监控实现监测和报警机制

第三步:添加媒介之后一定不要忘记点击更新

如何部署Zabbix监控实现监测和报警机制

在动作中删除原有模板,在进行重新定义,点击右上角的创建动作

第一步:在动作界面中输入名称,生成新的触发条件

如何部署Zabbix监控实现监测和报警机制

第二步:在操作中做以下操作,下方点击新的,做添加操作,最后点击跟新

如何部署Zabbix监控实现监测和报警机制

此时新的操作生成!

如何部署Zabbix监控实现监测和报警机制

第三步:恢复操作中做以下填写

如何部署Zabbix监控实现监测和报警机制

此时新的操作生成!

如何部署Zabbix监控实现监测和报警机制

第四步:点击蓝色图标添加,此时就会进行持续性的监控了

如何部署Zabbix监控实现监测和报警机制

查看被监控端SSH远程连接服务状态

[root@localhost yum.repos.d]# systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since 一 2019-11-25 11:00:11 CST; 2 months 7 days ago
#此时显示为running运行状态

`停止此服务`
[root@localhost yum.repos.d]# systemctl stop sshd

此时我们看监控界面会不会跳出提示

经过等待几分钟之后监控界面会自动跳出SSH服务down的提示,此时邮箱也会收到邮件

如何部署Zabbix监控实现监测和报警机制

如何部署Zabbix监控实现监测和报警机制

`启动sshd服务`
[root@localhost yum.repos.d]# systemctl start sshd
此时几分钟过后会自动监测到服务成功开启,报警已解决,同时邮箱也会收到服务恢复的邮件

如何部署Zabbix监控实现监测和报警机制

如何部署Zabbix监控实现监测和报警机制

看完上述内容,你们对Zabbix监控的使用有进一步的了解吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程笔记行业资讯频道,感谢各位的阅读。


推荐阅读
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • PHP连接MySQL的三种方法及预处理语句防止SQL注入的技术详解
    PHP连接MySQL的三种方法及预处理语句防止SQL注入的技术详解 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • C++ 开发实战:实用技巧与经验分享
    C++ 开发实战:实用技巧与经验分享 ... [详细]
  • 本文深入解析了Java面向对象编程的核心概念及其应用,重点探讨了面向对象的三大特性:封装、继承和多态。封装确保了数据的安全性和代码的可维护性;继承支持代码的重用和扩展;多态则增强了程序的灵活性和可扩展性。通过具体示例,文章详细阐述了这些特性在实际开发中的应用和优势。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • 【Linux】CentOS 7 远程连接指南:高效安全的远程管理方法
    在 CentOS 7 中实现高效且安全的远程管理,本文详细介绍了如何检查和安装配置 OpenSSH。首先,通过 `yum list installed` 命令检查系统是否已安装 OpenSSH,若未安装,则使用 `yum install openssh-server` 进行安装。随后,配置 SSH 服务以确保其安全性和稳定性,包括修改默认端口、禁用 root 登录等关键步骤。此外,还提供了常见问题的解决方案,帮助用户顺利进行远程连接。 ... [详细]
  • 本文首先对信息漏洞的基础知识进行了概述,重点介绍了几种常见的信息泄露途径。具体包括目录遍历、PHPINFO信息泄露以及备份文件的不当下载。其中,备份文件下载涉及网站源代码、`.bak`文件、Vim缓存文件和`DS_Store`文件等。目录遍历漏洞的详细分析为后续深入研究奠定了基础。 ... [详细]
  • 在使用 PHP 通过 SSL 安全连接到 MySQLi 数据库服务器时,遇到了一些技术难题。我的环境包括一个 Web 服务器和一个数据库服务器,两者均使用 OpenSSL 生成了证书。尽管证书内容一致,但在尝试从 Web 服务器使用 `mysql` 命令进行连接时,仍然遇到了问题。为了确保连接的安全性和稳定性,需要进一步检查证书配置和 PHP 的 SSL 设置,以排除潜在的配置错误或兼容性问题。 ... [详细]
  • 如何有效解决MySQL中预编译语句失效的问题及专业应对策略 ... [详细]
  • 本文深入探讨了Java多线程环境下的同步机制及其应用,重点介绍了`synchronized`关键字的使用方法和原理。`synchronized`关键字主要用于确保多个线程在访问共享资源时的互斥性和原子性。通过具体示例,如在一个类中使用`synchronized`修饰方法,展示了如何实现线程安全的代码块。此外,文章还讨论了`ReentrantLock`等其他同步工具的优缺点,并提供了实际应用场景中的最佳实践。 ... [详细]
  • NOIP2000的单词接龙问题与常见的成语接龙游戏有异曲同工之妙。题目要求在给定的一组单词中,从指定的起始字母开始,构建最长的“单词链”。每个单词在链中最多可出现两次。本文将详细解析该题目的解法,并分享学习过程中的心得体会。 ... [详细]
author-avatar
绝望的贵族_500
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有