查看“看门狗Wawa使用说明”的源代码
←
看门狗Wawa使用说明
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
管理员
您可以查看和复制此页面的源代码。
= 1. 关于Wawa = Wawa是看门狗,自动启动须监控的应用程序,并在其进程异常退出时重启。Wawa与MDCS配套,可在Windows、Ubuntu上实现各子系统的守护监控功能,并通过Web API实现与上位机集成。 在开发站 [https://dev.lessokaji.com/index.php?topic=203.msg583#msg583 下载Wawa] = 2. 安装 = Wawa使用 .NET 6.0开发,支持跨平台运行。请参考微软 .NET 官网安装 .NET 6.0 Download .NET 6.0 (Linux, macOS, and Windows) (microsoft.com) 。 Wawa的目录结构如下: WAWA ├─logs // app.log是Wawa运行日志,最多5个文件,文件最大100M ├─programs // 被监控的应用程序目录。本例是Ubuntu环境的目录结构 │ ├─DetourLite // DetourLite目录 │ │ └─log │ └─Medulla // Medulla目录 │ └─log ├─run // 由Wawa启动的进程Id存在此目录 Wawa的进程监控逻辑如下: # Wawa启动时读入配置文件,根据AutoStart参数(默认是true)判断是否启动programs目录下的程序。如须启动,则扫描programs目录(含子目录)下的可执行程序,Linux是"*.sh",Windows是"*.exe"。程序启动后将其进程Id保存到run目录下,文件格式是"{程序文件名}.pid"。 # Wawa定时扫描已启动程序,如发现程序进程退出,且不是Wawa关闭,则重启并记录日志。 appsettings.json是Wawa配置文件。 { "Token": { "secret": "HRwOi8vc2NoZW1hcy5", "issuer": "logimind.com.cn", "audience": "WebApi", "accessExpiration": 30, "refreshExpiration": 60 }, "Urls": "<nowiki>http://0.0.0.0:7100</nowiki>", // Web服务监听地址 "Kestrel": { "Endpoints": { "Http": { "Url": "<nowiki>http://0.0.0.0:7100</nowiki>" } } }, "AllowedHosts": "*", "Wawa": { "AutoStart": true, // 自动启动被监控程序 "WatchdogScanInterval": 3 // 扫描间隔为3秒 } } 用户可用Wawa的Web API手动启动或停止程序。Wawa会监视由其启动的程序进程。如程序进程由Wawa停止,则不会自动重启,如此可方便用户执行维护操作,比如调试程序期间手动启停程序。 [[文件:Image-20240620095128142.png|无框|723x723像素]] '''图 2-1 Wawa Web API''' 使用浏览器输入"<nowiki>http://{ip}:7100/swagger/index.html</nowiki>"(把"{ip}"替换为Wawa所在PC的IP地址),打开wawa的swagger页面。Wawa提供了以下功能接口: {| class="wikitable" !接口名称 !路径 !用途 |- |操作系统性能 |/Top/SystemUsage |返回Wawa所在PC的CPU占用率、内存占用率。 |- |监控程序列表 |/Watchdog/Program |返回programs目录下的可执行文件清单。在使用启动和停止程序接口时以此为参数。 |- |启动程序 |/Watchdog/Start |启动程序。如果程序已运行则忽略。 |- |停止程序 |/Watchdog/Stop |停止程序。如果程序已退出则忽略。成功停止程序后,Wawa删除run目录下对应的pid文件,将其移出监控队列。 |- |进程状态 |/Watchdog/ProcessState |返回运行中程序状态,包括其当前和峰值内存占用量(字节单位)。 |} <blockquote>提示:如果需要手动启停程序,记得用“停止程序”接口将其停止,以免Wawa自动重启。生产环境下,在配置调试工作结束后,应启动程序,并用“进程状态”接口复核。</blockquote> == 2.1 Ubuntu == <blockquote>提示:由于Medulla所需的Mono支持Ubuntu 18 & 20,因此Wawa在这两个发行版通过测试。如果您使用Wawa监控MDCS以外程序也可以。</blockquote>设安装Wawa的Ubuntu用户为"bruce"。懒书开发站的Wawa安装包区分x64和arm64架构,其中脚本均以"/home/bruce"为HOME,安装时请修改为实际使用账号目录。把Wawa安装包解压到Home目录(/home/bruce/wawa,wawa可执行程序在该目录下)。 === 2.1.1 Medulla启动脚本 === 编辑programs/Medulla/medulla.sh,这是启动Medulla的脚本,复核路径配置参数。 #!/bin/bash # MEDULLA_HOME是Medulla的安装目录 MEDULLA_HOME=/home/bruce/Wawa/programs/Medulla # mono被apt安装在/use/bin目录下,在PATH环境变量中,因此不需要指定mono的路径 # Medulla的控制台输出被重定向到medulla.out,如启动错误可查看此文件 mono $MEDULLA_HOME/Medulla.exe > $MEDULLA_HOME/log/medulla.out 把Medulla程序拷贝到programs/Medulla目录下,然后使用medulla.sh启动,以验证Medulla安装正确。<blockquote>提示:Wawa的Medulla目录只有启动脚本,不包含Medulla程序。</blockquote> === 2.1.2 DetourLite启动脚本 === 编辑programs/DetourLite/detour.sh,这是启动DetourLite的脚本,复核路径配置参数。 #!/bin/bash # 检查dotnet安装目录。.NET 6.0安装脚本使用~/dotnet作为安装目录, # .NET 8.0安装脚本使用~/.dotnet作为安装目录 DOTNET_HOME=/home/bruce/dotnet DETOUR_HOME=/home/bruce/wawa/programs/DetourLite $DOTNET_HOME/dotnet $DETOUR_HOME/DetourLite.dll > $DETOUR_HOME/log/detour.out 把DetourLite程序拷贝到programs/DetourLite目录下,然后使用detour.sh启动,以验证DetourLite安装正确。 === 2.1.3 配置Wawa服务 === 编辑wawa.service,检查工作目录与用户名。 [Unit] Description=Wawa is a watchdog for MDCS. After=network.target [Service] # Wawa的工作目录 WorkingDirectory=/home/bruce/wawa # 启动Wawa的命令 ExecStart=/home/bruce/wawa/wawa Restart=always RestartSec=10 Environment=ASPNETCORE_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false # 启动wawa.service的用户及其组 # Medulla & Detour可以在非root账号下运行,如果用root账号运行 # 也可以,WorkingDirectory赋予root读写权限 User=bruce Group=bruce [Install] WantedBy=multi-user.target wawa.service复核后,使用以下指令安装到Ubuntu systemd,实现服务启动启动。 # 拷贝到systemd目录下 sudo cp wawa.service /etc/systemd/system # 启动wawa service sudo systemctl start wawa.service # 如果wawa.service内容有修改,使用 sudo systemctl daemon-reload 让系统重新加载服务配置 # 检查wawa service是否正确启动 sudo systemctl status wawa.service # Wawa启动后的状态输出如下,上半部分是Wawa服务状态,由systemd给出;下半部分是Wawa服务的控制台输出,已经绑定7100端口。 ● wawa.service - Wawa is a watchdog for MDCS. Loaded: loaded (/etc/systemd/system/wawa.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2024-06-20 09:13:53 CST; 1h 18min ago Main PID: 826 (dotnet) Tasks: 41 (limit: 4653) CGroup: /system.slice/wawa.service ├─826 /home/bruce/wawa/wawa ├─993 /bin/bash /home/bruce/wawa/programs/Medulla/medulla.sh ├─995 mono /home/bruce/wawa/programs/Medulla/Medulla.exe ├─996 /bin/bash /home/bruce/wawa/programs/DetourLite/detour.sh └─997 /home/bruce/dotnet/dotnet /home/bruce/wawa/programs/DetourLite/DetourLite.dll 6月 20 09:13:56 bruce-ubuntu dotnet[826]: warn: Microsoft.AspNetCore.Server.Kestrel[0] 6月 20 09:13:56 bruce-ubuntu dotnet[826]: Overriding address(es) '<nowiki>http://0.0.0.0:7100'</nowiki>. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. 6月 20 09:13:56 bruce-ubuntu dotnet[826]: info: Microsoft.Hosting.Lifetime[14] 6月 20 09:13:56 bruce-ubuntu dotnet[826]: Now listening on: <nowiki>http://0.0.0.0:7100</nowiki> 6月 20 09:13:56 bruce-ubuntu dotnet[826]: info: Microsoft.Hosting.Lifetime[0] 6月 20 09:13:56 bruce-ubuntu dotnet[826]: Application started. Press Ctrl+C to shut down. 6月 20 09:13:56 bruce-ubuntu dotnet[826]: info: Microsoft.Hosting.Lifetime[0] 6月 20 09:13:56 bruce-ubuntu dotnet[826]: Hosting environment: Production 6月 20 09:13:56 bruce-ubuntu dotnet[826]: info: Microsoft.Hosting.Lifetime[0] 6月 20 09:13:56 bruce-ubuntu dotnet[826]: Content root path: /home/bruce/Playground/Wawa # 把Wawa服务配置为随系统启动 sudo systemctl enable wawa.service == 2.2 Windows == 把Wawa.zip解压到"c:\mdcs\wawa"目录下。<blockquote>备注:Wawa所在分区应有100G以上磁盘空间,用于存储Detour、Medulla生成的配置和日志数据。</blockquote>把Detour、Medulla、Clumsy拷贝到"programs"目录下,删除"programs\DetourLite"目录。<blockquote>备注:DetourLite用于Ubuntu,Detour用于Windows。</blockquote>使用管理员角色启动PowerShell,如下图。 [[文件:Image-20240620103942280.png|无框|632x632像素]] '''图 2-2 以管理员身份启动Power Shell''' 切换到Wawa目录下,使用Power Shell的"New-Service"指令,把Wawa注册到系统服务。如下图。 [[文件:Image-20240620104216775.png|无框|426x426像素]] '''图 2-3 注册Wawa服务'''<blockquote>注意:BinaryPathName应使用完整路径,本例是"c:\temp\Wawa\wawa.exe"</blockquote>打开任务管理器,在服务标签中可见“Wawa看门狗”服务,点击“启动”。
返回
看门狗Wawa使用说明
。
导航菜单
个人工具
中文(中国大陆)
创建账号
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息