Zabbix的基本使用

2023-11-01

一、认识Zabbix

1、简介

Zabbix 是由 Alexei Vladishev 创建,目前是由 Zabbix SIA 在持续开发和提供支持。

Zabbix 是一种企业级的分布式开源监控解决方案。

Zabbix 是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的警报。这样可以快速相应服务器问题。Zabbix 基于存储的数据提供出色的报告和数据可视化。这些功能使得 Zabbix 成为容量规划的理想选择。

Zabbix 支持轮询和被动捕获。所有的 Zabbix 报告、统计信息和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您的网络状态和服务器健康状况可以从任何地方进行评估。在经过适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于拥有少量服务器的小型组织,还是拥有大量服务器的大型公司而言,同样适用。

2、功能

数据采集
可用性和性能采集;
支持 SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控;
自定义检查;
按照自定义的时间间隔采集需要的数据;
通过 Server/Proxy 和 Agents 来执行数据采集。
灵活的阈值定义
您可以定义非常灵活的告警阈值,称之为触发器,触发器从后端数据库获得参考值。
高度可配置化的告警
可以根据递增计划、接收者、媒介类型自定义发送告警通知;
使用宏变量可以使告警通知变得更加高效有益;
自动动作包含远程命令。
实时图形
使用内置图形功能可实以将监控项绘制成图形。
Web 监控功能
Zabbix 可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。
丰富的可视化选项
能够创建可以将多个监控项组合到单个视图中的自定义图形;
网络拓扑图;
以仪表盘样式展示自定义聚合图形和幻灯片演示;
报表;
监控资源的高层次(业务)视图。
历史数据存储
存储在数据库中的数据;
可配置的历史数据;
内置数据管理机制(housekeeping)。
配置简单
将被监控设备添加为主机;
主机一旦添加到数据库中,就会采集主机数据用于监控;
将模板用于监控设备。
套用模板
在模板中分组检查;
模板可以关联其他模板,获得继承。
网络发现
自动发现网络设备;
Zabbix Agent 发现设备后自动注册;
自动发现文件系统、网络接口和 SNMP OIDs 值。
快捷的 Web 界面
基于 PHP 的 Web 前端;
可以从任何地方访问;
您可以定制自己的操作方式;
审计日志。
Zabbix API
Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途。
权限管理系统
安全的用户身份验证;
将特定用户限制于访问特定的视图。
功能强大且易于扩展的 Zabbix Agent
部署于被监控对象上;
完美支持 Linux 和 Windows ;
二进制守护进程
为了更好的性能和更少的内存占用,采用 C 语言编写;
便于移植。
适应更复杂的环境
使用 Zabbix Proxy 代理,可以轻松实现分布式远程监控。

3、架构

Zabbix 由几个主要的功能组件组成,其职责如下所示。
Server
Zabbix server 是 Zabbix agent 向其报告可用性、系统完整性信息和统计信息的核心组件。是存储所有配置信息、统计信息和操作信息的核心存储库。
数据库
所有配置信息以及 Zabbix 收集到的数据都被存储在数据库中。
Web 界面
为了从任何地方和任何平台轻松访问 Zabbix ,我们提供了基于 web 的界面。该界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 运行在同一台物理机器上。
Proxy
Zabbix proxy 可以替 Zabbix server 收集性能和可用性数据。Zabbix proxy 是 Zabbix 环境部署的可选部分;然而,它对于单个 Zabbix server 负载的分担是非常有益的。
Agent
Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix server。

4、数据流

此外,重要的是,需要回过头来了解下 Zabbix 内部的整体数据流。首先,为了创建一个采集数据的监控项,您就必须先创建主机。其次,必须有一个监控项来创建触发器。最后,您必须有一个触发器来创建一个动作,这几个点构成了一个完整的数据流。因此,如果您想要收到 CPU load it too high on Server X 的告警,您必须首先为 Server X 创建一个主机条目,其次创建一个用于监视其 CPU 的监控项,最后创建一个触发器,用来触发 CPU is too high 这个动作,并将其发送到您的邮箱里。虽然这些步骤看起来很繁琐,但是使用模板的话,其实并不复杂。也正是由于这种设计,使得 Zabbix 的配置变得更加灵活易用。

二、项目

1、软件安装和环境部署

在Zabbix官方网站zabbix.com查找需要部署的主机的类型
在这里插入图片描述
根据官网提示部署:
安装Zabbix仓库Install Zabbix repository

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#线上联网才能下载安装
yum clean all
#清除之前的安装记录

在这里插入图片描述
编辑/etc/yum.repos.d/zabbix.repo并使其生效,需要修改的地方:
bix
仓库搭建好查看仓库内容
在这里插入图片描述
安装Zabbix的前端包

yum install zabbix-web-mysql-scl zabbix-apache-conf-scl

安装Zabbix服务端和代理端Install Zabbix server and agent

 yum install zabbix-server-mysql zabbix-agent -y

阿里巴巴开源镜像站–>工具–>zabbix

安装Zabbix前端服务Install Zabbix frontend

yum install centos-release-scl -y

在这里插入图片描述

在这里插入图片描述
将repo文件的releasever改称7

vim中的技巧

:%s/$需要被替换的内容/替换的内容/

回车即可实现替换

在这里插入图片描述
创建并初始化数据库
下载mysql系列压缩包并解压
网址戳这里
在这里插入图片描述

tar xf mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar
yum install -y 
mysql-community-common-5.7.37-1.el7.x86_64.rpm 
mysql-community-client-5.7.37-1.el7.x86_64.rpm 
mysql-community-libs-5.7.37-1.el7.x86_64.rpm 
mysql-community-libs-compat-5.7.37-1.el7.x86_64.rpm 
mysql-community-server-5.7.37-1.el7.x86_64.rpm
systemctl start mysqld
cat /var/log/mysqld.log

初始密码在日志中会有,要耐心找:
在这里插入图片描述

mysql_secure_installation#初始化数据库

先复制之前日志的密码再设置密码,这里注意再次设置的密码需要包括字母大小写数字符号的8位密码,否则会…进入循环
在这里插入图片描述
设置完成要记住密码,之后的问题除了下面的回答NO,其他全是YES
在这里插入图片描述
接着使用密码进入数据库,可以执行一两条测试

# mysql -uroot -p
password
#创建zabbix数据库,创建数据库用户并授权
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password写自己的密码';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;

在这里插入图片描述

#导入初始架构和数据
zcat create.sql.gz | mysql -uzabbix -p zabbix
#该命令很长,会执行一小会儿,中间不要打断

在这里插入图片描述
为Zabbix服务器配置数据库Configure the database for Zabbix server

vim /etc/zabbix/zabbix_server.conf

DBPassword=password

在这里插入图片描述

#修改时区
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

php_value[date.timezone] = Asia/Shanghai
#重启并设置zabbix-server,zabbix-agent,httpd,rh-php72-php-fpm这几个服务为开机自启
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

测试 在真机浏览器访问serverIP/zabbix即进入zabbix网页安装模式
在这里插入图片描述
输入设置好的数据库密码
在这里插入图片描述
在这里插入图片描述

注意:默认的登陆界面中,用户为Admin,密码为zabbix

安装成功进入zabbix的界面,语言在User settings里可以修改
在这里插入图片描述

2、Zabbix工具的使用

(1)、创建被控主机

在代理主机1和代理主机2分别安装代理服务

先复制服务端的ZABBIX.repo仓库文件

修改.repo文件
将所有的GPGCHECK关闭
gpgcheck=0

否则会出现报错如下:
(报错的原因:yum仓库设置gpgcheck=1,下载安装时会去校验GPG key,本地找不到file:///etc/pki/rpm-gpg/RPM-GPG-KEY-zabbix就会报此错误。)
在这里插入图片描述
修改配置文件:(配置服务端主机IP)
在这里插入图片描述
配置代理端IP和hostname
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加成功效果展示在这里插入图片描述
全绿才算添加成功。如果有红色需要查看具体的报错,如:

Get value from agent failed: cannot connect to [[172.25.76.2]:10050]: [113] No route to host
113号报错,无法连接到主机

先考虑网络,这里网络是通畅的,再考虑火墙,这里火墙没有关闭,关闭后再重启服务即可成功。

(2)、中文乱码修复

在界面切换至中文时,一些地方会出现乱码现象
在这里插入图片描述
浏览器刷新后,中文可正常显示

(3)、自动发现主机

自动发现主机功能:由服务端主动发起,Zabbix Server开启发现进程,定时扫描并设别局域网中IP服务器和设备
配置agebt2主机的zabbix-agent服务

yum install -y zabbix-agent
systemctl enable --now zabbix-agent
vim /etc/zabbix/zabbix-agent.conf

在这里插入图片描述
在这里插入图片描述
创建自动发现规则
配置–自动发现–创建发现规则
在这里插入图片描述
为自动发现规则设置相应的动作

配置–动作–Tigger actions
在这里插入图片描述
动作和操作都完成才能创建成功
在这里插入图片描述
在这里插入图片描述
设置完成后静静等待一分钟,自动发现了agent2,证明自动发现规则生效
在这里插入图片描述

(4)、自动注册主机

自动注册主机由客户端主动发起,客户端必须安装并启动Agentd,否则无法被自动注册添加至主机列表;对于使用SNMP的就要采用自动发现了

为实现本实验效果并不浪费本人PC的资源,删除上一个实验创建的自动发现规则并删除主机agebt2

创建动作和操作

这次选择Autoregister actions
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
静静等待一会儿agent2会注册成功,证明该自动注册动作设置生效
在这里插入图片描述

3、zabbix的API调用

Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:

  • 创建新的应用程序以使用Zabbix;
  • 将Zabbix与第三方软件集成;
  • 自动执行常规任务

Zabbix API是基于Web的API,作为Web前端的一部分提供。它使用JSON-RPC 2.0协议,这意味着两点:

  • 该API包含一组独立的方法;
  • 客户端和API之间的请求和响应使用JSON格式进行编码

具体API调用实验:
当完成了前端的安装配置后,可以使用远程HTTP请求来调用API;为此,需要向位于前端目录中的 api_jsonrpc.php 文件发送HTTP POST请求

验证
在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。这可以使用该 user.login 方法完成。让我们假设你想要以标准Zabbix Admin用户身份登录。

vim zabbix_api.sh
---
#!/bin/bash
curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}' http://172.25.76.1/zabbix/api_jsonrpc.php | python -m json.tool
---

其中
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}是json请求的内容

细看看示例请求对象。它具有以下属性

  • jsonrpc - API使用的JSON-RPC协议的版本; Zabbix API实现的JSON-RPC版本是2.0;
  • method - 被调用的API方法名;
  • params - 将被传递给API方法的参数;
  • id - 请求的任意标识符;
  • auth -用户认证令牌; 如果没有的话可以设置为null

如果你正确提供了凭据,API返回的响应将包含用户身份验证令牌:
在这里插入图片描述
响应对象包含以下属性:

  • jsonrpc - JSON-RPC协议的版本;
  • result - 请求返回的数据;
  • id - 相应请求的id。

检索主机
现在有一个有效的用户身份验证令牌,可以用来访问Zabbix中的数据。
例如,可以使用 host.get 方法检索所有已配置主机的ID,主机名和接口

vim zabbix_api_1.sh
---
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": [
            "hostid",
            "host"
        ],
        "selectInterfaces": [
            "interfaceid",
            "ip"
        ]
    },
    "id": 2,
    "auth": "0424bd59b807674191e7d77572075f33"
}

注意, auth 属性现在设置为通过调用user.login方法获得的身份验证令牌

响应对象将包含有关主机的请求的数据:
在这里插入图片描述
删除主机

vim zabbix_api_del.sh
---
#!/bin/bash
curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
{
    "jsonrpc": "2.0",
    "method": "host.delete",
    "params": [
    ##这里是需要爱删除的主机的hostid
	"10440"
    ],
    ##这里是之前的身份验证令牌
    "auth":"9e379f59399c2e02335d024ce64a1519",
    ##这里是主机名hostname所带的数字
    "id": 2
}' http://172.25.76.1/zabbix/api_jsonrpc.php | python -m json.tool
---

响应对象的显示
在这里插入图片描述
再次查看服务端及其代理端,发现agent已被删除
在这里插入图片描述
图形监控界面得到的效果:成功删除agent1主机
在这里插入图片描述
创建主机

vim zabbix_api_create.sh
---
#!/bin/bash
curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "agent2",
	"interfaces": [
	    {
		"type": 1,
                "main": 1,
                "useip": 1,
                "ip": "172.25.76.3",
                "dns": "",
                "port": "10050"
	    }
	],
	"groups": [
	    {
	    ####这里群组的ID需要在zabbix主页查看
		"groupid": "2"
	    }
	],
        "tags": [
            {
		"tag": "Host name",
		"value": "Linux server"
            }
        ],
        "templates": [
            {
            ##这里模板的ID需要在zabbix主页的url处查看
		"templateid": "10001"
            }
        ]
    },
    "auth": "9e379f59399c2e02335d024ce64a1519",
    "id": 3
}' http://172.25.76.1/zabbix/api_jsonrpc.php | python -m json.tool

查看群组ID
在这里插入图片描述
查看模板ID
在这里插入图片描述
在这里插入图片描述
图形监控界面得到的效果:成功添加agent2主机,特定的设置也有显示
在这里插入图片描述

4、zabbix自定义监控项

这里监控agent2的nginx服务,首先在agent2上配置nginx服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在被监控主机agent2配置被监控项目

在图形界面创建监控项:主机–boke3–监控项–创建监控项
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在zabbix服务器端server使用zabbix_get查看效果
安装zabbix-get工具的步骤
在这里插入图片描述
在这里插入图片描述

5、zabbix监控数据库

mysql服务器所在主机已安装zabbix agent;与在zabbix agent端自定义监控项类似,监控项类型为“zabbix 客户端(被动型)”,由mysql服务器上的zabbix agent执行登录检查命令,并将结果回传给zabbix server
在这里插入图片描述
配置zabbix-agent的mysql参数文件

重启zabbix-agent稍候查看监控效果

6、zabbix结合percona监控数据库

percona zabbix mysql-plugin是percona发布的一个使用zabbix监控mysql数据库的工具,这款工具比zabbix自带的监控模板要强大的多,毕竟percona是Mysql的一个重要分支,专业做数据库的,所以,采集的数据比较全面;percona的监控插件是php编写的,通过php连接mysql来获取相关的数据,所以需要在安装zabbix agent的同时,部署php和php-mysql

yum install -y php php-mysql

在这里插入图片描述

安装percona监控模板插件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

wget http://jaminzhang.github.io/soft-conf/Zabbix/zbx_percona_mysql_template.xml

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zabbix的基本使用 的相关文章

  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • docker 非 root 绑定安装权限,WITH --userns-remap

    all 尝试让绑定安装权限正常工作 我的目标是在容器中绑定安装卷 以便 a 容器不以 root 用户身份运行入口点 二 docker daemon 配置了 userns remap 这样容器 主机上没有 root c 我可以绑定挂载和读 写
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 在 Linux 上以编程方式设置 DNS 名称服务器

    我希望能够通过我的 C C 程序为 Linux 上的 DNS 名称服务器添加 IP 地址 我在一个带有只读 etc resolv conf 的嵌入式平台上 这意味着我不能简单地将 nameserver xxx xxx xxx xxx 行添加
  • tcpdump 是否受 iptables 过滤影响?

    如果我的开发机器有iptables规则到FORWARD一些数据包 这些数据包是否被 tcpdump 捕获 我有这个问题 因为我知道存在其他链称为INPUT如果数据包路由到 它会过滤发往应用程序的数据包FORWARD链 它会到达吗tcpdum
  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • 从 ttyUSB0 写入和读取,无法得到响应

    我对 Linux tty 不太有经验 我的环境是带有丰富 USB 串行的 Raspbian 什么有效 stty F dev ttyUSB0 38400 cu l dev ttyUSB0 s 38400 cu to dev ttyUSB0作品
  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • 并行运行 shell 脚本

    我有一个 shell 脚本 打乱大型文本文件 600 万行和 6 列 根据第一列对文件进行排序 输出 1000 个文件 所以伪代码看起来像这样 file1 sh bin bash for i in seq 1 1000 do Generat
  • CMake 链接 glfw3 lib 错误

    我正在使用 CLion 并且正在使用 glfw3 库编写一个程序 http www glfw org docs latest http www glfw org docs latest 我安装并正确执行了库中的所有操作 我有 a 和 h 文
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • .net-core:ILDASM / ILASM 的等效项

    net core 是否有相当于 ILDASM ILASM 的功能 具体来说 我正在寻找在 Linux 上运行的东西 因此为什么是 net core ildasm 和 ilasm 工具都是使用此存储库中的 CoreCLR 构建的 https
  • 如何在 Linux 中使用 C 语言使用共享内存

    我的一个项目有点问题 我一直在试图找到一个有据可查的使用共享内存的例子fork 但没有成功 基本上情况是 当用户启动程序时 我需要在共享内存中存储两个值 当前路径这是一个char and a 文件名这也是char 根据命令参数 启动一个新进
  • Mac OS X 上的 /proc/self/cmdline / GetCommandLine 等效项是什么?

    如何在不使用 argc argv 的情况下访问 Mac OS X 上的命令行 在 Linux 上 我会简单地阅读 proc self cmdline or use GetCommandLine在 Windows 上 但我找不到 Mac OS
  • linux下如何从文本文件中获取值

    我有一些文本格式的文件 xxx conf 我在这个文件中有一些文本 disablelog 1 当我使用 grep r disablelog oscam conf 输出是 disablelog 1 但我只需要值1 请问你有什么想法吗 一种方法
  • 如何使用Android获取Linux内核的版本?

    如何在 Android 应用程序中获取 Linux 内核的版本 不是 100 确定 但我认为调用 uname r 需要 root 访问权限 无论如何 有一种不太肮脏的方法可以做到这一点 那就是 System getProperty os v
  • 使用 gdb 调试 Linux 内核模块

    我想知道 API 在内核模块 中返回什么 从几种形式可以知道 这并不是那么简单 我们需要加载符号表来调试内核模块 所以我所做的就是 1 尝试找到内核模块的 text bss和 data段地址 2 在 gdb 中使用 add symbol f
  • 我什么时候应该编写 Linux 内核模块?

    有些人出于某种原因想要将 Linux 中的代码从用户空间移动到内核空间 很多时候 原因似乎是代码应该具有特别高的优先级 或者只是 内核空间更快 这对我来说似乎很奇怪 我什么时候应该考虑编写内核模块 有一套标准吗 我怎样才能激励将代码保存在
  • ansible unarchive 模块如何查找 tar 二进制文件?

    我正在尝试执行一个 ansible 剧本 该剧本的任务是利用unarchive模块 因为我是在 OSX 上执行此操作 所以我需要使用它gnu tar 而不是bsd tar通常与 OSX 一起提供 因为BSD tar 不受官方支持 https

随机推荐

  • 解决修改CSS文件后网页显示不生效问题

    刚开始学CSS HTML CSS Div虽说是上个世纪就有产生的发明 但我却不会 不过 不要紧 学就是了 问题是这样的 我编写HTML文件 并调用CSS文件实现布局美化 然后 经常出现明明已经修改过CSS文件 但 HTML页面却并没有产生变
  • java dialog居中显示_jdialog居中

    推荐 方法一 方法一 简单的办法 在Java中让JFrame和JDialog居中显示的方法 1 JFrame在屏幕中居中显示 只须在主类的构造方法里面加上一句 this setLocationRelativeTo null 2 若要让JDi
  • LeetCode-343.整数拆分、记忆化递归

    给定一个正整数 n 将其拆分为至少两个正整数的和 并使这些整数的乘积最大化 返回你可以获得的最大乘积 示例 1 输入 2 输出 1 解释 2 1 1 1 1 1 力扣 LeetCode 第343题 题目分析 暴力枚举 一个正整数 n 拆分成
  • 【图像处理】工业相机原理详述

    工业相机是机器视觉系统中的一个关键组件 其最本质的功能就是将光信号转变成有序的电信号 选择合适的相机也是机器视觉系统设计中的重要环节 相机的选择不仅直接决定所采集到的图像分辨率 图像质量等 同时也与整个系统的运行模式直接相关 欢迎关注微信公
  • jpa多表查询的简单方法——自写sql支持limit子句

    1 思路 使用自写sql进行查询不需要在实体上添加 ManyToOne等注解 清晰简单并且容易实现 由于本例中要使用到limit子句进行分页 而hql不支持limit 因此使用原生sql不能直接使用new语句 需将返回值设为Object 或
  • styleGAN记录

    前言 最近需要看一些gan相关的工作 所以写个博客记录一下开个坑 由于也不知道啥时候能写完 这里看到一篇写的还可以的博文 着急的朋友可以移步 从零带你入门stylegan stylegan3的技术细节 styleGAN v1 styleGA
  • 微软高级工程师:珍惜生命,远离C++

    众所周知 C 很难 有人会语重心长告诫后来者 珍惜生命 远离C 但仍然有小伙伴前赴后继挑战 当然是因为它有着独特的优势 C 是一种高效 通用的编程语言 广泛应用于系统开发 嵌入式 游戏开发 高性能计算和金融技术等领域 那C 学多久才算精通呢
  • C++ 纯虚函数和虚函数的区别

    在 C 中 虚函数 Virtual Function 和纯虚函数 Pure Virtual Function 都是用于实现多态性的机制 但它们之间有一些关键的不同 虚函数 Virtual Function 定义 在基类中使用 virtual
  • React路由基础

    React路由 路由使用步骤 编程式导航 路由使用步骤 安装 npm i react router dom D 引入并使用 1 引入路由 import BrowserRouter as Router Route Link from reac
  • 计算机网络实验路由器配置

    路由器配置实验 实验目的及要求 认识路由器的端口 型号 2 掌握路由器的路由配置 理解网络互联的基本原理 实验环境 Packet Tracer V6 实验内容 路由器接口的配置 静态路由配置 默认路由配置 动态路由配置 实验步骤 1 路由器
  • React 函数组件和类组件的优缺点

    React 函数组件和类组件的优缺点 React中的组件可以分为函数组件和类组件 它们各自有一些优缺点 下面是一些常见的观点 函数组件的优点 定义和使用较简单和直观 只需要一个函数即可 对于简单的组件 可以使用函数组件来提高性能和简化开发
  • Arena仿真-基于超市排队的建模分析

    文章目录 Arena仿真作业 一 问题介绍 1 1 模型假设 1 2 优化目标 1 3 约束条件 二 模块设计 2 1 Create模块 2 2 Decide模块 2 3 Assign模块 2 4 Process模块 2 5 Dispose
  • element UI 穿梭框按钮样式修改

    利用Element UI 修改穿梭框的按钮样式 html部分
  • filter 方法常用过滤条件

    encoding utf 8 from sqlalchemy import create engine Column Integer String Float func and or from sqlalchemy ext declarat
  • Java Arrays.sort()自定义排序方法

    Java Arrays sort可以对很多数据类型进行排序 但是当需要对一个比较特殊的数组进行排序的时候 比如一个二维数组 我们要以每组的第一个数大小来排序 则需要我们自己定义一个比较方法 先看看源码 public static
  • 重学Java(四):操作符

    之前我写了一篇 重学Java 四 对象 引用 堆 栈 堆栈 本以为凭借自己8年的Java编程经验足够把这些 吃人 的Java名词解释清楚了 但有网友不以为然 在文章底部评论说 老哥 你真的有8年java开发经验么 告诉我 为什么要用三个句号
  • SylixOS系统简介

    SylixOS是一款嵌入式硬实时操作系统 同其类似的操作系统 全球比较知名的还有VxWorks 主要应用于航空航天 军事与工业自动化领域 RTEMS 起源于美国国防部导弹与火箭控制实时系统 ThreadX 主要应用于航空航天与数码通讯 等
  • 正确理解MySQL的MVCC及实现原理

    MVCC多版本并发控制 目录 MVCC多版本并发控制 前提概要 什么是MVCC 什么是当前读和快照读 当前读 快照读和MVCC的关系 MVCC的实现原理 隐式字段 undo日志 Read View 读视图 整体流程 MVCC相关问题 RR是
  • GlobalCorsConfig跨域文件

    package com config import org springframework context annotation Bean import org springframework context annotation Conf
  • Zabbix的基本使用

    文章目录 一 认识Zabbix 1 简介 2 功能 3 架构 4 数据流 二 项目 1 软件安装和环境部署 2 Zabbix工具的使用 1 创建被控主机 2 中文乱码修复 3 自动发现主机 4 自动注册主机 3 zabbix的API调用 4