zoukankan      html  css  js  c++  java
  • zabbix使用总结(1)

    我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。
    个人博客:传送阵
    笔者微信:zhanghe15069028807,非诚勿扰。

    1、基础概念

    什么是监控项、应用集、触发器?

    监控项就是我们要使用zabbix监控主机什么内容,比如监控某台主机还剩余多少内存。

    同一类型的监控项可按照作用的不同进行分类,比如将监控内存剩余量的多少和监控已经用了多少内存都放在内存这一类型里面,zabbix将这种种类称之为应用集。

    我们只监控没有用呀,到达我们限定的某个值之后就要进行报警,这就要求我们定义触发器。触发器一定是在监控项的基础上进行定义的,比如当内存的用量超过百分之八十之后就要进行报警,百分之八十就是一个阈值,这个阈值要定义在触发器里面,一旦触发之后,就会执行动作进行报警。

    2、新增主机

    只要把zabbix-agentzabbix-server连接好就能基本的监控一台主机了,下面我们说一下思路,然后演示一下步骤。

    告诉被监控的主机允许谁向自己请求数据,默认zabbix-agent端是工作在被动模式的,所谓的被动模式就是等待server端过来拉取数据,而不是agent端主动向srever端推送数据。

    //在代理端上直接rpm安装阿里云的zabbix-agent包
    rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.12-1.el7.x86_64.rpm
    
    //查看agent有哪些配置文件
    rpm -qc zabbix-agent
    /etc/logrotate.d/zabbix-agent
    /etc/zabbix/zabbix_agentd.conf  #通过这个文件来允许server端向自己拉取数据
    /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
    
    //指明服务端的IP地址
    vim /etc/zabbix/zabbix_agentd.conf
    97 Server=192.168.80.22    #这个地址是SERVER的IP地址
    
    //启动zabbix-agent代理,默认侦听在tcp的10050端口。
    systemctl start zabbix-agent
    ss -tnlp | grep 10050
    

    通过上述步骤,zabbix-agent代理端就配置完了, 注意两端的防火墙和SELINUX都要关闭呀!!

    下面的步骤就是在服务端进行配置了:

    配置--主机--添加主机(给主机取一个名字、给它一个群组名字(可以自定义或者用默认的群组)添加代理主机的IP地址),别的默认就可以
    先不着急点保存,点击模板,再通过关键字:linux 搜索 Template OS Linux 选中之后,依次点击小的添加,再点击大的添加,成功后等一会就会在主机界面上就会出现主机的信息,可用性那一栏也会变成绿色。
    

    以上就是快速的新增一台被监控的主机的方法,比较简单。

    2、监控项

    一个最基本的监控项的组成起码应该有:名称和键值

    名称和键值的名字可以一样,也可以不一样,这个无所谓了,只要知道名称就是键值的另一个名字就可以了。这样的监控项可以分为两大类:zabbix-agent内置的监控项和我们自定义的监控项。

    其实我们什么也不配置只要把服务端和代理端连接好,就可以应用默认内置的模块监控代理了,因为模块里面有zabbix已经内置好的一些监控项,比如:对/etc/passwd的监控、对当前系统登录人数的监控,这种默认的监控项可以让我们省好多力气,但是这些监控项并不全面,比如对tcp的11种状态 、nginx、tomcat这些应用没有定义监控项,我们要通过自定义把这些监控项也给加上。

    定义监控项

    监控项存在于模板里面,我们最常用的模板就是Template OS linux这个模板,这个模板里面默认有32个监控项,每个监控项都对应一个内置键值。

    监控项就是键值的另一个名字,监控项和键值都使用一个名字也可以。监控项就像是什么呢?键值就像是agent上脚本的名字一样,举个例子:

    //agent端操作
    [root@nginx ~]# cat /etc/zabbix/zabbix_agentd.conf 
    288 ### Option: UserParameter
    289 #       User-defined parameter to monitor. There can be several user-defined parameters.
    290 #       Format: UserParameter=<key>,<shell command>
    291 #       See 'zabbix_agentd' directory for examples.
    
    //我们通过查看agent的配置文件得知定义一个监控项需要到zabbix_agentd目录
    //格式 UserParameter=<key>,<shell command>
    [root@nginx zabbix_agentd.d]# vim custom.conf
    UserParameter=tcp_ESTAB,netstat -ant | grep -i "ESTABLISHED" | wc -l
    
    //更改完配置文件重启
    [root@nginx ~]# systemctl restart zabbix-agent
    
    //获得全部的键值,过滤出我们定义的那一个
    [root@nginx zabbix_agentd.d]# zabbix_agentd -p | grep tcp_ESTAB
    tcp_ESTAB                                     [t|3]
    
    //zabbix-server端操作,通过server检查客户端的键值,看是否能获取到值
    rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
    yum -y install zabbix-get.x86_64 
    [root@zabbix ~]# zabbix_get -s 192.168.80.23 -k tcp_ESTAB
    4    #成功获取到
    
    //zabbix-web端操作,基于已经连接到192.168.80.23的基础上进行操作
    配置--主机(找到192.168.80.23)---点击“监控项”----创建监控项(如下图所示)---完成添加
    

    那么如何验证是否添加成功了呢?监测中---最新数据(输入查看条件,一个或多个条件)即可以看见获取到我们上述添加的键值和最新获取的数据,如下所示:

    监控项参数详解

    https://www.zabbix.com/documentation/3.4/zh/manual/config/items/item

    上面这个链接这个是zabbix的中文文档,找个时间通读三遍,这是中文的,如果还不看的话就是懒了,一个人穷不可怕,怕的是又穷又懒。

    在上一小节,我们在添加“监控项”的时候,发现有很多的设置项,下面我们就来仔细的说一说。

    1. 名称就不用说了,就是监控项的名字,方便我们记忆,简洁大方即可,也可与键值一致。

    2. 类型:类型有好多,默认是zabbix客户端,往下翻还有zabbix(主动式)、SNMP(简单网络管理协议),里面还有好多,咱就说这么几个吧。默认的全称应该为zabbix(被动式),所谓被动式的意思是zabbix-agent被动的等待zabbix-server的向其索取数据,这里和zabbix-agent端的配置文件etc/zabbix/zabbix_agentd.conf中的server=192.168.80.22相呼应,看到这里你应该明白,默认其实是zabbix-server向agent端索要数据,但agnet并不是任何人向其它都给,只有192.168.80.22向它索要它才给,这是客户端被动的,还有主动的,主动的先不说,后面再说吧!SNMP一看这玩意就是给网络设备用的,像交换机、路由器这样的,它不能安装zabbix-agent软件,一般都是通过SNMP(简单网络管理协议)协议的方式。

    3. 信息类型:常用的用数字(无正负)、浮点数。如果键值获取的结果带小数就选择浮点数,如果是整数就选择数字。

    4. 单位,这个单位是自定义的,比如我们上一小节监控tcp的established的个数,那么单位就可以写“个”。

    5. 更新时间间隔,就是zabbix-server多长时间向zabbix-agent索要一次数据,默认是30秒,我们如果测试时可以定义成3秒,具体看带宽吧。

    6. 自定义时间时隔,这个是啥意思呢?有点类似于定时任务的“分、时、日、月、周”,但是又是一种全新的格式,zabbix官网上有详细的介绍,有兴趣可以看一下,比如你可以通过定义一下,每天的3点钟刷新一次键值,每个月的周六刷新一下键值,这里就不介绍了,用的比较少。

    7. 历史数据保留时长,这是见明知义,不用解释,一般也别太大了,占用磁盘,看你的磁盘空间情况,关键是如果磁盘搞满了,会有一个很大的后果,什么后果呢?就是新取的数据无法写入到数据库当中,无法写到数据库当中web端就无法读取,如果紧急情况这一点很危险,还是设置小一点吧。

    8. 趋势存储时间,这个类似于历史数据保留的时间,不过这里保存的数据更少,只会保留最低、最高、或平均值,用于画趋势图用的,这个可以留的稍长一点,年底出个图,方便做述职。

    9. 查看值,默认是不变,点开一看,好多类似,现在连各种品牌的设备都有集成,我们经常用到也就有不变和差量,不变就是通过键值取到什么就显示什么,比如上一次取到的值是100,我们查看时就显示100,当前这一次取到值是300,我们查看时就显示300,这就是不变,如果是差量,它会用当前这一次减去上一次的值然后除以30,(300-100)/30,经常用于显示带宽这种有变化的速率。

    10. 展示值映射,就是如果取到值是1的时候显示什么,如果取到值是什么就显示一个对应的字符,有啥用呢?比如你想探测一下agent的80端口是否打开,如果是1表示打开,如果是0表示没有,我们就可以选择service state,方便我们在web端的上查看,如果只显示0和1,不太舒服。

    11. 应用集就是选择一个应用集,一般都要选择一个,方便查找。

    zabbix-agent内置键值

    监控项存在于模板里面,我们最常用的模板就是Template OS linux这个模板,这个模板里面默认有32个监控项,每个监控项都对应一个键值,这些键值并不是我们手工定义的,而是安装zabbix-agent的时候内置的,在agent端可以通过zabbix-agendt -p 全部显示出来。

    监控项就是键值的另一个名字,也可以定义一样的名字,就如同我们之前自定义监控项的时候,监控项和键值都使用一个名字也可以。监控项就像是什么呢?键值就像是agent上脚本的名字一样,举个例子:

    UserParameter=iotop,iostat | awk '/^sda/{print $2}'
    

    iotop后面就是一个名命令,iotop就是键值,这个键值是我们自定义的,实际上,安装完zabbix-agent之后,默认就已经设置了很多的键值,有多少个呢?

    #这个正则表达式比较巧妙,仔细看一看。
    [root@NFS ~]# zabbix_agentd -p | grep -o '^.*[[tsdum]|' | sed 's@[[tsdum]|@@g' | wc -l
    77
    

    那么这些key键值对应的功能都是什么呢?在web端其实有解释,在添加一个监控项的时候,我们可以点击后面的选择,进去之后有对每个键值都有接详细的解释,我们可以直接拿来调用。

    我们也可以手工调用一下,这本没有必要,主要是方便我理解。

    如上图,我选择了一个系统内置的用于测试tcp的某个端口是否能通的key,这个我们可以直接就拿来用,我们可以手工用一下:

    //测试一下192.168.80.24的22端口是否能通
    [root@zabbix ~]# zabbix_get -s 192.168.80.24 -k net.tcp.port[192.168.80.24,22]
    1
    //测试一下80.24这台主机对阿里云的时间服务器是否可用。
    [root@zabbix ~]# zabbix_get -s 192.168.80.24 -k net.udp.service[ntp,ntp2.aliyun.com,123]
    1
    

    3、应用集

    应用集和监控项的关系

    通过上图我们看到所谓的监控集就是对监控项的分类:cpu、硬盘、通用、内存、网络、系统、性能、进程、安全、代理

    比如有对cpu设置的监控项,那么就属于应用集:cpu,但是这个监控项对监控性能这一项也用的上,那么这个监控项就可以属于两个应用集。

    定义tcp11种状态应用集

    zabbix-agent内置的key里面没有对tcp状态的监控,但是tcp的状态对我们又很重要,tcp的常用状态有11种,我们可以把这11种都搞成监控项,然后把这些监控项集中到一起做一个tcp状态的应用集。

    我们可以使用笨办法,就像这样:

    [root@NFS zabbix_agentd.d]# cat tcp_estab.conf
    UserParameter=tcp_estab,netstat -ant | grep -i established | wc -l  
    

    如下,那么tcp_tstab就是一个监控项键值,监控established的连接数量,还有10种状态,那么岂不是我们要写10条这样的,如下:

    [root@NFS zabbix_agentd.d]# cat tcp_estab.conf
    UserParameter=tcp_estab,netstat -ant | grep -i established | wc -l
    UserParameter=tcp_time_wait,netstat -ant | grep -i time_wait| wc -l  
    ……
    

    这样太麻烦了,要添加10次,这11次有很多的相同点,除了键值的名字和要过滤的状态不一样,其它的都是一样的,我们可以搞一个可以传递参数的键值,想用什么状态的时候直接把状态的名字做为参数传递给键值,这就不用行了吗! 怎么搞呢?我们下面会讲一下,你会发现系统的键值都是可以传递参数的,比如net.tcp.port[,port] ,我们也搞一个。

    被控端:

    [root@NFS zabbix_agentd.d]# vim tcp_status.conf
    UserParameter=tcp_status[*],netstat -ant | grep -i "$1" | wc -l
     
    #别忘记重启agent代理服务
    [root@NFS zabbix_agentd.d]# systemctl restart zabbix-agent
    

    解释一下,tcp_status就是键值的名字嘛,后面的中括号和星号是固定的格式,想要向里面传递参数就得这么写,后面的$1就代表第一个参数

    zabbix端

    在zabbix端测试一下,注意格式与上述的格式对应
    [root@zabbix ~]# zabbix_get -s 192.168.80.24 -k tcp_status[TIME_WAIT]
    50
    

    好,最关键的一步做完了,下面开始定义一下tcp状态应用集。

    结果是这样子的 :

    耐心一点,就做这一次,以后把这些模板保存下来,下次直接套用了,下方有一个批量更改,把时间更改为每5秒查看一次,这样方便我们做实验。

    我们可以给被监控的主机安装上httpd,然后用ab压一下,就可以明显的看出效果了,后面的最新数据会变化,有时变成灰色,代表超时了,处理不完,我们去到“管理--队列(选择细节)”会看到细节,。

    超时的时间,zabbix配置文件当中默认定义是3秒,我们是可以更改的在/etc/zabbix/zabbix_agentd.conf里面有一个timeout值,可以更改。

    这是上次定义时用到的参数,列在这里,方便下次的时候使用:

    tcp_status[ESTABLISHED]
    tcp_status[TIME_WAIT]
    tcp_status[SYN_SENT]
    tcp_status[SYN-RECV]
    tcp_status[FIN_WAIT1]
    tcp_status[FIN_WAIT2]
    tcp_status[CLOSE]
    tcp_status[CLOSE_WAIT]
    tcp_status[LAST_ACK]
    tcp_status[LISTEN]
    tcp_status[CLOSING]
    

    技巧:

    管理---一般---其它---可以更改“不支持的项目刷新时间”

    队列--概览,查看固定时间取不到值的请求数量

    3、触发器

    单条件触发

    触发器要在监控项的基础上进行定义,触发器里面一个阈值,只有当键值的结果到达阈值设定之后才会触发报警,也就是说触发器里面其实也就是有一个阈值而已。

    我们来举一个例子,监控192.168.80.23这台主机的内存的可用百分比,如果可用百分比不足百分之二十的时候就要触发报警。

    第一步:如何取出可用内存的百分比,用当前可用除以总量然后乘以100.

    #int的意思是保留整数
    [root@nginx ~]# free | awk 'NR==2{print int($NF/$2*100)}'
    86
    

    第二步:在被控端定义键值

    [root@nginx ~]# cd /etc/zabbix/zabbix_agentd.d
    [root@nginx zabbix_agentd.d]# vim free_mem.conf
    UserParameter=free_mem,free | awk 'NR==2{print int($NF/$2*100)}'
    [root@nginx zabbix_agentd.d]# systemctl restart zabbix-agent
    [root@nginx ~]# zabbix_agentd -p | grep free_mem
    free_mem                                      [t|85]
    

    第三步:在server端上探测

    [root@zabbix ~]# zabbix_get -s 192.168.80.23 -k free_mem
    85
    

    第三步:在web端添加监控项

    第四步:定义触发器

    {web:free.mem last()}<20  有规律,最新值函数,可手工写一下
    {主机名:键值名 last()}<20
    

    第五步:在web上安装一个httpd,通过ab压测一下

    //-n是请求的个数,-c是并发数
    ab -n 10000 -c 1000 http://192.168.80.23/zabbix/index.php
    

    多条件触发

    多条件触发器很好理解,就是多个条件同时满足才会触发报警;与之对应的,我们了可以设置多个条件,满足一个即会报警,我们演示一个满足多个条件才会报警的。

    内存的可用量小于百分之二十和swap用量大于百分之五十同时满足才会触发报警

    第一步:取于内存可用量百分比和swap已经用了多少的百分比

    free | awk 'NR==2{print int($NF/$2*100)}'
    free | awk 'NR==3{print int($3/$2*100)}'
    

    第二步:定义键值

    [root@zabbix zabbix_agentd.d]# vim custom.conf
    UserParameter=free_mem,free | awk 'NR==2{print int($NF/$2*100)}'
    UserParameter=swap_use,free | awk 'NR==3{print int($3/$2*100)}'
    [root@zabbix ~]# systemctl restart zabbix-agent
    

    第三步:测试

    [root@zabbix ~]# zabbix_get -s 127.0.0.1 -k free_mem
    64
    [root@zabbix ~]# zabbix_get -s 127.0.0.1 -k swap_use
    0
    

    第四步:web端添加监控项

    表达式:{Zabbix server:free_mem.last()}<20 and {Zabbix server:swap_use.last()}>50
    

    触发器深入讲解

    想对触发器深入了解,最好的方法就是去阅读官方文档,下面解释几个常用的。

    last()最后一个值对比,如果超过多少就触发报警

    avg()平均值报警,处理波动报警,网卡流量(无法控制)用平均值,比如取一下5分钟内平均值超过多少就报警。

    diff()与上一次对比,不一样就报警

    nodata()五分种收不到信息就报警

    and 多条件触发

    or 或

    运维生存空间这个网站有一些案例可以看一看

    系统案例也可以参照。

    4、报警

    QQ邮箱

    第一步:打开动作

    我们上面提到过,当监控项的取值到达触发器定义的阈值之后会触发动作,这个动作通常指的就是报警,而zabbix的报警初始状态是关闭的,如果我们想要收到报警就得打开,打开的路径为:配置---动作

    报警的方式可以有很多种,我们常用的有邮件、微信两种方式,那么我们就讲这两种方式。

    第二步:填写发件人

    我们写搞一个邮件报警,要配置发件人和收件人。

    发件人配置界面路径管理---报警媒介类型,配置如下:

    值得注意的一点就是密码那里不要添加密码,而是添加授权码。

    第三步: :配置收件人

    进入:用户--报警媒介--Email填写收件人的QQ邮箱地址,收件人和发件人可以是同一个人。

    报错

     no media defined for user
    

    原因:在点击收件人的时候,没有点击更新

    python邮件报警

    第一步:在管理--报警媒介类型里面新添加一项“邮件报警”,如下所示:

    第二步:我们只是给脚本起了一个名字,其实还没写呢?写到什么地方呢?zabbix的配置文件里面有定义,如下所示:

    //将python写的程序放到这个目录里面,注意,名字要和上述一致。
    [root@zabbix ~]# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf 
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    
    [root@zabbix alertscripts]# pwd
    /usr/lib/zabbix/alertscripts
    [root@zabbix alertscripts]# cat sent_mail.py
    
    #!/usr/bin/python
    #coding:utf-8
    import smtplib
    from email.mime.text import MIMEText
    import sys
    mail_host = 'smtp.qq.com'  
    mail_user = '746620446@qq.com'
    mail_pass = 'tb**sdxtzobcfh'
    mail_postfix = 'qq.com'
    def send_mail(to_list,subject,content):
        me = "zabbix 监控告警平台"+"<"+mail_user+"@"+mail_postfix+">"
        msg = MIMEText(content, 'plain', 'utf-8')
        msg['Subject'] = subject
        msg['From'] = me
        msg['to'] = to_list
        try:
            s = smtplib.SMTP()
            s.connect(mail_host)
            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])
    
    //测试一下,别忘记加执行权限
    [root@zabbix alertscripts]# ./sent_mail.py 746620446@qq.com test test
    

    这个python写的脚本,名字里面里面最好不要带mail这样的关键字,不然老是提示错误,下次再用的的时候把QQ号改一下,然后把mail_pass改一下,mail_pass里面不是QQ邮箱的密码,而是授权码,这一点要注意。

    第三步:到用户---报警媒介。

    这样其实就可以了,如果还是不行的话,看看配置--动作,一定要处在打开状态哟!

    报警信息定义

    配置—动作---触发器—点进去进行定义

    5、定义图形

    查看图形

    图形并不是模板的必备项,一个模板想正常的使用必须要有监控项、触发器,至于图形并不是必要的。图形上的几个点我们是要看明白的。

    cpu jump

    在右上角有一个两个时间,右边那个是当前时间。

    先解释一下左上角的缩放,缩放的意思是以当前时间为基准,向过去推多长时间,假如当前时间是3点整,缩放5分钟之后,就是2点55分到3点这一段时间,注意,变化仅是左边那个时间。

    好,我们现在解释一下缩放下面那一行时间,中间有一个管道符,管道左边是整体缩放多长时间,两个时间都会变,假如说当前的右上角的时间的是2点45分到2点50分,如果点击了管道左边的5m那么就会变成2点40到2点45。左边是向过去推,右边就是与之相对。

    左下角的的两个项目是进程每秒的上下文切换,所谓的进程上下文切换就是一个进程从cpu切换到另一个进程的时间。

    每秒中断的次数,中断分为硬中断和软中断,软中断就是软件中断的时间,比如你要远程连接ssh的时候,假如你的ssh优先级很高,那么cpu要立刻停下手头的任务运行ssh服务 ,响应你的请求,这就是软中断。还有就是当我们在word上打字的时候,这时候cpu通常也要立刻进行响应,这时也要发生中断,这样的中断就是硬中断。

    cpuload

    这张图是cpu的负载,对应着top里面的参数,如果cpu的负载达到2000,这是什么意思呢?意思是当前排队等待cpu的处理的任务达到2000。

    cpu utilization

    这一张图是CPU的综合数据

    空闲时间

    用户空间

    内核空间

    io等待

    优先级

    硬中断

    软中断

    虚拟化偷走的时间

    定义图形

    默认所有的图形都存在于模板当中,我们以tempalte os linux模板为例子,里面有9个图形,现在我们要为tcp的11种状态创建一个图形,点击--右上角的创建图形。

    监测中--图形里面就可以选中图形之后就可以看到图形了。

    注意事项

    折线图不要选择太多的监控项,太多显得太乱了,看不清楚。

    学习画图时,一定要把系统自带的几张图的好好看一看,看看系统中如何设置的,我们可以跟着学习一下。

    聚合图形

    为什么要聚合图形呢?这是为了给监控运维看的,把多个图形聚合到一个屏幕上,方便监控运维观看 ,选择监测中--创建聚合图形然后,构造函数,点加号进行选择图形添加即可。

    6、定义模板

    zabbix最成功的一点就是模板可以导入导出,方便重复使用。

    假如我们要导出模板,一定要把模板文件和键值文件一同拿到,不然只拿到模板文件没啥用,找不到键值。

    我们下面演示一下演示一下,创建一个新的模板,然后将tcp的11种状态放置到新定义的模板当中,然后再定义触发器,再定义图形,形成一个比较完善的模板。`配置--模板--创建模板`

    创建好之后然后找到这个模板,会发现应用集、监控项、触发器、图形啥都没有,我们现在去导入。

    找到11个监控项-----复制---模板---选中我们新创建的模板

    找到11个监控项------批量更新----选择应用集进行创建

    然后创建图形,到此,监控项--应用集---图形就都了,一个模板建立完成 。

    7、优化

    关于DDOS攻击和SSH

    生产上的服务器应该把ssh的优先级提高,以防止被DDOS攻击时远程连接过慢的问题。

    平时运维人员应当对DDOS攻击有所准备,最好写一个脚本,脚本内容是分析日志里面对网站访问次数超过限定值的IP的数量,当超过一定的数量,就应当将其加入到防火墙的拒绝列表里面,防火墙的拒绝列表也要定期清空,不能一直攻击某个IP地址,因为可能是这个IP是肉机。还有一种准备就是上CDN,这样黑客就很难找到具体的服务器IP。

    那么当直面DDOS攻击时,运维人员应该应该怎么做呢?如果自己的服务并不是关键的话,建议先将服务关闭,然后运行脚本干掉攻击源IP,然后再启动服务,当然这要建立在SSH服务能立刻登入的情况下。

    如果真的是规模比较大的DDOS攻击的话,还有一种办法就是让机房帮你“泄洪”,机房的出口一般配有防火墙或者流量清洗这样的设备,可以对DDOS进行有效的防御。

    关于开机启动的必要性

    当服务器正常关机时,当接入电源之后并不会自动开机;当服务器非正常被关机,比如在机房被人误拔了,人家又给立刻接上了,这时服务器会自动开机,如果你的服务器不自动启动的话,那服务就不能访问了,这样的事情还是比较常见,我遇到好几回了。

  • 相关阅读:
    gdb查看内存(转)
    c++ 前置++与后置++的区别
    stl第二级空间配置器详解(1)
    stl空间配置器简介
    套接字描述符就绪条件
    针对TCP连接异常断开的分析
    linux僵尸进程产生的原因以及如何避免产生僵尸进程
    k8s istio 配置域名转发到外部节点机器上
    tinymce增加mathjax 支持数学公式录入渲染
    vue 配置 TinyMCE
  • 原文地址:https://www.cnblogs.com/yizhangheka/p/12131957.html
Copyright © 2011-2022 走看看