为什么要监控

  • 运维的职责
    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界面的,提供分布式系统监视以及网络监视功能的企业级的开源解决方案

官网:http://www.zabbix.com

已经有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页面中操作

  1. 创建模板:填好名称、群组,就可以保存了
  2. 创建应用集:给监控项(item)分类
    1. 添加一个user,表示用户相关的
  3. 创建监控项:监控的内容
    1. 点击监控项---创建监控项---填写内容(历史时长短一点,趋势时长可以长到365d)
  4. 创建触发器:当监控项获取到的值 达到一定条件时 就触发报警
    1. 名称要表达清楚报警内容  login.user bigger than 3
    2. 表达式要 选择好 {fist_model_web:login.user.last()}>3 这是选择后自动生成的
    3. 点击添加
  5. 创建图形
    1. 在选中监控项后,的功能下拉框选最大值
    2. 绘图风格选先
    3. 其他随意
  6. 主机关联模板
    1. 配置---主机---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全网监控的更多相关文章

  1. 五 Zabbix全网监控

    监控的作用 我们的职责   1.保障企业数据的安全可靠.   2.为客户提供7*24小时服务.   3.不断提升用户的体验.在关键时刻,提前提醒我们服务器要出问题了当出问题之后,可以便于找到问题的根源 ...

  2. 网站集群架构(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken

    前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高 ...

  3. Zabbix自定义监控8080端口的连接数

    Zabbix自定义监控8080端口的连接数 一 zabbix自定义监控实现思路 实际上我们要想使用zabbix来监控一些服务的原理很简单,步骤分别是:1.写一个脚本用于获取待监控服务的一些状态信息2. ...

  4. 基于Zabbix IPMI监控服务器硬件状况

    基于Zabbix IPMI监控服务器硬件状况 zabbix ipmi 公司有多个分部,且机房没有专业值班,机房等级不够.在这种情况下,又想实时监控机房环境,于是使用IPMI方式来达到目的.由于之前已经 ...

  5. LNMP+zabbix分布式监控搭建及版本升级

    LNMP+zabbix分布式监控搭建需要组件:gcc gcc-c++ openssl* pcre pcre-devel gd gd-devel libjpeg-devel libpng-devel l ...

  6. zabbix服务器监控suse系统教程

    zabbix服务器监控suse系统教程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 花了近一个星期才学会了如何监控window和linux主机的基本信息以及报价情况(我已经把笔记 ...

  7. zabbix如何监控WEB应用性能

    HTTP服务目前最流行的互联网应用之一,如何监控服务的健康状态对系统运维来说至关重要.   Zabbix本身提供了对WEB应用程序的监控,比如监控WEB程序的Download Speed,Respon ...

  8. 第3章Zabbix完整监控

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; t ...

  9. zabbix添加自定义监控项

    zabbix添加自定义监控项 author:headsen  chen   2017-10-16  17:23:17 个人原创,转载请注明作者,出处,否则依法追究法律责任 主机端配置: 首先安装好za ...

随机推荐

  1. STL中的Set用法(详+转)

    set是STL中一种标准关联容器(vector,list,string,deque都是序列容器,而set,multiset,map,multimap是标准关联容器),它底层使用平衡的搜索树——红黑树实 ...

  2. vue-cli中安装方法

    源:http://www.cnblogs.com/jn1223/p/6656956.html vue-cli中安装方法   vue-cli脚手架模板是基于node下的npm来完成安装的所以首先需要安装 ...

  3. JS实现数组去重方法整理

    前言 我们先来看下面的例子,当然来源与网络,地址<删除数组中多个不连续的数组元素的正确姿势> 我们现在将数组中所有的‘ a’ 元素删除: var arr = ['a', 'a', 'b', ...

  4. TFS 2017 持续集成速记

    VS2017许多激动人 心的功能,升级!   TFS2017也升级,不支持SQL2012,升级!不过貌似开发版不能升级,好吧,开发版升2014企业版! 2017据说不支持XAML生成了,但后台菜单中还 ...

  5. xml可视化编辑器

    ——业内首创的在线可视化XML结构化数据编辑方法 Boxth Visual XML Web Editor (Boxth XWE) 是专为在线处理XML结构化数据而设计的在线(Web).可视化(WYSW ...

  6. Git 结合Git使用Bitbucket进行代码版本管理流程规范与实践

    结合Git使用Bitbucket进行代码版本管理流程规范与实践   By:授客 QQ:1033553122   目录 目录 1 一. 测试环境 2 二. 新建项目 2 三. 新建公有版本库 3 四. ...

  7. Android为TV端助力 内存溢出与内存泄露

    内存溢出就是软件运行需要的内存,超出了java虚拟机给他分配的可用的最大内存 内存泄露就是在缓存图片文字等等的时候,没有关闭流所导致的内存泄露

  8. Android TextView自动换行、排列错乱问题及解决

    解决之前层次不齐的排版截图,如下图:               解决之后的整齐排版截图,如下图:        今天忽然发现android项目中的文字排版参差不齐的情况非常严重,不得不想办法解决一下 ...

  9. Django 登录验证-自动重定向到登录页

    Web项目有些场景需要做用户登录验证,以便访问不同页面. 方法一:login_required装饰器 适用于函数视图. from django.contrib.auth.decorators impo ...

  10. SQL Server如何查找表名或列名中包含空格的表和列

    最近发现一个数据库中的某个表有个字段名后面包含了一个空格,这个空格引起了一些小问题,一般出现这种情况,是因为创建对象时,使用双引号或双括号的时候,由于粗心或手误多了一个空格,如下简单案例所示: USE ...