zabbix部署+报警模块+图形模块+管理模块+添加监控模板

news2025/1/18 16:53:53

目录

安装zabbix

部署zabbix

配置zabbix

1. 修改语言

2. 监控linux端

3. 修改中文乱码

报警功能

报警音报警

邮件报警

脚本报警

邮件通知内容

图形模块

创建图形

创建聚合图形

percona

mysql模板

nginx模板

克隆主机

网络发现

自动注册

主被动模式


🍁如果对你有帮助就点个收藏吧🔖

🍁博主首页大虾好吃吗

        实验目标:根据拓扑图配置监控node1和mysql,添加mysql监控模板,脚本报警等功能。

拓扑图如下:

 

安装zabbix

1. 安装zabbix源:

rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm (阿里源)

rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm  (官方源)

rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm (国内清华源)

新版本:

https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-1.el7.noarch.rpm

本案例使用rpm安装,如yum安装使用此命令:yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent

2. 安装zabbix服务端软件

[root@zabbix_server ~]# rpm -ivh /media/zabbix-server/* --nodeps --force

[root@zabbix_server ~]# modprobe ipmi_devintf     //rpm安装缺少模块,加载两项模块

[root@zabbix_server ~]# modprobe ipmi_msghandler

3. 启动数据库,建立数据库及用户

[root@zabbix_server ~]# systemctl start mariadb
[root@zabbix_server ~]# systemctl enable mariadb
[root@zabbix_server ~]# mysqladmin -uroot password
New password:
Confirm new password:
[root@zabbix_server ~]# mysql -uroot -p123
//省略部分内容
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

4. 导入zabbix初始化数据

[root@zabbix_server ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.22/create.sql.gz |mysql -uzabbix -pzabbix zabbix

5. 修改zabbix配置文件

[root@zabbix_server ~]# vim /etc/zabbix/zabbix_server.conf

DBPassword=zabbix         //修改此行,删除注释添加数据库密码

[root@zabbix_server ~]# systemctl start zabbix-server

[root@zabbix_server ~]# systemctl enable zabbix-server

6. 修改时区

        修改配置文件,定位到20行修改为上海。

[root@zabbix_server ~]# vim /etc/httpd/conf.d/zabbix.conf

        php_value date.timezone Asia/Shanghai

[root@zabbix_server ~]# systemctl restart httpd

[root@zabbix_server ~]# systemctl enable httpd

部署zabbix

        通过浏览器访问http://192.168.1.4/zabbix ,部署zabbix点击"Next step"下一步,确认当前页ok再次点击"Next step"下一步,输入数据库用户密码后,全部点击下一步即可到达登录界面。默认用户:Admin,密码:zabbix。

 

配置zabbix

1. 修改语言

        首次安装的zabbix一般为英文,下面将修改为中文界面。

        再次查看后就成为中文首页了。

2. 监控linux端

(1)再次打开一台linux服务器,测试zabbix监控。

yum安装方式:

rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm

rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm

        本次使用rpm安装

[root@node1 ~]# rpm -ivh /media/zabbix-server/zabbix-agent-4.0.22-1.el7.x86_64.rpm --nodeps --force

[root@node1 ~]# vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.1.4             //找到Server字段,指向zabbix服务器。

[root@node1 ~]# systemctl start zabbix-agent

[root@node1 ~]# systemctl enable zabbix-agent

(2)添加主机

        配置→主机→创建主机→指定主机名称→指定群组→代理服务器IP(被监控端IP)→添加。

(3)添加模板

         点击配置→主机→模板→添加模板→添加(小字体)→添加。

        添加后稍等片刻就可以看到新建的主机成功,添加的模板等都可以看到。下面Zabbix server是zabbix服务器本机,本机也是可以被监控的(自己监控自己)。

        zabbix服务器执行命令:[root@zabbix_server ~]# systemctl start zabbix-agent下面就可以看到主机已启用并正常监控了。

3. 修改中文乱码

        点击监测→图形→选择群组→主机→监控类型,就可以看到当前被监控端的信息,但是可以看到下方数据有乱码现象,需要在zabbix服务器安装字体包。

[root@zabbix_server ~]# yum -y install wqy-microhei-fonts

[root@zabbix_server ~]# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/zabbix/assets/fonts/graphfont.ttf

        选择覆盖原字体。

 

        现在登录zabbix的web页面将正常显示中文字体。

报警功能

报警音报警

        下面将开启触发器测试登录人数,如果超过限定人数就发出警报并发邮件到管理员qq邮箱。

(1)前端声音报警

        右上角小人(用户)→正在发送信息→勾选前端信息中→更新。

  

(2)添加触发器

        配置→主机→找到对应主机(node1)→触发器→创建触发器→命名→严重性→添加表达式→选择监控项(Number of logged in users)→间隔→结果(大于/0小于/等于/不等于n则发出警告)→下方添加完成。

 

        node1端创建大于三个连接数,等待zabbix发出警告并发送邮件。但是想要发送邮件还需要开启Report problems to Zabbix administrators,如未开启需要开启该项。

  

        此时可以在web页面看到警报提醒。

邮件报警

        zabbix的报警功能随好,但是生产环境中,不能无时无刻的守在服务器旁,这就应用到了邮件警报功能。当下班时如服务器出现问题,警报系统将给邮箱发送一条信息,我们从而得知服务器的故障。

1. 配置→动作→启用report→应用。

  

2. 点击右上角用户头像→报警媒介→添加→收件人邮箱地址(推荐使用qq邮箱)。

 3. 管理→报警媒介类型→email→添加SMTP服务器:smtp.qq.com→端口:465→HELO:qq.com→SMTP电邮:2502461084@qq.com→SSL/TLS→勾选→用户名称:2502461084@qq.com→密码:qq邮箱授权码。

        qq邮箱授权码获取方式:(打开邮箱--设置--账户→开启smtp服务--获取授权码--保存配置)

  

        监控端再次打开新端口访问,连接数大于三个用户,查看zabbix是否发送邮件(过程需要等待1至两分钟)。

        通过下图已经收到了网站的警告,打开邮件查看是否收到邮件。

        通过对邮件的查看,可以看到主机node1的警告。

脚本报警

        上面也讲过邮件报警了,但是还是有一些公司用的老版本centos6或者zabbix2,zabbix没有email报警媒介模块,这就需要编辑脚本报警。

1. 关闭zabbix-server上的邮件服务,安装mailx

[root@zabbix_server ~]# systemctl stop postfix

[root@zabbix_server ~]# systemctl disable postfix

Removed symlink /etc/systemd/system/multi-user.target.wants/postfix.service.

[root@zabbix_server ~]# yum -y install malix

2. 编辑mailx的配置,指定收件邮箱和用户密码

[root@zabbix_server ~]# vim /etc/mail.rc

        空白行添加下面内容,收件人注意修改为本人邮箱

set from=2502461084@qq.com                         //本人邮箱
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=2502461084@qq.com                //本人邮箱
set smtp-auth-password=hjhzldkencdyeaji             //本人授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/

        保存文本退出后,测试邮件服务是否成功。error内容表示证书不安全,实验环境不用理会。

        登录邮箱就可以看到测试内容了。

  

3. zabbix-server编写邮件报警脚本

[root@zabbix_server ~]# yum -y install dos2unix
[root@zabbix_server ~]# cd /usr/lib/zabbix/alertscripts/
[root@zabbix_server alertscripts]# vim email_notice.sh
#!/bin/bash
#export UTF-8
FILE=/tmp/mail.txt
echo "$3" > $FILE
dos2unix -k $FILE
/bin/mail -s "$2" $1 < $FILE
[root@zabbix_server alertscripts]# chmod +x email_notice.sh

4. zabbix web控制台关联邮件报警脚本

        管理→报警媒介类型→关闭已有的email报警→右上角“创建媒体类型”→“名称,类型(脚本),脚本名称(必须写对),参数添加3个:{ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}”→添加。

  

        右上角→小人(用户)→报警媒介→“类型(邮件脚本,收件人:真实邮箱地址)”→添加→更新。

邮件通知内容

        查看的邮件发现很多英文,排版也不规则,很不人性化。下面通过修改配置让邮件信息合理阅读。

        配置→动作→Report problems to Zabbix administrators→操作→修改默认标题→修改消息内容→恢复操作→修改默认标题→修改消息内容→更新。

  操作主题:Problem: {EVENT.NAME}故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

  内容:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

  恢复操作主题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

内容:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

 

        修改后还是增加node1的连接数,等待邮件报警。通过查看我们可以看到对比刚在的邮件内容更加一目了然。

图形模块

创建图形

        配置→主机→选择主机(node1)→图形→右上角“创建图形”→填写“名称”→添加“监控项”→点击最后一行“添加”

查看图形:

        监测→图形→选择“群组”→选择"主机"→选择“图形名称”

  

创建聚合图形

        监测→聚合图形→创建聚合图形→填写聚合图形“名称”→添加→选择新建聚合图形→指定名称→编辑行和列→添加→选择创建的聚合图形→编辑聚合图形→根据需求添加

  

幻灯片演示:

        聚合图形→创建幻灯片演示(把多个聚合图形,按照频率刷新演示)→指定名称→选择 幻灯片播放的图形→添加→点击创建的幻灯片查看。

percona

zabbix模板文件下载:

https://www.zabbix.org/wiki/Zabbix_Templates/Official_Templates

mysql模板

        mysql主机(192.168.1.6)安装zabbix-agent,修改配置文件指向zabbix服务器。

1. 安装环境

percona需要php环境

[root@mysql ~]# yum -y install php php-mysql
[root@mysql ~]# rpm -ivh /media/zabbix-server/zabbix-agent-4.0.22-1.el7.x86_64.rpm
[root@mysql ~]# systemctl start zabbix-agent
[root@mysql ~]# systemctl enable zabbix-agent
[root@mysql ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.4
[root@mysql ~]# rpm -ivh /media/mysql5.6-rpm/* --nodeps --force
[root@mysql ~]# systemctl start mysqld
[root@mysql ~]# systemctl enable mysqld
[root@mysql ~]# mysqladmin -uroot password
New password:
Confirm new password:

2. 下载软件

注意:安装完成后会有提示模版的路径位置

[root@mysql ~]# rpm -ivh /media/percona-zabbix-templates-1.1.8-1.noarch.rpm
//省略部分内容,下面为模板路径提示
Scripts are installed to /var/lib/zabbix/percona/scripts
Templates are installed to /var/lib/zabbix/percona/templates

3. 查看目录

        进入安装目录会发现有2个目录,一个是脚本目录,一个是模版目录

[root@mysql ~]# cd /var/lib/zabbix/percona/
[root@mysql percona]# ls
scripts  templates

        其中脚本目录里有2个脚本,用来获取数据库信息

4. 修改get_mysql_stats_wrapper.sh

        修改get_mysql_stats_wrapper数据库登陆信息

[root@mysql percona]# vim scripts/get_mysql_stats_wrapper.sh

修改第19行-e前面加用户名及密码:

    RES=`HOME=~zabbix mysql -uroot -p123 -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`

5. 修改ss_get_mysql_stats.php

[root@mysql percona]# vim scripts/ss_get_mysql_stats.php
修改30,31行:

$mysql_user = 'root';
$mysql_pass = '123';

6. 复制自定义监控项配置文件到zabbix目录

[root@mysql percona]# cp templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

7. 重启agent

[root@mysql percona]# systemctl restart zabbix-agent

8. 刷新

[root@mysql percona]# zabbix_agentd -p

        下面出现这样的提醒没有报错不用理会。

9. 导入模版

        配置→模板→导入→浏览导入文件(zbx_percona_mysql_template)→勾选聚合图形→最后导入

10. 主机链接模版

        模板创建完成后就可以创建主机了,并选择刚才导入的模板。

        配置→主机→创建主机→选择两个模板→添加→添加

查看模板图形:

        监测→图形→群组→主机→图形

nginx模板

        前提环境:打开nginx服务器安装zabbix-agent,修改配置文件指向zabbix服务器。

1. 开启监控页面并访问测试

[root@node1 ~]# vim /etc/nginx/conf.d/default.conf     //添加nginx状态模块
   location /nginx_status {
       stub_status on;
       access_log off;
   }
[root@node1 ~]# systemctl restart nginx

使用下面两种方式其一验证。

2. 准备nginx监控状态脚本

[root@node1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@node1 zabbix_agentd.d]# vim nginx_monitor.sh
#!/bin/bash
NGINX_COMMAND=$1
CACHEFILE="/tmp/nginx_status.txt"
CMD="/usr/bin/curl http://127.0.0.1/nginx_status/"
if [ ! -f $CACHEFILE  ];then
   $CMD >$CACHEFILE 2>/dev/null
fi
# Check and run the script
TIMEFLM=`stat -c %Y $CACHEFILE`
TIMENOW=`date +%s`

if [ `expr $TIMENOW - $TIMEFLM` -gt 60 ]; then
    rm -f $CACHEFILE
fi
if [ ! -f $CACHEFILE  ];then
   $CMD >$CACHEFILE 2>/dev/null
fi

nginx_active(){
         grep 'Active' $CACHEFILE| awk '{print $NF}'
         exit 0;
}
nginx_reading(){
         grep 'Reading' $CACHEFILE| awk '{print $2}'
         exit 0;
}
nginx_writing(){
         grep 'Writing' $CACHEFILE | awk '{print $4}'
         exit 0;
}
nginx_waiting(){
         grep 'Waiting' $CACHEFILE| awk '{print $6}'
         exit 0;
}
nginx_accepts(){
         awk NR==3 $CACHEFILE| awk '{print $1}'
         exit 0;
}
nginx_handled(){
         awk NR==3 $CACHEFILE| awk '{print $2}'
         exit 0;
}
nginx_requests(){
         awk NR==3 $CACHEFILE| awk '{print $3}'
         exit 0;
}
case $NGINX_COMMAND in
    active)
        nginx_active;
        ;;
    reading)
        nginx_reading;
        ;;
    writing)
        nginx_writing;
        ;;
    waiting)
        nginx_waiting;
        ;;
    accepts)
        nginx_accepts;
        ;;
    handled)
        nginx_handled;
        ;;
    requests)
        nginx_requests;
        ;;
    *)
echo 'Invalid credentials';
exit 2;
esac
[root@node1 zabbix_agentd.d]# chmod +x nginx_monitor.sh
[root@node1 zabbix_agentd.d]# sh nginx_monitor.sh 

3. 编写zabbix监控配置文件

[root@node1 zabbix_agentd.d]# vim nginx_status.conf

UserParameter=nginx_status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/nginx_monitor.sh $1

[root@node1 zabbix_agentd.d]# systemctl restart zabbix-agent

[root@node1 zabbix_agentd.d]# chown zabbix:zabbix /tmp/nginx_status.txt

4. 在服务端(192.168.1.4)使用zabbix_get取值

[root@zabbix ~]# zabbix_get -s 192.168.1.5 -k nginx_status[accepts]

5. 导入模版

        配置→模板→导入→选择文件→根据需求勾选聚合图形→导入。

6. 使用模板

        配置→主机→选择nginx主机→模板→选择Template App NGINX→添加→更新/添加。

  

        此时两个新添加的模板都链接成功了。

  

7. 查看数据

使用mysql服务器安装ab工具测试

[root@mysql ~]# yum -y install httpd-tools
[root@mysql ~]# ab -c 1000 -n 10000 http://192.168.1.5/index.html

        监测→最新数据→选择nginx主机→查看访问。

克隆主机

        在生产环境中的主机非常多,如果一台一台添加非常消耗时间。此刻就需要到克隆,配置玩一个nignx服务器或mysql服务器,直接克隆出多台,模板等都不需要配置,只需要修改主机名称和客户端IP。

        此刻需要在添加一台nginx服务器,安装zabbix-agent修改配置文件指向zabbix服务器。

拓扑图如下:

node1添加其他nginx服务器

        配置→主机→node1→克隆。

      修改主机名称和代理端IP后点击添加即可。

  

        稍等刷新界面,可以看到node2的各项都和node1相同,模板也链接成功。

网络发现

        网络发现的作用:加快Zabbix部署,简化管理,无需过多管理,也能在快速变化的环境中使用Zabbix,一般通过网络ip范围自动发现agent主机。

拓扑图如下:

  

        如跟着上面做的实验,需要先全部删除客户端主机,如下图所示。

1. 客户端安装三台客户端主机需要安装zabbix-agent,配置文件Server指向zabbix-server服务器。下面以node1为例,mysql和node2配置相同。

[root@node1 ~]# vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.1.4

[root@node1 ~]# systemctl start zabbix-agent

2. web自动发现

(1)配置→自动发现→修改Local Network→添加主机网段(agent端范围,IP数越多时间越久)→修改间隔→更新。

  

(2)配置→动作→事件源(自动发现)→修改现有自动发现→修改触发条件(agent端IP)→操作→添加标题→添加主机,根据需求添加群组、模板→更新。

        稍等片刻查看主机,可以看到三台主机都自动添加成功。

自动注册

        自动注册:Zabbix Active agent可以实现自动注册,进而服务器对其进行监控。通过这种方式,无需在服务器上进行手动配置便可直接启动对新host的监控。例如:手动指定node1,它会自动创建包含node的主机,如node1、node2。但不会自动创建mysql主机。

1. 环境要求

        添加前需要删除前面创建的主机,禁用自动发现功能。

  

        web页面删除三台agent主机,客户端安装zabbix-agent,配置文件Server,ServerActive指向zabbix-server,Hostname修改本机主机名。

        本次目标根据主机名node实现node1、node2的自动创建主机,修改两台node服务器文件。以node1为例。

[root@node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.4
ServerActive=192.168.1.4
Hostname=node1
[root@node1 ~]# systemctl restart zabbix-agent

2. web自动注册

        配置→动作→事件源(自动注册)→创建动作→填写名称→触发条件主机名→操作(主机、群组、模板)。

        下面就可以看到主机名包含node的两台主机都已经添加成功了。

主被动模式

        被动模式:默认模式,由服务器向客户端发起监控项请求,每个监控项发一个请求,效率低。

        主动模式:由客户端主动向服务器申请监控项清单,一起发送给服务器,效率高,不占服务器太多资源。

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

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

相关文章

Vue + Element-ui实现后台管理系统---项目搭建 + ⾸⻚布局实现

目录&#xff1a;导读 项目搭建 ⾸⻚布局实现 一、项目搭建 1、环境搭建 2、项目初期搭建 二、Main.vue 三、左侧栏部分(CommonAside.vue) 四、header部分(CommonHeader.vue) 五、Home.vue 写在最后 项目搭建 ⾸⻚布局实现 这篇主要讲解 项目搭建 后台⾸⻚布局实现…

Oracle项目管理之设施与资产管理Facilities and Asset(中文)

目录 维护管理 独立或集成 设施状况评估 空间管理 租赁管理 交易管理 资产组合管理 投资组合管理能力 可持续性和能源管理 单一综合设施和资产生命周期管理 Oracle Primavera Unifier 设施与资产管理是一个功能强大且易于使用的解决方案&#xff0c;用于管理您的财产…

第九章服务器内部转发和客户端重定向

文章目录为什么需要转发和重定向服务器内部转发客户端重定向重定向的相关的状态码对比转发和重定向的应用场景为什么需要转发和重定向 发一个请求给Servlet&#xff0c;接力棒就传递到了Servlet手中。而绝大部分情况下&#xff0c;Servlet不能独自完成一切&#xff0c;需要把接…

云原生之使用docker部署qbittorrent

云原生之使用docker部署qbittorrent一、qbittorrent介绍二、检查本地docker状态三、下载qbittorrent四、部署qbittorrent1.创建数据目录2.创建qbittorrent容器3.查看qbittorrent容器状态五、访问qbittorrent1.进入qbittorrent 登录页2.进入qbittorrent 首页六、qbittorrent的基…

在 Vue 中,使用 $attrs 构建高级组件

我们来看下 Vue3 中的 $attrs 属性。首先&#xff0c;我们会介绍它的用途以及它的实现与 Vue2 有哪些不两同点&#xff0c;并通过事例来加深对它的理解。 真正理解了 $attrs 属性有助于我们构建易于使用和可扩展的高级组件 什么是 $attrs 对 $attrs 定义&#xff0c; Vue2 与…

百亿诈骗案频出,欧科云链用“技术责任”拓宽Web3安全边界

2022年12月1日&#xff0c;《中华人民共和国反电信网络诈骗法》正式实施&#xff0c;中国正式迈入“全民反诈时代”。据CNNIC和智研咨询统计显示&#xff0c;截至2021年12月&#xff0c;国内网民遭遇网络诈骗比例为16.6%&#xff0c;数千万人深受网络诈骗的危害。 以新兴技术区…

第05讲:Security之基于注解的用户授权

使用注解进行用户授权只需要两个步骤&#xff1a; 在SecurityConfig配置类上添加开启用户授权的注解EnableGlobalMethodSecurity(securedEnabled true)在需要被授权的Controller上添加授权的注解 一、新建项目&#xff0c;并进项相关配置 参考&#xff1a;第04讲&#xff1…

重大变化:Documents for Excel (GcExcel) 6.0-Crack

GrapeCity Documents for Excel&#xff0c;Java 版 在 Java 应用程序中以编程方式轻松生成、加载、修改和转换 Excel .xlsx 电子表格。GrapeCity Documents for Excel (GcExcel) 是一个跨平台的高速、占用空间小的电子表格 API 库&#xff0c;不需要依赖 Excel。使用此电子表…

《山本耀司》- 我不烦你,请你也不要来烦我

《山本耀司: 我投下一枚炸弹》 关于作者 山本耀司是时尚界日本新浪潮的新掌门 人&#xff0c;与川久保玲、三宅一生并称日本时尚 界的三驾马车&#xff0c;同时也是20世纪80年代闯 入巴黎时装舞台的先锋派人物之一。他的设计以黑色为主色调&#xff0c;奔放且宽松&#xff0c;…

Mac环境编译安装tesseract-4.1.1

Mojave 编译安装 tesseract-4.1.1 前言 顺便学习下Python&#xff0c;尝试使用Python3安装tesseract进行文字识别&#xff0c;结果踩了好深一个坑&#xff0c;特此记念…… 好多坑&#xff0c;好多坑…… 参考彭世瑜的这一篇&#xff1a;https://blog.csdn.net/mouday/arti…

一起从零开始学VUE(15)初识VUE3

创建Vue3.0工程 使用vue cli 需要保证vue的版本在4.5以上使用vite创建——新一代前端构建工具 开发环境中&#xff0c;无需打包操作&#xff0c;可快速的冷启动轻量快速的热重载HMR真正的按需编译&#xff0c;不再等待整个应用编译完成 步骤 创建工程 npm init vite-app <…

docker安装达梦数据库最佳实践

达蒙数据库 数据库安装部署 下载地址&#xff1a;产品下载 | 达梦数据库 安装博客地址&#xff1a;安装前准备 | 达梦技术文档 到官网docker部署那一章节&#xff0c;下载镜像tar包&#xff0c;上传到服务器上后&#xff0c;运行下面的命令 docker安装启动脚本&#xff1a;…

window10录屏怎么录?看完这篇文章,快速掌握

Windows系统的电脑用户有不少&#xff0c;有时我们需要录制屏幕与朋友分享电脑屏幕上的内容&#xff0c;windows10录屏怎么录&#xff1f;其实windows10录屏的操作很简单&#xff0c;今天小编就和大家分享详细的windows10录屏的操作步骤。 一、使用QQ对windows10录屏 很多小伙…

java计算机毕业设计基于安卓Android的跨校区班车乘车预约系统APP

项目介绍 网络的广泛应用给生活带来了十分的便利。所以把班车乘车预约与现在网络相结合,利用java 技术建设班车乘车预约APP,实现谷惠农产品线上销售的信息化。则对于进一步提高乘车发展,班车乘车预约经验能起到不少的促进作用。 班车乘车预约APP能够通过互联网得到广泛的、全面…

SSM整合xml方式(精简版)

注&#xff1a;本次只介绍ssm整合的核心部分&#xff0c;不重要的部分进行了省略 1、maven核心依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2…

BEPUphysicsint碰撞事件详解

上一节我们給大家介绍了BEPUphysicsint的基本使用,在游戏开发中我们经常要使用物理引擎的事件&#xff0c;所以本节我们详细的讲解BEPUphysicsint 的物理事件。此物理引擎会产生了碰撞事件与非碰撞事件&#xff0c;碰撞事件大家好理解&#xff0c;非碰撞事件例如: 物理Entity的…

携程季报图解:营收69亿同比增29% 净利为2.45亿

雷递网 雷建平 12月15日携程集团有限公司&#xff08;纳斯达克&#xff1a;TCOM&#xff1b;香港联交所&#xff1a;9961&#xff09;今日发布财报。财报显示&#xff0c;携程2022年第三季度营收为69亿元&#xff0c;同比增长29%&#xff1b;净利润为2.45亿元&#xff1b;经调整…

原生拖拽太拉跨了,纯JS自己手写一个拖拽效果,纵享丝滑

前言 提到元素拖拽&#xff0c;通常都会先想到用 HTML5 的拖拽放置 (Drag 和 Drop) 来实现&#xff0c;它提供了一套完整的事件机制&#xff0c;看起来似乎是首选的解决方案&#xff0c;但实际却不是那么美好&#xff0c;主要是它的样式太过简陋&#xff0c;无法实现更高级的用…

spring boot实现文件上传和下载

文章目录 spring boot实现文件上传 1.文件上传 2.文件下载 1.文件上传 1.代码如下&#xff1a; package com.example.demo; import org.omg.PortableInterceptor.ServerRequestInfo; import org.springframework.stereotype.Controller; import org.springframework.we…

k8s 综合部署练习(针对负载均衡+外网访问web)

部署需求 &#xff08;1&#xff09;Kubernetes 区域可采用 Kubeadm 方式进行安装。 &#xff08;2&#xff09;要求在 Kubernetes 环境中&#xff0c;通过yaml文件的方式&#xff0c;创建Deployment控制器和4个Nginx Pod副本&#xff0c;并进入容器中修改index.html文件内容&…