zabbix全网监控
为什么要监控
- 运维的职责
1.保障企业数据的安全可靠。
2.为客户提供7*24小时服务。
3.不断提升用户的体验。 - 在关键时刻,提前提醒我们服务器要出问题了
- 当出问题之后,可以便于找到问题的根源
拿到公司服务器的管理权之后,
第一件事,备份
第二件事,监控
数据有故障了,服务有问题了,一些内容挂掉了,比如web服务器,或者是硬件的服务器,raid,磁盘有故障了也会报警,用户访问网站,感觉慢了,也可以获得相应的提示
这是一个非常重要的部分
你们公司监控是怎么做的-面试题
- OSI/ISO7层协议进行回答
- 业务流程、用户访问网站的流程进行补充
监控工具
mrtg 流量监控出图
nagios 监控
cacti 流量监控出图
zabbix 监控+出图,所有监控范畴,都可以整合到Zabbix中。
- 硬件监控:Zabbix IPMI Interface
- 系统监控:Zabbix Agent Interface
- Java监控:Zabbix JMX Interface
- 网络设备监控:Zabbix SNMP Interface
- 应用服务监控:Zabbix Agent UserParameter
- MySQL数据库监控:percona-monitoring-plulgins
- URL监控:Zabbix Web 监控
Zabbix简介
zabbix是一个基于WEB界面的,提供分布式系统监视以及网络监视功能的企业级的开源解决方案
已经有20年历史,
web界面是基于PHP的,所以需要准备LNMP或者LAMP的环境
软件是c语言的
zabbix的架构图
zabbix_proxy 在大型架构中作为代理使用,将分部服务器的情况汇总发送到总部
zabbix安装以及部署
先做环境检查
从CentOS7模板机全新克隆一台新主机
IP规划为10.0.0.61/172.16.1.61,主机名为m01
注册账号:http://c.onealert.com/console//ucid/regist.jsp
账号用于接受报警
安装zabbix服务端
本次使用yum安装,编译安装留为作业
官网---download
官方安装说明中可以找到下面这些信息和安装步骤
版本号中的LTS指的是长时间维护版本
或者找zabbix官方源repo.zabbix.com----找到有release的,复制链接地址
# 安装Zabbix官方源
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
yum makecahe fast # 快点缓存
# 安装zabbix,httpd,php
yum install zabbix-server-mysql zabbix-web-mysql httpd php -y
yum安装数据库
数据库因为用的是centos7,MySQL是正常装不上的,需要配置MySQL源或者二进制安装
所以,偷懒安装mariadb(本质上基本和mysql是一样的)
# 安装mariadb
yum -y install mariadb-server
systemctl start mariadb.service
# 创建数据库,权限
mysql
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
创建用户的时候,不用flush跟新信息,跟新只在修改用户信息的时候
exit
# 导入数据库sql文件,官方安装说明中可以找到这些信息和安装步骤
zcat /usr/share/doc/zabbix-server-mysql-3.0.25/create.sql.gz|mysql -uzabbix -pzabbix zabbix
zcat 命令是显示gz压缩包内容的软件
请根据自己的zabbix软件版本 修改zcat的文件目录
配置zabbix server
# 配置zabbix Server连接mysql
sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
# 修改apache-php配置,因为我们是自动安装,他会自动创建一个虚拟主机
# 我们修改下配置文件,添加时区,否则后面打开web页面安装zabbix的时候会报错
sed -i.ori '18a php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf
启动zabbix server
systemctl start zabbix-server # 启动zabbix
systemctl start httpd # 启动apache
网页配置
浏览器中访问10.0.0.61/zabbix 。记得用自己的IP
进入页面按照指令操作。
默认的账号Admin密码zabbix
进入主页,单击右上角的小人,修改显示语言和密码
zabbix开始监控状态-安装配置zabbix-agent
zabbix客户端就是zabbix agent
国内源:搜索
选择yum源的时候注意版本号,有的是centos6有的是7
可以直接安装agent,但是有一些依赖可能装不上
选择release最为稳妥
所有需要被监控的服务器都要执行下面步骤,下面以在m01和cache01安装客户端为例:
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm yum install zabbix-agent sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf systemctl start zabbix-agent.service
客户端测试
此时,还不能在web页面张查看监控状态
需要先在客户端测试确认一下数据,需要用到zabbix-get
# 只能在服务端m01操作,需要使用-s执行相应客户端IP
yum install zabbix-get -y
# agent.ping 表示是否在线 1表示在线
[root@m01 doc]# zabbix_get -s 172.16.1.61 -p 10050 -k 'agent.ping'
1
zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"
zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"
web页面上怎么看?
配置----主机----将 zabbix server 启用--- 当可用性 都变成绿色,就表名监控上线
等待......如何加快(ping 主机名 可以解析)
等了很久,看一下日志吧...(/var/log/zabbix/zabbix_server.log)
我们等来了一个错误,意思是,客户端无法访问服务端,是监控IP设置的问题
点击Zabbix server 将 agent代理程序的接口 这一项下面的 ip地址改为172.16.1.61,跟新保存
过一会就变成绿色了,就可以查看监控中---最新数据、图形等
因为中文字体的原因,有些地方会乱码,改成英文就行了
解决乱码问题,单独安装字体就可以了,不断地尝试,发现某个字体可用
yum -y install wqy-microhei-fonts
将可用字体,复制到zabbix下
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
添加一台被监控服务器主机
现在web01服务器上安装zabbix agent 客户端
清华或者阿里软件镜像站------找到zabbix----找到版本-----选择rhel----选择6(web01是centos6的系统)----选择64位----找到release----复制链接地址
在Linux中加入yum源
[root@web01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/6/x86_64/zabbix-release-3.4-1.el6.noarch.rpm [root@web01 ~]# yum install zabbix-agent -y 以后这些操作要交给kickstart和cobbler,装完系统就装上zabbix-agent
#修改一下服务端的IP地址
第97行 Server = 172.16.1.61
或者使用sed -i.ori ''
sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
#将zabbix 设置为 开机自启动,并重启
[root@web01 ~]# chkconfig zabbix-agent on
[root@web01 ~]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent: [FAILED]
Starting Zabbix agent: [ OK ]
在m01 zabbix的服务端上检查,这些服务都是要启动的,而且要开机自启动
[root@m01 doc]# systemctl is-active httpd.service mariadb.service zabbix-server.service zabbix-agent.service
active
active
active
active
[root@m01 doc]# systemctl is-enable httpd.service mariadb.service zabbix-server.service zabbix-agent.service
Unknown operation 'is-enable'.
[root@m01 doc]# systemctl is-enabled httpd.service mariadb.service zabbix-server.service zabbix-agent.service
disabled
disabled
disabled
enabled
[root@m01 doc]# systemctl enable httpd.service mariadb.service zabbix-server.service zabbix-agent.service
[root@m01 doc]# systemctl is-enabled httpd.service mariadb.service zabbix-server.service zabbix-agent.service
enabled
enabled
enabled
enabled
在服务端检查一下是不是在线,可以连接
[root@m01 doc]# zabbix_get -s 172.16.1.7 -p 10050 -k 'agent.ping'
1
在web界面中 配置----主机----创建主机
主机名称: 主机名 可见名称: 随意设置,知道意思就行, 群组: 最好设置一个群组,方便批量管理 agent代理程序的接口: 172.16.1.7 端口号不用改 下面的SNMP、JMX、IPMI暂时不用管
接下来 点击 模板选项卡
不用点击选择,在搜索框中输入linux ,选择Template OS linux-----点击小的添加----点击添加
保证在m01上能够解析web01 的名字 ----- 172.16.1.7 web01
注:实际做的时候,我没有在host中解析web01 也连上了....后面有问题再说吧,
继续添加一台服务器cache01
都连接上了
如何快速添加主机及键值
随便选择一个,然后最下面有一个克隆,修改一下主机名和IP
模板中有什么呢?
可以查看监控项中的键值,就是zabbix_get 命令中的-k参数 中的k值,是获取数据的本质
自定义创建键值
也叫作自定义监控,在模板提供的键值中没有我们需要的数据时,我们要自己做键值
zabbix自带模板Template OS Linux (Template App Zabbix Agent)
提供CPU、内存、磁盘、网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项。 需求:服务器登录人数不超过3人,超过3人报警
1、获取登陆服务器人数
[root@web01 ~]# who
root pts/0 2019-03-16 15:49 (10.0.0.253)
2、统计
[root@web01 ~]# who|wc -l
1
3、将命令放在/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 中
这是用来放置用户自定义监控项的,用户可以在这个目录中写自己的.conf文件
4、在agent注册key
# 语法:key名字要唯一,多个key以行为分割
UserParameter=<key>,<shell command>
UserParameter=login-user,who|wc -l
UserParameter=login-user,/bin/sh /server/scripts/login.sh # 执行脚本 # cd /etc/zabbix/zabbix_agentd.d/
# vim userparameter_login.conf
UserParameter=login-user,who|wc -l
# 修改配置文件要重启
systemctl restart zabbix-agent.service
centos6中重启
/etc/init.d/zabbix-agent restart
# 在server检测
# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"
自定义key能被server和agent认可
WEB页面中操作
- 创建模板:填好名称、群组,就可以保存了
- 创建应用集:给监控项(item)分类
- 添加一个user,表示用户相关的
- 创建监控项:监控的内容
- 点击监控项---创建监控项---填写内容(历史时长短一点,趋势时长可以长到365d)
- 创建触发器:当监控项获取到的值 达到一定条件时 就触发报警
- 名称要表达清楚报警内容 login.user bigger than 3
- 表达式要 选择好 {fist_model_web:login.user.last()}>3 这是选择后自动生成的
- 点击添加
- 创建图形
- 在选中监控项后,的功能下拉框选最大值
- 绘图风格选先
- 其他随意
- 主机关联模板
- 配置---主机---web01---模板---添加之前做好的模板
处理报警:在设置的触发器中有一项允许手动关闭,在收到报警后,我们可以在确认事件中关闭报警
添加报警
报警也可以在web中设置,就在主页小人处
我们还可以通过网站设置报警,然后等着报警信息,就不用一直盯着页面了
登陆网站:http://www.onealert.com/index.html 注册账号 报警的本质:
什么时候发邮件:当状态改变的时候才会发邮件
好--坏
坏--好
如何查找安装报警脚本的路径?
[root@m01 doc]# grep -i alertscript /etc/zabbix/zabbix_server.conf
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscript
安装报警插件,下载地址和安装命令都是报警网站提供的
[root@m01 alertscripts]# wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.2.0.tar.gz
...下载过程略...
[root@m01 alertscripts]# tar -zxf oneitsm_zabbix_release-1.2.0.tar.gz
[root@m01 alertscripts]# cd oneitsm/bin
[root@m01 bin]# bash install.sh 42dd9ef9-cc1c-8def-e95a-d20526a5341f
./log.sh: line 6: /usr/lib/zabbix/alertscripts/oneitsm/bin/oneitsm.conf: No such file or directory
start to create config file...
Zabbix管理地址: 172.16.1.61
Zabbix访问失败,请重新输入.
Zabbix管理地址: 10.0.0.61
Zabbix访问失败,请重新输入.
Zabbix管理地址: 10.0.0.61/zabbix # 地址 zabbix的WEB页面的地址
Zabbix管理员账号: Admin
Zabbix管理员密码:
start to auth by zabbix admin user and password...
...安装过程略...
create action success!
安装成功.
登陆zabbix的WEB界面配置
管理---报警媒介类型---已经配置好了!!
在onealert的配置下中有一个分配策略---就是报警了分配给谁
聚合图形
同时看几个数据的图形
聚合图形中还有幻灯片演示
现有聚合图形,才能创建幻灯片
https://share.zabbix.com/中有许多别人创建好的模板
https://github.com/zhangyao8/zabbix-community-repos 模板共享
全网监控项目说明
考试目标:使用zabbix将期中架构所有集群监控 具体内容:
一、硬件、系统、网络监控
所有集群节点(所有虚拟机)都监控上 二、应用服务监控
1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;
2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;
3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,
如果有其他更佳方案可以说明;
4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;
5. 监控URL地址来更精确的监控我们的网站运行正常;
6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。
7. 监控Nginx的7种连接状态。
项目一的模板都有
项目二中的端口、进程。可以进入任意模板查看,都有
项目二中的第5个检测URL,自定义web检测
创建web场景
项目二中的第6个检测端口+进程
项目二中的第7个Nginx的7中链接状态,用状态模块进行配置,
1、写7行(简单粗暴的方法)
2、写脚本
自动发现与自动注册
自动发现:zabbix Server主动发现所有客户端,然后将客户端登记自己的小本本上,
缺点zabbix server压力山大(网段大,客户端多),时间消耗多。 自动注册:zabbix agent主动到zabbix Server上报到,登记;
缺点agent有可能找不到Server(配置出错) 被动模式:默认,都是站在agent的立场上说话,agent被server抓取数据
主动模式:都是站在agent的立场上说话,agent主动的将数据发送给Server 两种模式都是在agent上的配置文件配置的
自动发现(被动模式)-服务器少的时候使用
第一步:zabbix Server安装完毕 (完成)
第二步:zabbix agent安装完毕,Server=172.16.1.61 (完毕)
第三步:网页上配置自动发现规则
配置---自动发现---新建或者使用已经有的
修改IP范围---172.16.1.1-10,172.16.1.45多个用,号分割
默认本质上使用的是system.uname,也可以添加新的
设置唯一性
更新或者保存,启用
------------------------------------------------------------------------------
配置---动作---事件源选择‘自动发现’---创建或者修改原有的,也可以克隆
其中,新的触发条件可以不写,因为在自动发现中已经设置了
在操作选项卡里面,添加新的动作操作(添加主机和启用主机)
完成后,跟新启用
什么时候算是完成自动发现了呢,在自动发现中显示主机名就算成功了,然后会出现在主机列表中
自动注册(主动模式)
把之前的自动发现关闭
第一步:zabbix Server安装完毕 (完成)
第二步:zabbix agent安装完毕,需要额外增加的配置
vim /etc/zabbix/zabbix_agentd.conf
ServerActive=172.16.1.61
# Hostname=Zabbix server 和下面的HostnameItem配置一个就行
HostnameItem=system.hostname # 定义获取服务器主机名的方式
HostMetadataItem=system.uname # 主机的源数据
systemctl restart zabbix-agent.service
重启centos6的方式/etc/init.d/zabbix-agent restart
netstat -tunlp|grep zabbix 第三步:Server上做hosts解析,解析是在这里发挥作用的
echo "172.16.1.21 cache01" >> /etc/hosts 第四步:网页上配置自动注册
配置----动作---自动注册(事件源)
动作-触发条件 设置 成 主机元数据 似 Linux(手打的)
操作-添加主机---添加到群组---链接到模板
添加
主机没有添加上,等候时间
分布式监控
Zabbix Server -------->Zabbix agent (只能同一个局域网监控) 分布式监控:
a. 分担压力,降低负载
b. 多机房监控
等于是给各个分区的服务器安排了一个领导,层层汇总
环境准备
做好快照 机器准备:
Zabbix Server m01 监控中心
Zabbix Proxy web01 分中心领导
Zabbix Agent web01 web02 客户端
开始操作,将之前的自动发现和自动注册都关闭
第一步:在代理机web01安装zabbix proxy
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm yum -y install zabbix-proxy-mysql 第二步:安装数据库
zabbix proxy也需要数据库,这个数据库不是用于存储监控数据的 只是用于存储配置信息
# 安装数据库
yum -y install mariadb-server
systemctl start mariadb.service #建库 创建用户授权
mysql create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
# 将多余的空的用户删除
drop user “‘@’localhost”;
drop user “‘@’web01”;
# 跟新
flush privileges;
exit # 导入数据库文件
zcat /usr/share/doc/zabbix-proxy-mysql-3.0.13/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy 第三步: 配置zabbix proxy,并在zabbix网页登记
# 配置zabbix proxy连接数据库
sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf
systemctl start zabbix-proxy.service
# 修改Server
sed -i 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_proxy.conf
# 修改hostname,确保这个名字是唯一的,不用web01是因为,web01要给下面的客户端使用
# 这个hostname,一定要能在m01中解析,即最顶端的老大
sed -i 's#Hostname=Zabbix proxy#Hostname=proxy-web01#' /etc/zabbix/zabbix_proxy.conf
将172.16.1.7 web01 proxy-web01 添加在m01的 host文件中
systemctl start zabbix-proxy.service
Centos6中的重启方法/etc/init.d/zabbix-proxy start(第一次启动所以使用的start
### 问题 ###
# 查看zabbix-proxy日志发现,一只连接不上数据库,它连接的的是/var/lib/mysql/mysql.sock
# 在/etc/zabbix/zabbix_proxy.conf中的默认的是/tmp/mysql.sock
# 我们需要将它启动,把配置文件中DBSocket前面的# 删掉
继续重启
第四步:web页面设置
管理---agent代理程序---创建代理
agent代理程序名称:要和 Hostname=proxy-web01 一样
把客户机加上
添加 第五步:客户端agent 指向 proxy
[root@web01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.61
ServerActive=172.16.1.61
[root@web01 ~]# sed -i 's#172.16.1.61#172.16.1.7#g' /etc/zabbix/zabbix_agentd.conf
[root@web01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.7
ServerActive=172.16.1.7
# 文件中的Hostname 要和 页面上的一致,即本服务器的hostname
[root@web01 ~]# systemctl restart zabbix-agent.service
把客户端服务器hosts中的解析本机的去掉??
主机的名字只需要在proxy和m01上解析就可以了
SNMP监控
主要用来监控网络设备,也可以用来监控服务器
只需要在网络设备中开启SNMP监控即可
小结:前面所讲内容全部属于zabbix agent方式监控 当前场景:无法安装agent,通过snmp监控 snmp :simple network manager protocol 简单网络管理协议
# 在m01下,安装软件
yum -y install net-snmp net-snmp-utils 配置snmp
sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf
意思是开启被读取的权限
systemctl start snmpd.service
默认的端口是161
使用SNMP
[root@db01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname # snmpwalk 类似 zabbix_get
# -v 2c 指定使用snmp协议的版本 snmp分为v1 v2 v3
# -c public 指定暗号
# sysname 类似zabbix的key 键值中的键,还有很多其他的 OID
怎么通过snmp协议来监控呢?
在web页面中选择主机。在设置中的SNMP接口处添加
它和agent的区别是不支持自定义监控
模板也要改,把原来的linux os 取消链接。添加Template SNMP OS Linux
还是不行的话,点击原来的先添加再取消并清理,然后保存
补充:web监测的时候,要把SNMP的模板删除,换成之前用的普通的
最核心的部分是监控的体系部分,一定要作为自己的必杀技,搞定
zabbix全网监控的更多相关文章
- 五 Zabbix全网监控
监控的作用 我们的职责 1.保障企业数据的安全可靠. 2.为客户提供7*24小时服务. 3.不断提升用户的体验.在关键时刻,提前提醒我们服务器要出问题了当出问题之后,可以便于找到问题的根源 ...
- 网站集群架构(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken
前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高 ...
- Zabbix自定义监控8080端口的连接数
Zabbix自定义监控8080端口的连接数 一 zabbix自定义监控实现思路 实际上我们要想使用zabbix来监控一些服务的原理很简单,步骤分别是:1.写一个脚本用于获取待监控服务的一些状态信息2. ...
- 基于Zabbix IPMI监控服务器硬件状况
基于Zabbix IPMI监控服务器硬件状况 zabbix ipmi 公司有多个分部,且机房没有专业值班,机房等级不够.在这种情况下,又想实时监控机房环境,于是使用IPMI方式来达到目的.由于之前已经 ...
- LNMP+zabbix分布式监控搭建及版本升级
LNMP+zabbix分布式监控搭建需要组件:gcc gcc-c++ openssl* pcre pcre-devel gd gd-devel libjpeg-devel libpng-devel l ...
- zabbix服务器监控suse系统教程
zabbix服务器监控suse系统教程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 花了近一个星期才学会了如何监控window和linux主机的基本信息以及报价情况(我已经把笔记 ...
- zabbix如何监控WEB应用性能
HTTP服务目前最流行的互联网应用之一,如何监控服务的健康状态对系统运维来说至关重要. Zabbix本身提供了对WEB应用程序的监控,比如监控WEB程序的Download Speed,Respon ...
- 第3章Zabbix完整监控
p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; t ...
- zabbix添加自定义监控项
zabbix添加自定义监控项 author:headsen chen 2017-10-16 17:23:17 个人原创,转载请注明作者,出处,否则依法追究法律责任 主机端配置: 首先安装好za ...
随机推荐
- SVN服务器本地搭建与使用
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6623026.html 使用SVN进行代码管理,需要搭建服务端资源库,然后在使用SVN的电脑安装SVN客户端或 ...
- python面向对象学习(五)多态
多态 多态:不同的 子类对象 调用相同的 父类方法,产生不同的执行结果 多态 可以 增加代码的灵活度 以 继承 和 重写父类方法 为前提 是调用方法的技巧,不会影响到类的内部设计 多态案例练习 需求 ...
- Dom对象的研究
1.逻辑运算 || && ! 1||2 5&&4 !0 || 遇到第一个为true 的数字就终止并返回 && 遇到第一个为false ...
- datetime模块+calendar模块
datetime: """ 模块中的类: datatime 同时有时间和日期 timedelta 主要用于计算时间的跨度 tzinfo 时区相关 time 只关注时间 d ...
- 反向ajax实现原理
留言板显示留言一直刷新,那么实现原理是怎么样的? 一般发送留言就是通过正常的ajax向服务器发送数据,而实时显示留言就需要用到轮询了. 什么是轮询:就是使用定时器,每隔固定的时间从客户端向服务器发起请 ...
- Laravel 系列入门教程(一)【最适合中国人的 Laravel 教程】
热烈庆祝 Laravel 5.5 LTS 发布! 实际上 Laravel 上一个 LTS 选择 5.1 是非常不明智的,因为 5.2 增加了许许多多优秀的特性.现在好了,大家都用最新的长期支持版本 5 ...
- javascript中数组的常用算法深入分析
Array数组是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array是前端必修的功课.本文将给大家详细介绍了javascri ...
- HDU 1527 取石子游戏(威佐夫博弈)
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...
- Android SurfaceView实现跟随手指移动的光标
实例 public class DragSurfaceView extends SurfaceView implements SurfaceHolder.Callback,Runnable{ priv ...
- 三国群英传2修改MOD基础
三国群英传2的MOD制作,必须修改的几个ini文件: SANGO.INI--武将的武器.马匹.物品 THINGS.INI--战场中的对象:兵种.兵种在战场的设定.武器等 TIMES1-4.INI--剧 ...