天行健
君子以自强不息
地势坤
君子以厚德载物

Application Manager(APM)如何配置iis站点和程序池自启

  |   0 评论   |   0 浏览

接口被频繁请求,有时候会导致IIS的程序池挂掉,但是接口还是通过,请求过来会有503的问题。现在通过Nginx已经解决掉不会被请求到挂掉的站点上。但是挂掉的还是需要重启的,人为参与的话会造成开发人力资源的浪费,所以我找到了APM,用于自动化重启IIS,这样不用每次挂掉之后,都需要开发参与了。

(监视IIS状态,发现站点/程序池挂掉后能够重启)

配置连接通讯

当IIS挂掉之后,我们都会进行邮件预警

  1. 管理=>连接通讯 ,配置路由,如图:
    在这里插入图片描述
  2. 进入到 连接通讯 页面后,如图:
  • 163邮箱配置方法

    按照我截图中的方式进行配置,最后可以测试连接,当出现 连接成功时,就可以点击保存了.

在这里插入图片描述

  • office邮箱配置方法

    按照我截图中的方式进行配置,最后可以测试连接,当出现 连接成功时,就可以点击保存了.

    在这里插入图片描述


配置电子邮箱动作

配置好要执行的邮箱动作,用于发送邮件。

务必要优先配置 连接通讯

实现结果如图:

  1. 动作类型:发送邮件
  2. 显示名称 我采用 邮件-XXX 用于区分其他的动作,因为在后续监视器里面配置的时候,APM会把所有的动作都在列表里展示,名字区分一下,好选择
  3. 起始地址 如果配置过 连接通讯 会自动带出来。
  4. 结束地址 收件人 多个用 英文版半角 逗号 分割
  5. 主题 邮件的标题
  6. 消息 我采用的是自定义信息,按照自己要求的固有格式发送
    在这里插入图片描述

执行程序动作

执行(成功)后通知、执行(失败)后通知 不是必填项,需要成功和失败都发邮件的,那么就必须要把通讯邮件动作都配置好

实现结果如图:

  1. 显示名称 自定义名称
  2. 脚本位置 我选择的是本地服务器,我采用的是单机上配置一个监视服务,用于监视单机IIS的目的。
  3. 要执行的程序 用 英文半角的双引号 包含执行文件的绝对路径
  4. 程序工作目录 把程序的上一级目录放入即可
  5. 执行(成功)后通知 有配置过的 电子邮箱动作 选中自己成功后的动作即可
  6. 执行(失败)后通知 有配置过的 电子邮箱动作 选中自己失败后的动作即可
    在这里插入图片描述

新建监视器

  1. 选择 监视器=>新建监视器=>IIS服务器,最终路径如何如图在这里插入图片描述
  2. 详细界面如图:
  • 显示名称 监视器名称
  • 主机名/IP地址 服务器搭建的话,输入 localhost / 127.0.0.1 取决于自己服务器配置
  • 子网掩码 查看服务器网络,查看 IPV4 的子网掩码,输入即可
  • 端口号 定义一个端口号,我放入的是要监视的IIS端口
  • 轮询间隔 监视器会按照定义的时间去监视和执行对应的动作。我是默认,具体的时间看自己要求。
    在这里插入图片描述

配置 监视器 告警设置

在这里插入图片描述
在这里插入图片描述


1. 健康状态

当IIS站点挂了之后,健康状态会出现告警

在这里插入图片描述
点击关联:
他会自动关联出现动作,选中重启IIS站点的动作
在这里插入图片描述


2. 可用性

他会自动关联出现动作,选中重启程序池的动作
在这里插入图片描述

取消监视多余的站点、程序池

我的目的是为了监视一个站点,当其他的站点挂了,都会执行重启站点/程序池的动作,所以为了避免重启错误的问题,在动作后面的绿色对钩上,把它X掉,这样就可以达到监视一个站点的效果,如果要监视多个,就配置多个监视器。

在这里插入图片描述
这样有人会有疑问,如果我在下面的网站名、应用池名称里都取配置对应的动作管理,这样不就可以达到谁挂了就自动重启谁么。这个方案我试过了,没有用,监视器轮询的时候,只会执行监视器里面配置的动作管理,网站和程序池配置的不会生效。所以只能用蠢一点的办法,在后面的网站和程序池里面去掉它

重启程序池、站点的Dos代码

-- 重启站点
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
c:\windows\system32\inetsrv\AppCmd.exe stop site "站点名称"
c:\windows\system32\inetsrv\AppCmd.exe start site "站点名称"
pause

------------------------------------------------------------------------------------------

-- 重启程序池
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
c:\windows\system32\inetsrv\AppCmd.exe stop apppool /apppool.name:"程序池名称"
c:\windows\system32\inetsrv\AppCmd.exe start apppool /apppool.name:"程序池名称"
pause


中间遇到的其他问题解决方法

当用户名密码失败次数过多,导致 账户被锁定的问题

解决不监视程序池的方法


标题:Application Manager(APM)如何配置iis站点和程序池自启
作者:Jacky1994
地址:https://www.yyliucha.com/articles/2022/10/24/1666599080011.html
攘外必先安内
渡人不如渡己