目 录CONTENT

文章目录

ApplicationManagerAPM如何配置iis站点和程序池自启

管理员
2024-08-22 / 0 评论 / 0 点赞 / 65 阅读 / 13923 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-08-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

接口被频繁请求,有时候会导致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

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

  1. 当用户名密码失败次数过多,导致 账户被锁定的问题【APM】登录密码重置 (manageengine.cn)

解决不监视程序池的方法 IIS Server monitor does not list Application Pools (Applicable only for AppManager versions till 15110) (manageengine.com)

0

评论区