第15章 Zabbix的搭建

15.1 为什么使用监控服务

  • 对系统实现不间断的监控,实现报警通知(电话,微信,邮件,发短信,手环)
  • 实时反馈系统当前的状态信息
  • 保证服务的可靠安全性
  • 保证业务的稳定运行

15.2 监控服务的实现方式

15.2.1 命令实现

15.2.1.1 查看cpu命令

  • w
  • top
  • htop(yum -y install htop)
  • glances

15.2.1.2 查看系统内存的命令

free

15.2.1.3 查看系统硬盘的命令

df

15.2.1.4 查看系统进程命令

15.2.1.4.1 top
  • us                                用户状态(与用户操作有关系)
  • sy                                系统状态(与内核处理有关系)
  • id(id<20%的时候就要报警)            空闲状态(系统CPU空闲状态比)
15.2.1.4.2 htop

15.2.1.5 查看系统负载命令

uptime                                监控系统启动时间的信息命令

15.2.1.6 查看网络信息命令

ifconfig/route/glances/iftop/nethogs

15.2.1.7 查看网络连接命令

netstat

15.2.1.8 查看磁盘读写命令

iostat/iotop

15.2.1.9 查看硬件信息命令

vmstat

15.2.2 脚本实现

使用脚本+定时任务来进行

15.2.3 zabbix实现

安装zabbix客户端来实现

15.3 监控服务的软件部署

15.3.1 更新yum源(LTS是稳定源)

15.3.1.1 4.0 yum源的更新

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

15.3.1.2 3.0 yum源的更新

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

15.3.2 安装LAMP架构和zabbix相关的软件

zabbix服务程序软件        zabbix-server-mysql

zabbix服务web软件:        zabbix-web-mysql    httpd php

数据库服务软件:            mariadb-server

[root@zabbix-server ~] # yum install -y zabbix-server-mysql zabbix-web-mysql httpd php mariadb-server

15.3.3 修改zabbix-server服务的配置文件

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

91 # DBHost=localhost            指定连接的数据库是本地还是远程,如果是远程,指定IP地址

100 DBName=Zabbix                指定数据库的名称

116 DBUser=Zabbix                指定用户名称

125 DBPassword=Zabbix            指定密码信息

15.3.4 创建数据库和用户

15.3.4.1 启动数据库

[root@zabbix-server ~] # systemctl start mariadb.service

15.3.4.2 创建数据库zabbix

[root@zabbix-server ~] # mysql -uzabbix -pzabbix

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 1884

Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;            创建数据库

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';        创建数据库对用的用户

15.3.4.3 将zabbix数据库信息导入到zabbix数据库

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

15.3.5 修改zabbix.conf里面的时区信息

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

20 php_value date.timezone Asia/Shanghai            修改时区为你创建zabbix所在的时区

15.3.6 重启zabbix服务和LNMP服务

[root@zabbix-server ~] # systemctl start zabbix-server.service httpd mariadb.service

[root@zabbix-server ~] # systemctl enable zabbix-server.service httpd mariadb.service

15.3.6.1 为什么没有启动php服务

  • LAMP架构的http服务里面的php是他的一个模块是不需要启动的
  • LNMP架构中的nginx服务和php服务是独立的服务,所以需要启动

15.3.7 登录web界面

15.3.7.1 输入10.0.0.71/Zabbix来登录web界面(Admin,zabbix)

15.3.7.2 修改背景颜色和语言

15.3.8 web界面的配置功能使用

15.3.8.1 这会添加监控的服务器发现172.16.1.7根本没有被监控的服务

【zabbix-agent服务的配置】

15.3.8.1.1 在客户端进行更新yum源

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

15.3.8.1.2 安装zabbix-agent服务

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

15.3.8.1.3 修改配置文件

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

98 Server=172.16.1.71                    指定要哪台服务器可以进行监控我这台服务器

15.3.8.1.4 重启zabbix-agent服务

[root@web01 ~] # systemctl restart zabbix-agent.service

15.3.8.2 添加模板

15.3.8.3 查看服务端和客户端是否连接成功,可以开始监测了

15.3.8.4 连接失败怎么解决(也就是zabbix不变绿或者变红了)

  • 使用telnet来进行查看客户端的服务是否可以正常
  • 查看模板和主机是否配置正确
  • 查看zabbix日志看下
  • 查看zabbix-server和zabbix-agent配置文件是否正确

15.4 监控服务的应用过程(基础应用)

15.4.1 监控配置方法

15.4.1.1 本身系统设置好的

15.4.1.1.1 点击配置,在找主机,接着监控项

15.4.1.1.2 发现有许多的过滤项

15.4.1.1.3 点击其中一个应用集,选择下面要具体监控的项

15.4.1.1.4 点击你选择的一个available memory,点击,会发现下图

15.4.1.1.5 点击监测,在点击最新数据,选择你要找的主机和应用集

15.4.1.1.6 图形监测,点击下面的图形

15.4.1.2 自定义监控项

15.4.1.2.1 创建自定义监控项
  • 点击配置,主机,监控项,在里面选择创建监控项

  • 选择具体的内容

15.4.1.2.2 创建监控项key值
  • 客户端的配置(Zabbix-agent)
  • 通过配置文件找到系统配置key值的配置文件

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

268 Include=/etc/zabbix/zabbix_agentd.d/*.conf

  • 查看系统的key值配置方法(发现key是自己设置,后面根你具体监控的值或者其他)

  • 配置自己的key值

[root@web01 zabbix_agentd.d] # cat user_count.conf

UserParameter=user.count,w | grep -c "pts"                统计当前登录的用户

  • 服务端的配置(Zabbix-server)
  • 检查key值是否配置成功
  • 安装zabbix-get

[root@zabbix-server ~] # yum -y install zabbix-get

  • 开始检测

[root@zabbix-server ~] # zabbix_get -s 172.16.1.7 -k user.count        检测成功

1

15.4.1.2.3 点击检测,最新数据,选择你要检测的应用集

15.4.1.2.4 在次登录一个用户
  • 在linux界面测试的结果

[root@zabbix-server ~] # zabbix_get -s 172.16.1.7 -k user.count

2

  • 在图形界面测试的结果

15.4.2 实现tcp11种状态的监控

15.4.2.1 在客户端配置key值

[root@web01 scripts] # cd /etc/zabbix/zabbix_agentd.d/

[root@web01 zabbix_agentd.d] # vim tcp_eleven_status.conf

UserParameter=tcp_eleven.status[*],netstat -an|grep -ic $1

15.4.2.2 在服务端测试key值配置是否正确(其他自己测试)

[root@zabbix-server ~] # zabbix_get -s 172.16.1.7 -k tcp_eleven.status[LISTEN]

83

[root@zabbix-server ~] # zabbix_get -s 172.16.1.7 -k tcp_eleven.status[ESTABLISHED]

4

15.4.2.3 在web界面配置监控项(如果看不懂,请看我的监控配置方法章节的)

15.4.2.4 查看最终监控的数据(同样看不懂看监控配置方法)

15.4.3 触发器的设置

15.4.3.1 触发器的概念

触发器为了解决人为监控看数据,可以通过设定一个值来进行判断,当到达这个阈值的时候就会触发报警

15.4.3.2 配置触发器功能(自己定义键值监控nginx服务是否正常)

15.4.3.2.1 客户端编写脚本来判断nginx的状态

[root@web01 zabbix_agentd.d] # vim /server/scripts/monitor_web.sh

#!/bin/bash

netstat -lntup|grep -w 80 &>/dev/null

if [ $? -ne 0 ]

then

echo 0                    

else

echo 1                    

fi

15.4.3.2.2 客户端配置触发功能

[root@web01 zabbix_agentd.d] # cd /etc/zabbix/zabbix_agentd.d/

[root@web01 zabbix_agentd.d] # cat server.conf

UserParameter=net.tcp.checkweb,/server/scripts/monitor_web.sh

[root@web01 zabbix_agentd.d] #

15.4.3.2.3 在服务端查看键值是否成功

[root@zabbix-server ~] # zabbix_get -s 172.16.1.7 -k net.tcp.checkweb

1                            正常

You have new mail in /var/spool/mail/root

15.4.3.2.4 配置监控项

15.4.3.2.5 查看监控数据

15.4.3.2.6 再次更新监控项

15.4.3.2.7 再次查看最新的数据

15.4.3.2.8 配置触发器

15.4.3.2.9 查看触发器是否正常
  • 当前状态

  • 将nginx服务关闭以后

[root@web01 zabbix_agentd.d] # systemctl stop nginx

You have new mail in /var/spool/mail/root

[root@web01 zabbix_agentd.d] #

15.4.3.2.10 给触发器加入声音报警功能

如果不行,就需要清除下浏览器缓存在看下

15.4.3.2.11 更换报警声音

<option value="alarm_disaster.mp3" selected="selected">alarm_disaster</option>        复制出来的内容

  • 查看zabbix所在的站点

[root@zabbix-server ~] # cd /etc/httpd/conf.d/

You have new mail in /var/spool/mail/root

[root@zabbix-server conf.d] # vim zabbix.conf             配置文件所在的目录

#

# Zabbix monitoring system php web frontend

#

Alias /zabbix /usr/share/zabbix

<Directory "/usr/share/zabbix">                        Zabbix所在的站点目录

Options FollowSymLinks

AllowOverride None

  • 通过find命令查看音乐播放文件

[root@zabbix-server conf.d] # find /usr/share/zabbix -name "alarm_disaster.mp3"            查找

/usr/share/zabbix/audio/alarm_disaster.mp3                查找出来的结果

[root@zabbix-server conf.d] # cd /usr/share/zabbix/audio/        切换到这个目录下

[root@zabbix-server audio] # ls

alarm_average.mp3 alarm_disaster.mp3 alarm_high.mp3 alarm_information.mp3 alarm_ok.mp3 alarm_warning.mp3 no_sound.mp3        可以又很多音乐文件,将自己的音乐文件放进去,更换成你要换的名字即可

如果出现不会播放更换自己的音乐,你要自己清除下缓存即可

15.4.4 实现不同的方法来进行报警

15.4.4.1 为什么需要实现多种

  • 人们查看信息方式的不同
  • 时间地点不同的时候也需要不同的方式来进行报警
  • 多种办法可以使事情在发生的时候能够更快的处理

15.4.4.2 邮件报警

15.4.4.2.1 配置报警媒介(你要选择那个来进行报警)

15.4.4.2.2 配置要发送给谁

15.4.4.2.3 发送什么内容,通过什么介质发送

15.4.4.2.4 编写邮件脚本,放入服务端
  • 查看zabbix存在脚本的路径

[root@zabbix-server audio] # vim /etc/zabbix/zabbix_server.conf

508 ### Option: AlertScriptsPath

509 # Full path to location of custom alert scripts.

510 # Default depends on compilation options.

511 # To see the default path run command "zabbix_server --help".

512 #

513 # Mandatory: no

514 # Default:

515 # AlertScriptsPath=${datadir}/zabbix/alertscripts

516

517 AlertScriptsPath=/usr/lib/zabbix/alertscripts                存放脚本的路径

  • 将脚本放入到这个目录下面

  • 脚本的编写代码信息

[root@zabbix-server alertscripts] # cat mail_163.py

#!/usr/bin/python

#coding:utf-8

import smtplib

from email.mime.text import MIMEText

import sys

mail_user = '460523471@qq.com'                指定你设置的邮箱

mail_pass = 'enoncgdkvjhlbjbd'                 你的验证密码

def send_mail(to_list,subject,content):

me = "zabbix 监控告警平台"+"<"+mail_user+">"

msg = MIMEText(content, 'plain', 'utf-8')

msg['Subject'] = subject

msg['From'] = me

msg['to'] = to_list

try:

s = smtplib.SMTP("smtp.qq.com", 25)     这儿你的smtp服务器是qq就写qq,是其他就写其他

s.login(mail_user,mail_pass)

s.sendmail(me,to_list,msg.as_string())

s.close()

return True

except Exception,e:

print str(e)

return False

if __name__ == "__main__":

send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

You have new mail in /var/spool/mail/root

  • 脚本开始测试

15.4.4.2.5 邮件测试
  • 将nginx服务模拟停止

[root@web01 zabbix_agentd.d] # systemctl stop nginx

[root@web01 zabbix_agentd.d] #

  • 查看动作日志

  • 查看163邮箱

15.4.4.3 微信报警

15.4.4.3.1 配置报警媒介(你要选择那个来进行报警)

  • 到这里我们发现脚本名称是什么?下面的3个变量具体是干什么的,为什么是这3个宏来指定这些信息,根据这些问题,我们发现我们不能先配置web界面,需要先将微信和linux界面的东西配置好
15.4.4.3.2 配置企业微信

https://work.weixin.qq.com/wework_admin/loginpage_wx--------登陆进去,注册登陆

  • 查找企业ID,在我的企业里面

  • 在应用管理选择创建应用

  • 随便写

15.4.4.3.3 配置linux界面weixin脚本

  • 授予执行权限,如果出现报错,说找不见request包的时候,需要使用pip install request来进行安装,如果pip没有,可以使用yum install python-pip安装,在使用pip安装request
  • pip安装过程中失败可以使用

[root@zabbix-server alertscripts] # cat ~/.pip/pip.conf

[global]

index-url = https://mirrors.aliyun.com/pypi/simple/

[install]

trusted-host=mirrors.aliyun.com

You have new mail in /var/spool/mail/root

[root@zabbix-server alertscripts] #

  • 微信脚本内容拿出来进行更改

[root@zabbix-server alertscripts] # cat weixin.py

#!/usr/bin/env python

#-*- coding: utf-8 -*-

#author: yanggd

#date: 2018-04-20

#comment: zabbix接入微信报警脚本

import requests

import sys

import os

import json

import logging

logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',

datefmt = '%a, %d %b %Y %H:%M:%S',

filename = os.path.join('/tmp','weixin.log'),

filemode = 'a')

corpid='ww3ff5e031e93d32d9'                    写成自己的企业ID

appsecret='qG_KF_Ot2yUnevM0K3b8PaoOC7zqZT3IZwx_o9JeHcc'            写成自己的secury

agentid=1000002                            写成自己的AgentID

#获取accesstoken

token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret

req=requests.get(token_url)

accesstoken=req.json()['access_token']

#发送消息

msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken

touser=sys.argv[1]

subject=sys.argv[2]

#toparty='3|4|5|6'

message=sys.argv[2] + "\n\n" +sys.argv[3]

params={

"touser": touser,

# "toparty": toparty,

"msgtype": "text",

"agentid": agentid,

"text": {

"content": message

},

"safe":0

}

req=requests.post(msgsend_url, data=json.dumps(params))

logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)

  • 运行自己的微信脚本

[root@zabbix-server alertscripts] # ./weixin.py LiangYuXing test_info "we check nginx"

15.4.4.3.4 配置web界面,实现可以微信接收信息

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

  • 配置发送给谁

  • 发送什么内容,通过什么介质

  • 微信测试
  • 将nginx服务停止

[root@web01 zabbix_agentd.d] # systemctl stop nginx

  • 查看动作日志

  • 查看企业微信

`15.4.4.4 电话或者短信报警

15.4.4.4.1 睿象云平台设置

https://user.aiops.com/pages/v2/login?from=oneacaoptcmfhaot--------登录注册

  • 选择CA报警方式

  • 点击集成,选择zabbix监控

  • 接着我们会看见安装Agent(这个Agent是安装在服务端的,不是客户端)
15.4.4.4.2 安装Agent
  • 切换到zabbix脚本目录

[root@zabbix-server ~] # cd /usr/lib/zabbix/alertscripts/

  • 获取Cloud Alert Agent包:

[root@zabbix-server alertscripts] # wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-2.1.0.tar.gz

  • 解压

[root@zabbix-server alertscripts] # tar -xzf ca_zabbix_release-2.1.0.tar.gz

[root@zabbix-server alertscripts] #

[root@zabbix-server alertscripts] # cd cloudalert/bin

  • 开始安装

[root@zabbix-server bin] # bash install.sh 72f622ad-9b2c-76ea-41c9-3c5de8be95e5

start to create config file...

Zabbix管理地址: http://10.0.0.71/zabbix/            你zabbix的登录地址,不需要加index.php

Zabbix管理员账号: Admin

Zabbix管理员密码(zabbix)                    上面默认不显示

15.4.4.4.3 zabbixweb界面查看

15.4.4.4.4 睿象云配置电话或者短信给谁打或者发送

15.4.4.4.5 查看是否电话可以通知
  • 将nginx服务关闭

[root@web01 ~] # systemctl stop nginx

[root@web01 ~] #

  • 查看电话,短信,qq邮箱信息

15.4.5 监控图形的显示

15.4.5.1 系统自带的监控图形

15.4.5.2 自定义图形

15.4.5.3 图形字符集的优化

15.4.5.3.1 现在的图形文字显示

15.4.5.3.2 查找存放字符集的目录
  • 查看站点目录

15.4.5.3.3 切换到站点目录

[root@zabbix-server fonts] # cd /usr/share/zabbix/assets/fonts

[root@zabbix-server fonts] # ll

15.4.5.3.4 将windows电脑上面的字符集放入到linux服务器上面
  • windows路径: C:\Windows\Fonts------选择自己喜欢的字符集放入到linux目录里面

  • 修改名字为现在上面的软连接名字

[root@zabbix-server fonts] # mv graphfont.ttf graphfont.ttf_backup

[root@zabbix-server fonts] # mv msyh.ttc graphfont.ttf

[root@zabbix-server fonts] # ls

graphfont.ttf graphfont.ttf_backup

[root@zabbix-server fonts] #

15.4.5.3.5 再次查看文字

15.4.5.4 使用grafana结合zabbix来设置图形

15.4.5.4.1 下载grafana

官方网址链接: https://grafana.com/

告示:只是告诉你们,具体我这里有下载地址

15.4.5.4.2 开始下载

[root@zabbix-server fonts] # wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-6.5.1-1.x86_64.rpm

15.4.5.4.3 本地rpm包安装

[root@zabbix-server fonts] # yum localinstall -y grafana-6.5.1-1.x86_64.rpm

15.4.5.4.4 启动grafana

[root@zabbix-server ~] # systemctl restart grafana-server.service

[root@zabbix-server ~] # systemctl enable grafana-server.service

Created symlink from /etc/systemd/system/multi-user.target.wants/grafana-server.service to /usr/lib/systemd/system/grafana-server.service.

[root@zabbix-server ~] #

15.4.5.4.5 web界面登录

账号:admin 密码:admin

15.4.5.4.6 下载zabbix和grafana结合的zabbix插件(一)
  • 查找zabbix的ID和版本号

[root@zabbix-server ~] # grafana-cli plugins list-remote | grep zabbix

id: alexanderzobnin-zabbix-app version: 3.10.4

You have new mail in /var/spool/mail/root

[root@zabbix-server ~] #

  • 插件下载的路径

https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/3.10.4/download

  • 创建插件目录

[root@zabbix-server ~] # mkdir -p /var/lib/grafana/plugins

  • 将插件解压

[root@zabbix-server plugins] # unzip grafana_zabbix插件.zip

  • 解压的结果

  • 重启grafana

[root@zabbix-server ~] # systemctl restart grafana-server.service

[root@zabbix-server ~] #

  1. 通过grafana-cli plugins install来安装
  • 查找zabbix的ID和版本号

[root@zabbix-server ~] # grafana-cli plugins list-remote | grep zabbix

id: alexanderzobnin-zabbix-app version: 3.10.4

You have new mail in /var/spool/mail/root

[root@zabbix-server ~] #

  • 安装

[root@zabbix-server ~] # grafana-cli plugins install alexanderzobnin-zabbix-app

  • 重启grafana

[root@zabbix-server ~] # systemctl restart grafana-server.service

[root@zabbix-server ~] #

15.4.5.4.8 再次打开web界面

  1. zabbix模板的介绍

15.4.6.1 为什么需要监控模板

配置监控模板,可以少很多重复的工作,可以提高工作效率

15.4.6.2 怎么配置模板

15.4.6.3 怎么能借鉴别人的模板里面的内容变成自己的内容

15.4.7 zabbix自动发现主机(网络发现)

15.4.7.1 还原最初始的状态

15.4.7.2 点击配置自动发现

15.4.7.3 点击配置,然后选择动作

15.4.7.4 测试是否可以自动发现(监测-自动发现)

  • 注意:监测失败或者一直没有怎么解决
  1. 查看服务端日志信息(tail -f /var/log/zabbix/zabbix_server.log)
  2. 服务端日志没报错的情况,可以重启服务端看下

15.4.8 监控维度信息

15.4.8.1 面试:你了解监控吗? 你们公司是如何实现监控的?

15.4.8.1.1 硬件监控
  • 服务器
  • 路由器
  • 交换机
  • 防火墙
15.4.8.1.2 系统监控
  • CPU
  • 内存
  • 磁盘
  • 网络
  • 进程
  • TCP
15.4.8.1.3 服务监控
  • nginx
  • php
  • tomcat
  • redis
  • memcache
  • mysql
15.4.8.1.4 网站监控
  • 请求时间
  • 响应时间
  • 加载时间
15.4.8.1.5 日志监控
  • ELK(收集 存储 分析 展示)
  • 日志易
15.4.8.1.6 安全监控
  • Firewalld
  • WAF(Nginx+lua)
  • 安全宝
  • 牛盾云
  • 安全狗
15.4.8.1.7 网络监控
  • smokeping
  • 监控宝
  • 站长工具
  • 奇云测
  • 多机房
15.4.8.1.8 业务监控
  • 活动产生多少流量
  • 产生多少注册量
  • 带来多少价值

大神带你一天了解zabbix(一)的更多相关文章

  1. 老猪带你玩转自定义控件三——sai大神带我实现ios 8 时间滚轮控件

    ios 8 的时间滚轮控件实现了扁平化,带来很好用户体验,android没有现成控件,小弟不才,数学与算法知识不过关,顾十分苦恼,幸好在github上找到sai大神实现代码,甚为欣喜,顾把学习这个控件 ...

  2. 【附案例】UI交互设计不会做?设计大神带你开启动效灵感之路

    随着网络技术的创新发展,如今UI交互设计应用越来越广泛,显然已经成为设计的主流及流行的必然趋势.UI界面交互设计中的动效包括移动,滑块,悬停效果,GIF动画等.UI界面交互设计为何越来越受到青睐?它有 ...

  3. Java大神带你领略queue的风采

    作为数据结构中比较常见的类型,你足够了解队列(queue)吗?从今天开始,我将为你讲解关于队列(queue)的一切,包括概念.类型和具体使用方法,如果你对此足够感兴趣,赶快来加入我们,我将同你一起探索 ...

  4. 酷派大神F2系列使用QPST进行nv备份和恢复,解决无信号问题(附备份文件)

    测试机器: 大神F2联通版 8675_W00 系统COOLUI55     写贴原因: 自己无意间刷错了包,结果手机无信号,进入工程模式怎么设置都没有用.尝试过系统还原(备份过).刷新的ROM.线刷, ...

  5. wire与reg的区别?转载大神!

    本文转自:http://www.cnblogs.com/thymon/archive/2010/06/09/1754541.html //------------------------------- ...

  6. 兄台息怒,关于arguments,您的想法和大神是一样一样的----闲聊JS中的apply和call

    JavaScript提供了apply和call两种调用方式来确定函数体中this的指向,表现出来的特征就是:对象可以'借用'其他对象的方法.之前的几篇博客回顾了一些Web控件的一些开发方法,我们聊了如 ...

  7. 有关UITableViewCell的侧滑删除以及使用相关大神框架MGSwipeTableCell遇到的小问题

    提起笔,却不知道从何写起了,今天一整天都耗费在了这个可能根本不算是问题的小问题上,至今仍有一种蛋蛋的忧桑..(噢,不是提笔,是键盘手T_T) 表格视图在项目中就像是每日的家常便饭,在cell上添加侧滑 ...

  8. dropout理解:1神带9坑

    Dropout是深度学习中防止过拟合的一项非常常见的技术,是hinton大神在12年提出的一篇论文里所采用的方法.有传言hinton大神的数学功底不是很好,所以他所提出的想法背后的数学原理并不是很复杂 ...

  9. 实战经验|大神战队都在i春秋教你打CTF

    全国大学生信息安全竞赛创新实践能力赛旨在培养.选拔.推荐优秀信息安全专业人才创造条件,促进高等学校信息安全专业课程体系.教学内容和方法的改革,培养学生的创新意识与团队合作精神,普及信息安全知识,增强学 ...

随机推荐

  1. mongodb定时删除数据(索引删除)

    一 简介:本文介绍创建自动删除数据的TTL索引 二 目的 定时删除数据三 创建方法   db.collection.createIndex(keys, options)   options:   ex ...

  2. Error response from daemon ... no space left on device docker启动容器服务报错

    docker 启动容器服务的时候,报错no space left on device 1. 检查磁盘是否用光 3.检查inode是否耗光,从截图看到是inode耗光导致出现问题: 进入到/run里面看 ...

  3. 如何对 React 函数式组件进行优化

    文章首发个人博客 前言 目的 本文只介绍函数式组件特有的性能优化方式,类组件和函数式组件都有的不介绍,比如 key 的使用.另外本文不详细的介绍 API 的使用,后面也许会写,其实想用好 hooks ...

  4. 使用Spring安全表达式控制系统功能访问权限

    一.SPEL表达式权限控制 从spring security 3.0开始已经可以使用spring Expression表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限.Spring ...

  5. MySQL数据库的10大经典错误案例

    学习任何一门技术的同时,其实就是自我修炼的过程.沉下心,尝试去拥抱数据的世界! 案例一 Too many connections (连接数过多,导致连接不上数据库,业务无法正常进行) 问题还原: 解决 ...

  6. 通过阿里云的IOT平台控制ESP8266

    通过阿里云的IOT平台控制ESP8266 #include <ESP8266WiFi.h> /* 依赖 PubSubClient 2.4.0 */ #include <PubSubC ...

  7. 痞子衡嵌入式:飞思卡尔Kinetis系列MCU启动那些事(10)- KBOOT特性(可靠升级)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔Kinetis系列MCU的KBOOT之可靠升级(Reliable Update)特性. 所谓可靠升级机制,即在更新Applica ...

  8. PHP 的 self 关键字用法

    之前有人询问 self 关键字的用法,答案是比较明显的:静态成员函数内不能用 this 调用非成员函数,但可以用 self 调用静态成员函数/变量/常量:其他成员函数可以用 self 调用静态成员函数 ...

  9. Openlayers Overlay使用心得

    Overlay在Openlayers里是浮动层的概念,区别于vector这样的图层,通常用于弹窗.撒点.以及解决加载icon样式不支持的gif等格式图片. 此次用overlay的过程中遇到很多问题,在 ...

  10. 2019-11-6:ubuntu 18安装tomcat 9.0

    1,下载tomcat,选择自己想要的版本下载即可 下载官网:http://tomcat.apache.org/ 2,将下载的源码放到自己需要的位置,解压,我新建了一个tomcat目录 sudo mkd ...