一:zabbix配置文件详解

1. zabbix-server配置文件

Zabbix 日志

默认用文件记录,也可以发送给我们的 rsyslog 日志记录系统,如果我们
选择默认,则日志存放在LogFile=/var/log/zabbix/zabbix_server.log
中,也可以自己设置。

日志的滚动

默认值为1,表示滚动。我们设为0则表示不滚动。当数据特别多的时候,我们
也可以设置成为1,然后在 Maximum size of log file in MB 设置当数据
文件最大到多少时会自动滚动。

日志的级别

一共有6个级别。我们可以根据自己的需要来设置级别。其中0表示输出最少的信息,
5表示输出最详细的信息,默认值为3,设置为3的话就表示,0、1、2、3四个级别
都显示。考虑到生产系统中的压力时,这里的信息,如果没有必要的话,越简单
越好,只要在出错的时候,我们可以依据其进行排错即可。

数据库相关的设置

DBHost=192.168.37.111       #数据库对外的主机
DBName=zabbix               #数据库名称
DBUser=zabbix               #数据库用户
DBPassword=keer             #数据库密码
DBPort=3306                 #数据库启动端口

zabbix监控图形中出现乱码解决方案

[root@zabbix-server zabbix]# cd /usr/share/zabbix/assets/fonts/
[root@zabbix-server fonts]# mv graphfont.ttf graphfont.ttf.bak
上传新的字符集文件
[root@zabbix-server fonts]# mv simkai.ttf graphfont.ttf

监控网络流量注意的事项

监控项:

[] 就是需要参数的意思,里面的值即为参数
<> 为不可省略的
if  表示是接口名;
<mode> 表示是那种模式,包括但不限于:packets(包)、bytes(字节)、
errors(错误)、dropped(丢包)、overuns等等(上述内容通过 ifconfig 查看)。

命令方式查看:
[root@zabbix-server zabbix]# zabbix_get -s agent-ip -p 10050 -k "net.if.in[eth0,packets]"

二:用户参数(zabbix-agent)

1. 介绍

自定义用户参数,也就是自定义key,有时,你可能想要运行一个代理检查,
而不是Zabbix的预定义,你可以编写一个命令来检索需要的数据,并将其
包含在代理配置文件("UserParameter"配置参数)的用户参数中。

2. 语法格式

UserParameter=<key>,<command>
A user parameter also contains a key 一个用户参数也包含一个键
The key will be necessary when configuring an item 在配置监控项时,
key是必需的
Note: Need to restart the agent  注意:需要重新启动agent 服务

3. 使用方法

自己需要查找的参数的命令,获得使用的内存值
[root@zabbix-agent ~]# free | awk  '/^Mem/{print $3}'
修改配置文件,把查找参数的命令设为用户参数
[root@zabbix-agent ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@zabbix-agent zabbix_agentd.d]# cat memory_usage.conf
UserParameter=memory.used,free | awk '/^Mem/{print $3}'
重启agent 服务
[root@zabbix-agent ~]# systemctl restart zabbix-agent
在zabbix-server端使用命令查询
[root@zabbix-server ~]# zabbix_get -s 192.168.182.131 -p 10050 -k "memory.used"
153828

在监控上,设置一个item监控项,使用这个用户参数
配置–>主机–>agent–>监控项–>创建监控项

4.用法升级

① 命令行查询参数的命令
② 修改配置文件,把查找参数的命令设为用户参数
[root@zabbix-agent zabbix_agentd.d]# ls
memory_usage.conf  [root@zabbix-agent zabbix_agentd.d]# vim memory_usage.conf
UserParameter=memory.stats[*],cat /proc/meminfo | awk '/^$1/{print $$2}'

重启服务
[root@zabbix-agent zabbix_agentd.d]# systemctl restart zabbix-agent
注意:$$2:表示不是前边位置参数的$1,而是awk 的参数$2
注意:$1是调用前边的[*],位置参数,第一个参数
在zabbix-server 端,查询使用这个用户参数的key

传参:
[root@zabbix-server ~]#yum -y install zabbix-get
[root@zabbix-server ~]#cat /proc/meminfo
[root@zabbix-server ~]# zabbix_get -s 192.168.182.129 -p 10050 -k "memory.stats[MemTotal]"
995684
[root@zabbix-server ~]# zabbix_get -s 192.168.182.129 -p 10050 -k "memory.stats[MemFree]"
233732
[root@zabbix-server ~]# zabbix_get -s 192.168.182.129 -p 10050 -k "memory.stats[Buffers]"
2104
在监控上,设置一个item监控项,使用这个用户参数
① 添加Memory Total 的item监控项,使memory.stats[MemTotal]的用户参数
②添加Memory Free 的item监控项,使用memory.stats[MemFreel]的用户参数
上面2个监控项的graph 图形

① memory total

② memory free

三:zabbix监控php-fpm

1. 下载安装php-fpm

[root@zabbix-agent ~]# yum -y install php-fpm php

2. php-fpm进行配置,(修改一下内容)

[root@zabbix-agent ~]# vim /etc/php-fpm.d/www.conf
user = nginx               39行
group = nginx               41行
pm.status_path = /php-fpm-status  #php-fpm的状态监测页,121行  也可以是/status
ping.path = /ping      #ping 接口,存活状态是否ok,133行
ping.response = pong    #响应内容pong,138行

3. 启动php-fpm

[root@zabbix-agent ~]# systemctl start php-fpm

4. 安装nginx并修改nginx配置文件,将以下的内容添加到配置文件

[root@zabbix-agent ~]# yum -y install nginx
[root@zabbix-agent ~]#cd /etc/nginx
[root@zabbix-agent ~]#rm -rf nginx.conf
[root@zabbix-agent ~]#cp nginx.conf.default nginx.conf
打开php相关的配置,并增加一个PHP的配置
[root@zabbix-agent ~]# vim /etc/nginx/nginx.conf
location ~ \.php$ {root           html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;}
location ~* /(php-fpm-status|ping) {fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $fastcgi_script_name;include        fastcgi_params;access_log off;}

5. 启动nginx

[root@zabbix-agent ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@zabbix-agent ~]# systemctl restart nginx或者nginx -s reload

6.查询

[root@zabbix-agent nginx]# curl 192.168.182.131/php-fpm-status
pool:                 www
process manager:      dynamic
start time:           27/Sep/2020:16:46:32 +0800
start since:          5
accepted conn:        1
listen queue:         0
max listen queue:     0
listen queue len:     128
idle processes:       4
active processes:     1
total processes:      5
max active processes: 1
max children reached: 0
slow requests:        0
注意:
pool – fpm池子名称,大多数为www
process manager – 进程管理方式,值:static, dynamic or ondemand. dynamic
start time – 启动日期,如果reload了php-fpm,时间会更新
start since – 运行时长
accepted conn – 当前池子接受的请求数
listen queue – 请求等待队列,如果这个值不为0,要增加FPM的进程数量
max listen queue – 请求等待队列最高的数量
listen queue len – socket等待队列长度
idle processes – 空闲进程数量
active processes – 活跃进程数量
total processes – 总进程数量
max active processes – 最大的活跃进程数量(FPM启动开始算)
max children reached - 进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量太小了,请改大一点。
slow requests – 启用了php-fpm slow-log,缓慢请求的数量

7. 设置用户参数

[root@zabbix-agent nginx]# cd /etc/zabbix/zabbix_agentd.d/
[root@zabbix-agent zabbix_agentd.d]# vim php.conf
UserParameter=php_status[*],curl -s http://192.168.182.131/php-fpm-status | awk '/$1/{print $$NF}'
[root@zabbix-agent zabbix_agentd.d]# systemctl restart zabbix-agent

8. 在zabbix-server 端,查询使用这个用户参数的key

[root@zabbix-server ~]# zabbix_get -s 192.168.182.131 -p 10050 -k "php_status[idle]"
4
[root@zabbix-server ~]# zabbix_get -s 192.168.182.131 -p 10050 -k "php_status[max active]"
1

9. zabbix-server的web界面展示

可以直接使用模板:
http://www.blackmed.cn/zabbix/xingdian-export_templates-PHP.xml
也可以直接去进行监控项的创建

四:微信报警

创建报警媒介---创建用户---用户关联报警媒介---创建动作
企业微信部署---下载企业微信---创建企业---创建企业应用

1. 注册企业微信


注册完成企业微信后,自己创建一个企业,并邀请员工到企业

2.创建部门,并在部门内添加员工

3.创建企业应用

4.搜集部门ID企业ID应用ID和秘钥等信息(修改到下面的脚本中)

部门id=2
机器人应用id= 1000003
机器人Secret= hFHyq-dtbMGYaufaYT6fkcWW5BUp22krs_iXZRjaWRM
企业ID:ww59af41a61e5bfcf2
帐号:ChenShuai

5. 准备微信脚本

把脚本放在zabbix-server服务器上,/usr/lib/zabbix/alertscripts/wechat.py#!/usr/bin/env python
# -*- coding: utf-8 -*-import urllib,urllib2,json
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
class WeChat(object):__token_id = ''# init attributedef __init__(self,url):self.__url = url.rstrip('/')self.__corpid = 'wwf59d011ead30f194'(修改企业id)self.__secret = '4kO-TrciubxGuKfJG-WsynbGDhnjRwGX3LdZWSGN'(修改机器人secret)# Get TokenIDdef authID(self):params = {'corpid':self.__corpid, 'corpsecret':self.__secret}data = urllib.urlencode(params)content = self.getToken(data)try:self.__token_id = content['access_token']# print content['access_token']except KeyError:raise KeyError# Establish a connectiondef getToken(self,data,url_prefix='/'):url = self.__url + url_prefix + 'gettoken?'try:response = urllib2.Request(url + data)except KeyError:raise KeyErrorresult = urllib2.urlopen(response)content = json.loads(result.read())return content# Get sendmessage urldef postData(self,data,url_prefix='/'):url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_idrequest = urllib2.Request(url,data)try:result = urllib2.urlopen(request)except urllib2.HTTPError as e:if hasattr(e,'reason'):print 'reason',e.reasonelif hasattr(e,'code'):print 'code',e.codereturn 0else:content = json.loads(result.read())result.close()return content# send messagedef sendMessage(self,touser,message):self.authID()data = json.dumps({'touser':touser,'toparty':11,(修改部门id)'msgtype':"text",'agentid':"1000002",(修改机器人应用id)'text':{'content':message},'safe':"0"},ensure_ascii=False)response = self.postData(data)print responseif __name__ == '__main__':a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')a.sendMessage(sys.argv[1],sys.argv[3])

6. 修改权限

[root@xingdian ~]# chmod 777 /usr/lib/zabbix/alertscripts/wechat.py
[root@xingdian ~]# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/wechat.py

7. 测试脚本

[root@xingdian ~]# /usr/lib/zabbix/alertscripts/wechat.py ZhuangYao test test
{u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok. Warning: wrong json format. '}
注意:ZhuangYao是在企业微信中的用户名,手机上收到信息说明脚本正常使用。

8.在zabbix-server的dashborad界面上创建报警媒介


名称:wechat
类型:脚本
脚本名称:wechat.py
脚本参数:{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}

9.在管理员中户中添加报警媒介



类型:选择创建好的wechat
收件人:在企业微信中用户名

10. 创建动作,微信报警


名称:自定义
条件:使用触发器


定义操作

邮件内容:
默认接收人:故障{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}
注意:修改触发器的值查看报警信息

一:企业微信流程总结
1.下载安装(手机版)
2.注册账户,并创建一个企业(企业的名字自定义),给企业添加员工
3.找到我的企业===>记录企业ID:wwf59d011ead30f194
4.创建部门===>记录部门ID: 16
5.创建应用===>记录应用ID: 1000011
Secret:EPwfje0H-OiXwIs-W60Vtw-bh_IkabK0VhSIzxDpoCU主机群组  主机  监控项  触发器  报警媒介  用户 动作  (企业微信)1.创建报警媒介
2.创建用户(并不是必须要创建,可以直接使用管理员账户 Admin 对应用户组),让这个关于关联报警媒介,添加收件人
3.创建动作,动作要关联触发器(操作(用户和组已经对应),恢复操作,
更新操作)
模拟报警的产生(验证企业微信是否可以收到报警)

五:邮件报警

1.在zabbix-server端安装软件:

mailx  (yum -y install mailx)

2.配置 /etc/mail.rc

(在最后添加)注意修改自己的相关信息,复制不能有空格
set from= chen1366526727@163.com  (邮箱地址)
set smtp=smtp.163.com SMTP服务器
set smtp-auth-user= chen1366526727@163.com  (邮箱地址)
set smtp-auth-password= KGURAWFHASVHSNXY  (邮箱地址授权密码)
set smtp-auth=login

3.测试

方式1:mailx -s "邮件标题" 收件箱Email < 包含正文的文件
[root@zabbix-server ~]# mailx -s "ceshi" chen1366526727@163.com  < /etc/passwd
方式2:cat 包含正文的文件 | mailx -s "邮件标题" 收件箱Email
[root@zabbix-server ~]# cat /etc/passwd |mailx -s "hello" chen1366526727@163.com
方式3:echo "正文内容" | mailx -s "邮件标题" 收件箱Email
[root@zabbix-server ~]# echo "word" | mailx -s "haha" chen1366526727@163.com

4.在zabbix-server上创建发送脚本(sendmail.sh)网易邮箱的脚本

[root@zabbix-server]# cd /usr/lib/zabbix/alertscripts
[root@zabbix-server alertscripts]# vim sendmail.sh
echo “$3” |sed s/’\r’//g | mailx -s  “$2”  $1
$3是文件的正文内容,sed替换,将’\r’替换为空,$2是邮件主题,$1是邮箱地址
[root@zabbix-server alertscripts]# chmod 777 sendmail.sh
[root@zabbix-server alertscripts]# chown zabbix.zabbix sendmail.sh

5.在zabbix-server的web界面创建对应的报警媒介(跟企业微信一样,就是脚本换了)

6.创建动作,让动作关联触发器(触发器需要事先创建)


7.创建用户,让用户关联报警媒介(默认我们admin用户)

8.根据触发器对应的监控项模拟故障产生

Systemctl  stop nginx

六,zabbix关联睿象云,电话报警

1、免费注册一个睿象云账号,首次注册会送几次免费语音通话此数。

2、选择zabbix



[root@localhost ~]# cd /usr/lib/zabbix/alertscripts/
[root@localhost alertscripts]# wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-4.0.1.tar.gz
[root@localhost alertscripts]# tar -xzf ca_zabbix_release-4.0.1.tar.gz
[root@localhost alertscripts]# cd cloudalert/bin
[root@localhost bin]# bash install.sh 8879731ca7cb49878d22f646b3040407
请输入Zabbix管理地址:http://192.168.242.136/zabbix
Check connection success!
请输入Zabbix管理员账号:Admin
请输入Zabbix管理员密码:zabbix
...
Create new action success!
Install zabbix agent success!
关联成功了,会在zabbix-web自动创建   用户:Cloud Alert User 动作:Cloud Alert Action
关联成功后我们什么都不用做,模拟报警产生,会自动通过睿象云电话通知我们报警产生

3、创建分派策略和通知策略



我们随便创建一个监控项,触发器,模拟报警产生,就会有电话通知我们产生了报警。

六:自动发现(Network Discovery )

1.介绍

网络发现:zabbix server扫描指定网络范围内的主机;
网络发现是zabbix 最具特色的功能之一,它能够根据用户事先定义的规则自动添加监控的
主机或服务等。

2. 优点

加快Zabbix部署
简化管理
在快速变化的环境中使用Zabbix,而不需要过度管理

3. 发现方式

ip地址范围;
可用服务(ftp, ssh, http, ...)
zabbix_agent的响应;

4. 网络发现通常包含两个阶段

① discovery:
Zabbix定期扫描网络发现规则中定义的IP范围;
② actions:网络发现中的事件可以触发action,从而自动执行指定的操作,
把discvery events当作前提条件;
添加/删除主机
启用/禁用host
向组中添加主机
移除组中的主机
从模板链接主机或取消链接

5. 部署自动发现

注意:新机器
① 安装agent 段的包
yum -y install zabbix-agent zabbix-sender
② 设置agent 配置,可以把之前设置好的none1的配置传过来
vim /etc/zabbix/zabbix_agentd.conf
Hostname=chenshuai #只需修改hostname
zabbix用户提权
[root@zabbix-agent-none2 ~]# visudo  #修改sudo的配置,添加如下信息
#Defaults !visiblepw
root    ALL=(ALL)       ALL         92行
zabbix  ALL=(ALL)  NOPASSWD: ALL      93行
重启服务
[root@zabbix-agent-none2 ~]# systemctl restart zabbix-agent

设置自动发现规则discovery

配置--自动发现--创建自动发现规则
注释:在zabbix-server端
[root@zabbix-server ~]#zabbix_get -s 192.168.182.131 -p 10050 -k "system.hostname"
zabbix-agent

6.自动发现成功(在检测中查看)

7. 设置自动发现discovery 的动作action

① 设置A条件,自动发现规则=test net
② 设置B条件,自动发现状态=up

8. 添加主机到监控

c) 配置action 完成,默认是disabled 停用的,如果不是停用的,也需要
再次选择启动,激活一下。
d) 启用动作,查看效果,确实已经生效,添加主机成功,模板链接成功
注意:
如果自己需要添加的主机已经扫描添加完成,就可以关闭网络扫描了,因为
太耗资源。

9,部署总结

1.在新服务器上部署(安装agent sender;agent配置)
2.在zabbix-server的web界面添加自动发现规则
3.验证,在检测-自动发现中查看是否发现新主机
利用自动发现功能,实现对主机的监控(利用自动发现发现的主机)
zabbix-server的web界面配置
1.模板: 创建一个空白模板(添加监控项,触发器,图形...)
A:关联已有的模板
B:手动在该模板中添加数据
2动作:条件 (IP地址,自动发现检测) 操作:主机 主机群组 关联模板
注意:在新的服务器(被监控的服务器)上安装nginx(因为监控项中有对80端口的监控),安装完成后启动。总结 (zabbix的监控  监控内容的获取)https://www.zabbix.com/documentation/5.0/zh/manual
基本监控流程:
主机群组--主机(自动发现)--监控项(监控项模板[官方文档https://www.zabbix.com/]、自定义key[zabbix-agent配置])--触发器[官方文档https://www.zabbix.com/]--图形
模板:系统自带   手动创建
(平时也可使用模板对主机进行监控)
告警机制:
主机群组--主机--监控项--触发器--报警媒介--用户--动作  (顺序可以变化,只要做到相互关联即可)
企业微信
邮件报警
电话报警
Trigger actions:配置告警,当触发触发器的时候,通过配置动作,告知我们管理员,使用那种媒介都可以
Discovery actions:自动发现功能相关联 配置了自动发现后,可以使用该动作,来完成发现主机后的操作(发送消息、添加主机、添加主机群组、发送命令、关联模板)自动发现:
主机群组--自动发现主机--模板--动作(Discovery actions)--报警媒介--用户--动作(Trigger actions)  能够将自动发现的主机发送故障后,通知管理员
监控的内容: 监控访问延迟 监控服务存活状态(nginx、php、tomcat、es、kibana、mysql....) cpu mem disk  监控mysql主从状态 disk I/O .....
在企业中我们只监控有意义的数据,(怎样去获取监控内容)因为有自定义key
【腾讯文档】zabbix监控数据库mysql实战 https://docs.qq.com/doc/DSmNRQU1qUFlPVlJw
【腾讯文档】zabbix监控磁盘性能实战 https://docs.qq.com/doc/DSkFGTG9Gd3d1TUtv

zabbix监控系统进阶专题篇(企业微信报警,邮箱报警,电话报警,监控数据库,监控磁盘性能)相关推荐

  1. Zabbix 系统监控(三)VMware 虚拟平台监控、邮件告警、企业微信告警配置

    Vmware 虚拟平台监控.邮件告警.企业微信告警配置 8 Vmware 虚拟平台监控 阅读 zabbix 官方文档,官方提供了 Vmware 虚拟机监控模板,并对模板进行了解释说明,但未对相应名词做 ...

  2. Linux Zabbix——企业监控基于钉钉、企业微信实现自动化报警

    zabbix基于企业微信.钉钉群聊机器人实现自动化报警 在企业中,我们使用zabbix去进行监控,需要时刻关注应用服务的运行情况,这就少不了实时报警,而使用即时通讯软件报警相对就很方便. 监控环境准备 ...

  3. 网站首页被篡改? 看我使用PhantomJS利器实现网站自动监控修改并截图发送企业微信预警

    欢迎关注「WeiyiGeek」 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习! 涉及 网络安全运维.应用开发.物联网IOT.学习路径 .个人感悟 等知识 "  花开堪折直须 ...

  4. 机房监控系统解说--发电机篇

    一般的大中型企业因为需要办公的人数较多,内部数据交换频繁,办公设备也比较多所 以通常都会建有一个独立的机房,用于支撑企业办公设备正常运作.机房里面一般都会有各种电源.配线.服务器.空调等各种设备.都说 ...

  5. 机房监控系统解说—防火墙篇

    (图片来源网络) 本文由51cto博客作者笔名李山原创未经授权请勿转载,如有需要请联系18123660262 一般的大中型企业因为需要办公的人数较多,内部数据交换频繁,办公设备也比较多 以通常都会建有 ...

  6. Prometheus监控(三)—— 钉钉和企业微信告警

    一.prometheus 实现钉钉和企业微信告警 基础流程 1.1 钉钉通知 altermanager基础设置可以参照: https://editor.csdn.net/md/?articleId=1 ...

  7. 机房监控系统解说---GS篇

    一般的大中型企业因为需要办公的人数较多,内部数据交换频繁,办公设备也比较多 以通常都会建有一个独立的机房,用于支撑企业办公设备正常运作.机房里面一般都会有各种电源.配线.服务器.空调等各种设备.都说机 ...

  8. Prometheus监控系列-- 进阶阶段 | 高级操作 | 配合Grafana | 邮箱报警 | 参数说明

    Prometheus zibbix Zabbix 组件 prometheus 数据模型 promethues 安装 配置yum源 环境部署与服务启动 安装prometheus管理 监控node节点安装 ...

  9. 【余压监控系统】实时性、数字化、智能化,自动化,连续动态监控

    余压监控系统在某高层住宅的应用方案 安科瑞 崔远航 摘要 本文介绍了余压监控系统的基本架构和功能,结合某高层住宅建设实例分析了高层民用建筑中设置此系统的优点与必要性,总结了余压监控系统的功能用于高层建 ...

最新文章

  1. 关于Windows Phone 7开发工具离线安装包
  2. linux对2k屏幕,(转)Linux中的screen命令使用
  3. 如何安装MiniGUI 3.0在Linux PC
  4. SQLite移植手记1
  5. 《编译与反编译技术》—第1章1.7节C语言程序的编译流程
  6. [Python]小甲鱼Python视频第026课(字典:当索引不好用时2)课后题及参考解答
  7. python3.6字典有序_为什么Python 3.6以后字典有序并且效率更高?
  8. ubantu实现linux命令的实验_linux 基础知识
  9. 【重点】Batch Normalization的诅咒
  10. 利用Python下载网络小说并保存到本地文件
  11. 这个世界是怎么了?做商业软件的怎么越来越流氓了?
  12. 吉首大学期末计算机考试,吉首大学微机原理期末考试试卷.doc
  13. 5月25日------疯狂猜成语-----四周第七次站立会议 参会人员:杨霏,袁雪,胡潇丹,郭林林,尹亚男,赵静娜...
  14. neo4j 入门例子
  15. 如何用vba做答题、抽点类ppt
  16. MasterCAM螺旋线的两种画法:螺旋线命令和插件方法
  17. 使用哈希函数:H(k)=3k MOD 11,并采用链地址法处理冲突。试对关键字序列(22,41,53,46,30,13,01,67)构造哈希表,求等概率情况下查找成功的查找长度,并设计构造哈希表
  18. django的优缺点总结 - Python Web开发面试必备
  19. 能解开assetbundle格式资源的UnityStudio工具
  20. 百度云心里的声音加长版

热门文章

  1. 广交会创建直播间注意事项丨汇信外贸软件
  2. 【git】eclipse使用git的过程中的问题,提示rejected - non-fast-forward错误的解决办法
  3. tp5:为什么find()出来的数据有时候可以用toArray() 有时候会报错?
  4. 51单片机两只老虎 c语言,基于51单片机做音乐盒(两只老虎)
  5. mybatis的错误:Failed to load ApplicationContext
  6. FW:平凡(trivial)和非平凡(non-trivial)_拔剑-浆糊的传说_新浪博客
  7. blackjack算法java_[CareerCup] 8.1 Implement Blackjack 实现21点纸牌
  8. RL(Chapter 5): Blackjack (二十一点)
  9. 5款国产ARM芯片(对标stm32f103c8t6)测试评估
  10. QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之01物联网模组简介