http://ixdba.blog.51cto.com/2895551/752870

一、nagios配置过程详解

1、nagios默认配置文件介绍

 nagios安装完毕后,默认的配置文件在/usr/local/nagios/etc目录下,每个文件或目录含义如下表所示:

2、配置文件之间的关系

 在nagios的配置过程中涉及到的几个定义有:主机、主机组,服务、服务组,联系人、联系人组,监控时间,监控命令等,从这些定义可以看出,nagios各个配置文件之间是互为关联,彼此引用的。

 成功配置出一台nagios监控系统,必须要弄清楚每个配置文件之间依赖与被依赖的关系,最重要的有四点:

 第一:定义监控哪些主机、主机组、服务和服务组

 第二:定义这个监控要用什么命令实现,

 第三:定义监控的时间段,

 第四:定义主机或服务出现问题时要通知的联系人和联系人组。

3、开始配置nagios

 为了能更清楚的说明问题,同时也为了维护方便,建议将nagios各个定义对象创建独立的配置文件:

 即为:

 创建hosts.cfg文件来定义主机和主机组

 创建services.cfg文件来定义服务

 用默认的contacts.cfg文件来定义联系人和联系人组

 用默认的commands.cfg文件来定义命令

 用默认的timeperiods.cfg来定义监控时间段

 用默认的templates.cfg文件作为资源引用文件

(1)templates.cfg文件

 

 nagios主要用于监控主机资源以及服务,在nagios配置中称为对象,为了不必重复定义一些监控对象,Nagios引入了一个模板配置文件,将一些共性的属性定义成模板,以便于多次引用。这就是templates.cfg的作用。

 下面详细介绍下templates.cfg文件中每个参数的含义:

  1. define contact{
  2. name                            generic-contact        #联系人名称,
  3. service_notification_period     24x7                   #当服务出现异常时,发送通知的时间段,这个时间段“7x24"在timeperiods.cfg文件中定义
  4. host_notification_period        24x7                   #当主机出现异常时,发送通知的时间段,这个时间段“7x24"在timeperiods.cfg文件中定义
  5. service_notification_options    w,u,c,r         #这个定义的是“通知可以被发出的情况”。w即warn,表示警告状态,u即unknown,表示不明状态,c即criticle,表示紧急状态,r即recover,表示恢复状态。也就是在服务出现警告状态、未知状态、紧急状态和重新恢复状态时都发送通知给使用者。
  6. host_notification_options       d,u,r         #定义主机在什么状态下需要发送通知给使用者,d即down,表示宕机状态,u即unreachable,表示不可到达状态,r即recovery,表示重新恢复状态。
  7. service_notification_commands   notify-service-by-email  #服务故障时,发送通知的方式,可以是邮件和短信,这里发送的方式是邮件,其中“notify-service-by-email”在commands.cfg文件中定义。
  8. host_notification_commands      notify-host-by-email     #主机故障时,发送通知的方式,可以是邮件和短信,这里发送的方式是邮件,其中“notify-host-by-email”在commands.cfg文件中定义。
  9. register                        0
  10. }
  11. define host{
  12. name                            generic-host    #主机名称,这里的主机名,并不是直接对应到真正机器的主机名,乃是对应到在主机配置文件里所设定的主机名。
  13. notifications_enabled           1
  14. event_handler_enabled           1
  15. flap_detection_enabled          1
  16. failure_prediction_enabled      1
  17. process_perf_data               1
  18. retain_status_information       1
  19. retain_nonstatus_information    1
  20. notification_period             24x7           #指定“发送通知”的时间段,也就是可以在什么时候发送通知给使用者。
  21. register                        0
  22. }
  23. define host{
  24. name                            linux-server    #主机名称
  25. use                             generic-host    #use表示引用,也就是将主机generic-host的所有属性引用到linux-server中来,在nagios配置中,很多情况下会用到引用。
  26. check_period                    24x7            #这里的check_period告诉nagios检查主机的时间段
  27. check_interval                  5                #nagios对主机的检查时间间隔,这里是5分钟。
  28. retry_interval                  1               #重试检查时间间隔,单位是分钟。
  29. max_check_attempts              10               #nagios对主机的最大检查次数,也就是nagios在检查发现某主机异常时,并不马上判断为异常状况,而是多试几次,因为有可能只是一时网络太拥挤,或是一些其他原因,让主机受到了一点影响,这里的10就是最多试10次的意思。
  30. check_command                   check-host-alive  #指定检查主机状态的命令,其中“check-host-alive”在commands.cfg文件中定义。
  31. notification_period             workhours      #主机故障时,发送通知的时间范围,其中“workhours”在timeperiods.cfg中进行了定义,下面会陆续讲到。
  32. notification_interval           120            #在主机出现异常后,故障一直没有解决,nagios再次对使用者发出通知的时间。单位是分钟。如果你觉得,所有的事件只需要一次通知就够了,可以把这里的选项设为0
  33. notification_options            d,u,r          #定义主机在什么状态下可以发送通知给使用者,d即down,表示宕机状态,u即unreachable,表示不可到达状态,r即recovery,表示重新恢复状态。
  34. contact_groups                  admins         #指定联系人组,这个“admins”在contacts.cfg文件中定义。
  35. register                        0
  36. }
  37. define service{
  38. name                            generic-service   #定义一个服务名称
  39. active_checks_enabled           1
  40. passive_checks_enabled          1
  41. parallelize_check                1
  42. obsess_over_service             1
  43. check_freshness                0
  44. notifications_enabled            1
  45. event_handler_enabled           1
  46. flap_detection_enabled           1
  47. failure_prediction_enabled        1
  48. process_perf_data               1
  49. retain_status_information       1
  50. retain_nonstatus_information    1
  51. is_volatile                     0
  52. check_period                    24x7      #这里的check_period告诉nagios检查服务的时间段。
  53. max_check_attempts              3         #nagios对服务的最大检查次数。
  54. normal_check_interval           10       #此选项是用来设置服务检查时间间隔,也就是说,nagios这一次检查和下一次检查之间所隔的时间,这里是10分钟。
  55. retry_check_interval            2        #重试检查时间间隔,单位是分钟。
  56. contact_groups                  admins   #指定联系人组,同上。
  57. notification_options            w,u,c,r  #这个定义的是“通知可以被发出的情况”。w即warn,表示警告状态,u即unknown,表示不明状态,c即criticle,表示紧急状态,r即recover,表示恢复状态。也就是在服务出现警告状态、未知状态、紧急状态和重新恢复后都发送通知给使用者。
  58. notification_interval           60       #在服务出现异常后,故障一直没有解决,nagios再次对使用者发出通知的时间。单位是分钟。如果你认为,所有的事件只需要一次通知就够了,可以把这里的选项设为0。
  59. notification_period             24x7     #指定“发送通知”的时间段,也就是可以在什么时候发送通知给使用者。
  60. register                        0
  61. }

(2)resource.cfg文件

resource.cfg是nagios的变量定义文件,文件内容只有一行:

  1. $USER1$=/usr/local/nagios/libexec

 其中,变量$USER1$指定了安装nagios插件的路径,如果把插件安装在了其它路径,只需在这里进行修改即可。需要注意的是,变量必须先定义,然后才能在其它配置文件中进行引用。

(3)理解Nagios宏及其工作机制

Nagios配置非常灵活,继承和引用是一大特征,另一个重要特征就是可以在命令行的定义里使用宏,通过定义宏,nagios可以灵活的获取主机、服务和其它对象的信息。

宏的工作机制

在执行命令之前,nagios将对命令里的每个宏替换成它们应当取得的值。这种宏替换发生在Nagios执行各种类型的宏时候。例如主机和服务的检测、通知、事件处理等。

宏的分类:

默认宏、按需而成的宏、用户自定制宏等。

默认宏:

主机IP地址宏

当在命令定义中使用主机或服务宏时,宏将要执行所用的值指向主机或服务所带有值。看下面这个例子,假定在check_ping命令定义里使用了一个主机对象,例如这样:

  1. define host{
  2. host_name               ixdba
  3. address   192.168.12.246
  4. check_command               check_ping
  5. ...
  6. }
  7. define command{
  8. command_name    check_ping
  9. command_line    /usr/local/nagios/libexec/check_ping -H $HOSTADDRESS$ -w 100.0,90% -c 200.0,60%
  10. }

那么执行这个主机检测命令时展开并最终执行的将是这样的:

  1. /usr/local/nagios/libexec/check_ping -H 192.168.12.246 -w 100.0,90% -c 200.0,60%

命令参数宏

同样你可以向命令传递参数,这样可以保证命令定义更具通用性。参数指定在对象(象主机或服务)中定义,用一个“!”来分隔,例如这样:

  1. define service{
  2. host_name  linuxbox
  3. service_description PING
  4. check_command              check_ping!200.0,80%!400.0,40%
  5. ...
  6. }

在上例中,服务的检测命令中含有两个参数(请参考$ARGn$宏),而$ARG1$宏将是"200.0,80%",同时$ARG2$将是"400.0,40%"(都不带引号)。假定使用之前的主机定义并这样来定义你的check_ping命令:

  1. define command{
  2. command_name    check_ping
  3. command_line    /usr/local/nagios/libexec/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$
  4. }

那么对于服务的检测命令最终将是这样子的:

  1. /usr/local/nagios/libexec/check_ping -H 192.168.12.246 -w 200.0,80% -c 400.0,40%

Nagios可用的全部的宏

主机宏

$HOSTNAME$  主机简称(如"web"),取自于主机定义里的host_name域

$HOSTADDRESS$  主机地址。取自于主机定义里的address域

服务宏

$SERVICESTATE$ 服务状态描述,有w,u,c

$SERVICEDESC$   对当前服务的描述  

联系人宏

$CONTACTNAME$   表示联系人,在联系人文件中定义

通知宏

$NOTIFICATIONTYPE$    返回下面信息:("PROBLEM", "RECOVERY", "ACKNOWLEDGEMENT", "FLAPPINGSTART", "FLAPPINGSTOP", "FLAPPINGDISABLED", "DOWNTIMESTART", "DOWNTIMEEND", or "DOWNTIMECANCELLED").

日期/时间宏

$LONGDATETIME$  当前的日期/时间戳

文件宏

$LOGFILE$  日志文件的保存位置。

$MAINCONFIGFILE$  主配置文件的保存位置。

其他宏

$ADMINEMAIL$  全局的管理员EMail地址

$ARGn$  指向第n个命令传递参数(通知、事件处理、服务检测等)。Nagios支持最多32个参数宏

(4)commands.cfg文件

 此文件默认是存在的,无需修改即可使用,当然如果有新的命令需要加入时,在此文件进行添加即可。这里并未列出文件的所有内容,仅仅介绍了配置中用到的一些命令。

  1. #下面是notify-host-by-email命令的定义
  2. define command{
  3. command_name    notify-host-by-email    #命令名称,即定义了一个主机异常时发送邮件的命令。
  4. command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$    #命令具体的执行方式,“-H $HOSTADDRESS$” 是定义目标主机的地址,这个地址在hosts.cfg文件中定义了。
  5. }
  6. #下面是notify-host-by-email命令的定义
  7. define command{
  8. command_name    notify-service-by-email   #命令名称,即定义了一个服务异常时发送邮件的命令
  9. command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
  10. }
  11. #下面是notify-host-by-email命令的定义
  12. define command{
  13. command_name    check-host-alive   #命令名称,用来检测主机状态。
  14. command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5     #这里的变量$USER1$在resource.cfg文件中进行定义,即$USER1$=/usr/local/nagios/libexec
  15. ,那么check_ping的完整路径为/usr/local/nagios/libexec/check_ping。 “-w 3000.0,80%”中“-w”说明后面的一对值对应的是“WARNING”状态,“80%”是其临界值。“-c 5000.0,100%”中“-c”说明后面的一对值对应的是“CRITICAL”,“100%”是其临界值。“-p 1”说明每次探测发送一个包。
  16. }
  17. #下面是notify-host-by-email命令的定义
  18. define command{
  19. command_name    check_ftp
  20. command_line    $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$    #$ARG1$是指在调用这个命令的时候,命令后面的第一个参数。
  21. }
  22. #下面是check_http命令的定义
  23. define command{
  24. command_name    check_http
  25. command_line    $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
  26. }
  27. #下面是check_ssh命令的定义
  28. define command{
  29. command_name    check_ssh
  30. command_line    $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
  31. }

(5) hosts.cfg文件

 此文件默认不存在,需要手动创建,hosts.cfg主要用来指定被监控的主机地址以及相关属性信息,一个配置好的实例如下:

  1. define host{
  2. use                     linux-server  #引用主机linux-server的属性信息,linux-server主机在templates.cfg文件中进行了定义。
  3. host_name               web    #主机名
  4. alias                    ixdba-web  #主机别名
  5. address                 192.168.12.251  #被监控的主机地址,这个地址可以是ip,也可以是域名。
  6. }
  7. ?
  8. define host{
  9. use                     linux-server
  10. host_name              mysql
  11. alias                    ixdba-mysql
  12. address                 192.168.12.237
  13. }
  14. ?
  15. define hostgroup{      #定义一个主机组
  16. hostgroup_name  sa-servers        #主机组名称,可以随意指定。
  17. alias           sa servers    #主机组别名
  18. members         web,mysql   #主机组成员,其中“web”、“mysql”就是上面定义的两个主机。
  19. }

(6) services.cfg文件

 此文件默认也不存在,需要手动创建,services.cfg文件主要用于定义监控的服务和主机资源,例如监控http服务、ftp服务、主机磁盘空间、主机系统负载等等。

  1. #################  ixdba   web  #####################
  2. define service{
  3. use                             local-service  #引用local-service服务的属性值,local-service在templates.cfg文件中进行了定义。
  4. host_name                       web  #指定要监控哪个主机上的服务,“web”在hosts.cfg文件中进行了定义。
  5. service_description             PING  #对监控服务内容的描述,以供维护人员参考。
  6. check_command                   check_ping!100.0,20%!500.0,60% #指定检查的命令,check_ping命令在commands.cfg中定义,后跟两个参数,命令与参数间用!分割。
  7. }
  8. define service{
  9. use                             local-service
  10. host_name                       web
  11. service_description              SSH
  12. check_command                  check_ssh    # check_ssh命令也在commands.cfg中定义。
  13. }
  14. define service{
  15. use                             local-service
  16. host_name                       web
  17. service_description              SSHD
  18. check_command                  check_tcp!22
  19. }

(7) contacts.cfg文件

 contacts.cfg是一个定义联系人和联系人组的配置文件,当监控的主机或者服务出现故障,nagios会通过指定的通知方式(邮件或者短信)将信息发给这里指定的联系人或者使用者。

  1. define contact{
  2. contact_name                    sasystem  #联系人名称
  3. use                             generic-contact #引用generic-contact的属性信息,其中“generic-contact”在templates.cfg文件中进行定义
  4. alias                           sa-system  #联系人别名
  5. email                          ixdba@126.com  #联系人的邮件地址
  6. }
  7. define contactgroup {
  8. contactgroup_name    admins #联系人组名称
  9. alias                system administrator group #联系人组描述
  10. members              sasystem  #联系人组成员,其中“sasystem”就是上面定义的联系人
  11. }

(8) timeperiods.cfg文件

 此文件只要用于定义监控的时间段,下面是一个配置好的实例:

  1. #下面是定义一个名为24x7的时间段,即监控所有时间段
  2. define timeperiod{
  3. timeperiod_name 24x7
  4. alias           24 Hours A Day, 7 Days A Week
  5. sunday          00:00-24:00
  6. monday          00:00-24:00
  7. tuesday         00:00-24:00
  8. wednesday       00:00-24:00
  9. thursday        00:00-24:00
  10. friday          00:00-24:00
  11. saturday        00:00-24:00
  12. }
  13. #下面是定义一个名为workhours的时间段,即工作时间段。
  14. define timeperiod{
  15. timeperiod_name workhours
  16. alias           Normal Work Hours
  17. monday          09:00-17:00
  18. tuesday         09:00-17:00
  19. wednesday       09:00-17:00
  20. thursday        09:00-17:00
  21. friday          09:00-17:00
  22. }

(9) cgi.cfg文件

 此文件用来控制相关cgi脚本,如果想在nagios的web监控界面执行cgi脚本,例如重启nagios进程、关闭nagios通知、停止nagios主机检测等,这时就需要配置cgi.cfg文件了。

 由于nagios的web监控界面验证用户为ixdba,所以只需在cgi.cfg文件中添加此用户的执行权限就可以了,需要修改的配置信息如下:

  1. default_user_name=ixdba
  2. authorized_for_system_information=nagiosadmin,ixdba
  3. authorized_for_configuration_information=nagiosadmin,ixdba
  4. authorized_for_system_commands=ixdba
  5. authorized_for_all_services=nagiosadmin,ixdba
  6. authorized_for_all_hosts=nagiosadmin,ixdba
  7. authorized_for_all_service_commands=nagiosadmin,ixdba
  8. authorized_for_all_host_commands=nagiosadmin,ixdba

(10) nagios.cfg文件

  Nagios.cfg默认的路径为/usr/local/nagios/etc/nagios.cfg,是nagios的核心配置文件,所有的对象配置文件都必须在这个文件中进行定义才能发挥其作用,这里只需将对象配置文件在Nagios.cfg文件中进行引用即可。

  1. log_file=/usr/local/nagios/var/nagios.log
  2. “log_file”变量用来定义nagios日志文件的路径。
  3. cfg_file=/usr/local/nagios/etc/hosts.cfg
  4. cfg_file=/usr/local/nagios/etc/services.cfg
  5. cfg_file=/usr/local/nagios/etc/commands.cfg
  6. cfg_file=/usr/local/nagios/etc/contacts.cfg
  7. cfg_file=/usr/local/nagios/etc/timeperiods.cfg
  8. cfg_file=/usr/local/nagios/etc/templates.cfg
  9. “cfg_file”变量用来引用对象配置文件,如果有更多的对象配置文件,在这里依次添加即可。
  10. object_cache_file=/usr/local/nagios/var/objects.cache
  11. 该变量用于指定一个“所有对象配置文件”的副本文件,或者叫对象缓冲文件
  12. resource_file=/usr/local/nagios/etc/resource.cfg
  13. 该变量用于指定nagios资源文件的路径,可以在Nagios.cfg中定义多个资源文件。
  14. status_file=/usr/local/nagios/var/status.dat
  15. 该变量用于定义一个状态文件,此文件用于保存nagios的当前状态、注释和宕机信息等。
  16. status_update_interval=10
  17. 该变量用于定义状态文件(即status.dat)的更新时间间隔,单位是秒,最小更新间隔是1秒。
  18. nagios_user=nagios
  19. 该变量指定了Nagios进程使用哪个用户运行。
  20. nagios_group=nagios
  21. 该变量用于指定Nagios使用哪个用户组运行。
  22. check_external_commands=1
  23. 该变量用于设置是否允许nagios在web监控界面运行cgi命令,也就是是否允许nagios在web界面下执行重启nagios、停止主机/服务检查等操作。“1”为运行,“0”为不允许。
  24. command_check_interval=2
  25. 该变量用于设置nagios对外部命令检测的时间间隔,如果指定了一个数字加一个"s"(如10s),那么外部检测命令的间隔是这个数值以秒为单位的时间间隔。如果没有用"s",那么外部检测命令的间隔是以这个数值的“时间单位”的时间间隔。
  26. interval_length=60
  27. 该变量指定了nagios的时间单位,默认值是60秒,也就是1分钟,即在nagios配置中所有的时间单位都是分钟。

未完待续!

本文出自 “技术成就梦想” 博客,转载请与作者联系!

运维监控利器Nagios之:nagios配置详解的更多相关文章

  1. nagios原理及配置详解

    1.Nagios如何监控Linux机器 NRPE总共由两部分组成:(1).check_nrpe插件,运行在监控主机上.服务器端安装详见:(2).NRPE daemon,运行在远程的linux主机上(通 ...

  2. 运维监控利器smokeping 500报错处理

    检查apache日志发现有以下错误: No such file or directory: exec of '/usr/local/smokeping/htdocs/smokeping.cgi' fa ...

  3. linux学习8 运维基本功-Linux获取命令使用帮助详解

    一.Linux基础知识 1.人机交互界面: a.GUI b.CLI:[login@hostname workdir]# COMMAND 2.命令知识 通用格式:# COMMAND  OPTIONS A ...

  4. 建设DevOps统一运维监控平台,全面的系统监控 Zabbix VS Nagios VS Open-Falcon OR Prometheus

    前言 随着Devops.云计算.微服务.容器等理念的逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器.虚拟机.物理机不一而足.面对动辄几百上千个虚拟机.容 ...

  5. CentOS服务器运维监控Nagios(一)

    CentOS下搭建Nagios 王尚 2014.11.09 操作系统:CentOS-6.5-i386-bin-DVD1.iso 安装在VM中进行测试的. 本章需要的软件链接: php-5.3.2.ta ...

  6. 优化Linux内核参数/etc/sysctl.conf sysctl 《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》

    优化Linux内核参数/etc/sysctl.conf  sysctl  <高性能Linux服务器构建实战:运维监控.性能调优与集群应用> http://book.51cto.com/ar ...

  7. 运维监控-Zabbix Server 使用QQ SMTP发送邮件报警及定制报警内容

    运维监控-Zabbix Server 使用QQ SMTP发送邮件报警及定制报警内容 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客采用腾讯邮箱,想必大家都对QQ很了解,所以 ...

  8. 运维监控-使用Zabbix Server 创建 Actions

    运维监控-使用Zabbix Server 创建 Actions 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. zabbix的action默认是关闭的,因此我们想使用它就得先启用哟. ...

  9. 运维监控-使用Zabbix Server 添加自定义 item

    运维监控-使用Zabbix Server 监控自定义 item  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客就直接开门见山如何使用Zabbix Server 监控自定义 ...

随机推荐

  1. Oracle Global Finanicals Technical Reference(二)

    Skip Headers Oracle Global Finanicals Oracle Global Financials Technical Reference Manual Release 11 ...

  2. DB Query Analyzer 5.02 is distributed, 53 articles concerned have been published

    DB Query Analyzer is presented by Master Gen feng, Ma from Chinese Mainland. It has English version ...

  3. C++笔记018:构造函数的调用规则

      原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 一.默认构造函数 两个特殊的构造函数 1.默认无参构造函数 当类中没有定义构造函数时,编译器默认提供一个无参构造函数,并且其函数体为空 ...

  4. JSON 的含义?

    JSON 的全称是 JavaScript Object Notation,是一种轻量级的数据交换格式.JS ON 与 XML 具有相同的特性,例如易于人编写和阅读,易于机器生成和解析.但是 JSON ...

  5. Strom topology 设计的演进

    场景:采集日志数据,日志数据有多个字段组成,需求是根据日志数据中的N个字段(维度),去统计指标数据(个数.平均值)等.

  6. cannot import name '_imaging' 与No module named PIL解决方法

    今天学习廖雪峰的python 第三方模块pillow一章. 直接使用from PIL import Image 会报"No module named PIL",显然这是没有安装pi ...

  7. 原生Eclipse下Java服务器调试的一个问题

    当你对Server的配置修改以后,最好到 workspacedir\.metadata\.plugins\org.eclipse.wst.server.core\tmp0目录下把缓存文件给删除了,否则 ...

  8. Django signals机制的几个简单问题

    1.Django signals机制不是异步执行,是同步执行,所以需要异步执行的耗时任务不能用这个. 2.异步耗时任务不用这个,那些用signals?主要是解耦那些多次重复场合被调用的函数.直接用事件 ...

  9. Oracle 11g一步步安装详解

    本文所需的安装包都存放在我网盘中,需要的私聊~ 一.安装VMware tools工具(非必须) 1.虚拟机上点击安装 因为我在虚拟机中做的,后面oracle 安装是图形化安装,需要屏幕大一点,不然有些 ...

  10. Android 加载GIF图最佳实践

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/75578109 本文出自[赵彦军的博客] 起因 最近在项目中遇到需要在界面上显示一个 ...