如何使用 node.js 作为 Web 服务器来监控每个域的带宽使用情况?
有谁知道我没有遇到过的 API 调用?
或者其他人在按带宽收费的多租户环境中使用的模块或其他方法?
更新:
有谁知道轻量级代理/服务器可以放在任何可以通过检查域记录这些带宽统计信息的 Web 服务器(node.js、apache 等)之前?
我Invoke-WebRequest在 SCOM PowerShell 脚本中使用它来定期监视 URI 的可用性。我的脚本相当简单(因为我对 PS 知之甚少:-)):
$scomapi = new-object -comObject "MOM.ScriptAPI"
$scompb = $scomapi.CreatePropertyBag()
$fullHostName = "https://" + <full path to monitored web endpoint>
$result = Invoke-WebRequest $fullHostName
if($result.content) {
$scompb.AddValue("ConfigurationReachable",$true);
} else {
$scompb.AddValue("ConfigurationReachable",$false);
}
$scomapi.AddItem($scompb)
$scomapi.ReturnItems()
Run Code Online (Sandbox Code Playgroud)
为了测试这个脚本,我在hosts运行 SCOM 代理(我想要进行监视)的客户端上的文件中进行了手动更改。有趣的是,即使主机无法访问,脚本也能成功获取 Web 端点(通过从该计算机进行 ping 测试来测试)。
我直接从命令行做了一些进一步的测试,没有任何变化。即使我没有 ping 到远程地址,Invoke-WebRequest仍然成功并获取网页。那么我在这里做错了什么?
我是 zabbix 的新手。我有一个使用 zabbix 监控不同日志消息发生的基本要求。比如说,当有日志消息时"server starting",zabbix 应该显示该警报。这个想法是,如果服务器在过去 10 分钟内(重新)启动 10 次,zabbix 仪表板(或任何其他地方)应该显示 10 次。
我为此做了以下工作:
Run Code Online (Sandbox Code Playgroud)Type : Zabbix Agent (Active) key : log[/opt/mylog/logs/abc.log,server starting] Type of information : Log Update Interval (in sec) : 30
{MyTemplate:log[/opt/mylog/logs/abc.log,服务器启动].logeventid(1)}=0
使用 logeventid(1),我看到警报(触发器)只生成一次。它在Dashboard --> Last 20 issues. 如果我转到Monitoring --> Trigger,我只会看到一次警报,尽管日志文件有 10 个消息条目"server starting"(服务器重新启动了 10 次)。
然后我将触发器设置为以下:
{MyTemplate:log[/opt/mylog/logs/abc.log,服务器启动].nodata(300)}=0
现在,在Monitoring --> Trigger,我看到警报(触发)10 次,但是,Dashboard --> Last 20 issues在 300 秒后它就消失了。
我的问题是:
我应该使用什么触发功能?如果同一消息在一段时间内在日志文件中出现 …
Linux 支持“sys/wait.h”中定义的 POSIX 等待机制。方法wait、waitid、waitpid可用于在使用fork创建的父进程和子进程之间交换状态信息。
Windows 既不提供 fork 的(本机)支持,也不提供 POSIX 等待机制。相反,还有其他方法可用于 spwan 子进程,即CreateProcess。
将使用 fork/wait 用 C 或 C++ 编写的 linux 应用程序移植到 Windows 时,监视父进程中子进程的状态更改(即WEXITED、WSTOPPED、WCONTINUED)的最合适的本机*方法是什么?
*本机意味着不使用不随 Windows 附带或由 MS 以运行时环境形式直接提供的其他库、框架、程序(如 cygwin、minGW)。
编辑:根据评论中的要求,我确实以伪代码的形式提供了一些关于应该解决什么问题的更多信息:
//creates a new child process that is a copy of the parent (compare
//POSIX fork()) and returns some sort of handle to it.
function spawnChild()
// returns TRUE if called from the master process FALSE otherwise …Run Code Online (Sandbox Code Playgroud) 我使用 CloudWatch 自定义指标监控了性能计数器,例如内存、可用磁盘等。我可以使用 CloudWatch 监控服务吗?我检查了 cloud watch 监控的功能,但没有发现与监控服务相关的内容。我只需要监控服务是否正在运行,并在服务状态发生变化时发送通知。
我想使用 inotifyway 来监视文件夹中新创建或移动的文件,但仅限于文件。
假设我的文件夹名为“watched_folder_test”,我的文件名为“toto.txt”。如果我使用 mv 命令将文件移动到 watched_folder_test 我得到通知我想要
假设在 watched_folder_test 中,我有一个名为 foo 的文件夹,我创建了一个名为“bar.txt”的文件。我收到了我想要的通知。
但这是我的问题。如果我在 watch_folder_test 之外有一个文件夹名称 foo 并且我在其中有一个文件名 bar.txt ( foo/bar.txt ) 并且我将整个文件夹移动到 watch_folder_test 中。我只收到 foo 已创建的通知!没有关于 bar.txt 的内容。但是,我并不真正关心 foo,我只想知道“bar.txt”
到目前为止,这是我的代码
#!/bin/bash
inotifywait -mr /home/romain/depot/watched_folder_test -e create -e moved_to |
while read path action file; do
echo "The file '$file' appeared in directory '$path' via '$action'"
for ac in $action
do
isdir=`echo $ac | grep 'ISDIR'`
if [ $? == 0 ]
then
echo "It's a folder"
else
echo "It's …Run Code Online (Sandbox Code Playgroud) 是否可以以这种模式查看目录 /storage/data/usernames/Download/ -> /storage/data/*/Download/ 我需要查看是否在每个用户的下载文件夹中进行了更改。也许我需要创建所有路径的列表,将其放入数组并在每个文件夹上循环启动 inotify 进程,但这对系统来说可能很重。
如何捕获FireDAC连接上的mysql_real_query?
我在Delphi上有一个带有TFDMoniCustomClientLink的FireDac连接.我需要捕获mysqL_real_query.我尝试启用和禁用所有EventKinds,但我找不到办法做到这一点.我发现越接近ekVendor,但它提供了比mysqL_real_query更多的信息.
编辑: mysql_real_query是TFDMoniCustomClienteLink生成的日志文本文件的一个部分.本节显示在数据库上执行的sql.我在这个术语中找到的唯一参考是:http://docwiki.embarcadero.com/Libraries/Berlin/en/FireDAC.Phys.MySQLWrapper.TMySQLLib.mysql_real_query,这里是https://dev.mysql.com/doc/ refman/5.7/en/mysql-real-query.html.
来自TFDMoniCustomClientLink的OnOutput事件中的代码:
procedure TDmConnX.FDMonitorOutput(ASender: TFDMoniClientLinkBase;
const AClassName, AObjName, AMessage: string);
var
lstLog: TStringList;
sFile: ShortString;
begin
lstLog := TStringList.Create;
try
sFile := 'C:\log.txt';
if FileExists(sFile) then
lstLog.LoadFromFile(sFile);
lstLog.Add(AMessage);
lstLog.SaveToFile(sFile);
finally
lstLog.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
生成的日志文件:
. mysql_get_client_info [Ver="5.1.37"]
. mysql_init
. mysql_options [option=1, arg=0]
. mysql_real_connect [host="127.0.0.1", user="user", passwd="***", db="banco", port=3306, clientflag=198158]
. mysql_get_server_info [Ver="5.1.73-community"]
. mysql_real_query [q="SET SQL_AUTO_IS_NULL = 0
. mysql_insert_id [res=0]
. mysql_real_query [q="SHOW VARIABLES LIKE 'lower_case_table_names'
. …Run Code Online (Sandbox Code Playgroud) 我正在尝试寻找一种方法,通过像 Zabbix 这样的 API 以编程方式向 Prometheus 添加监控目标和警报。
例如,当我的云编排软件部署了 3 个新的虚拟机时,我也会将它们作为监控目标添加到 Prometheus 服务器中,并使用一些预定义的规则。
在 Zabbix 中,我可以使用其 API 向服务器添加项目、模板、图形等。通过这种方式,我可以通过监控功能自动化我的云基础设施。
我想使用 Stackdriver 监控来监视我的 GKE 节点的 CPU/mem % 使用率。
但是,在浏览 Stackdriver Monitoring UI 时,似乎没有任何此类选项可用(就百分比而言)。
另一方面,对于(似乎是)绝对内存使用,似乎有 2 个极其相似的指标(它们的描述是相同的)。(附截图)。
有没有人知道如何提供 GKE 节点上使用的内存和 CPU 的百分比?(不是容器)
monitoring google-kubernetes-engine stackdriver google-cloud-monitoring google-cloud-stackdriver
monitoring ×10
bash ×2
inotify ×2
amazon-ec2 ×1
api ×1
bandwidth ×1
c ×1
delphi ×1
firedac ×1
inotifywait ×1
limit ×1
linux ×1
node.js ×1
powershell ×1
prometheus ×1
scom ×1
stackdriver ×1
status ×1
trace ×1
ubuntu ×1
wait ×1
windows ×1
zabbix ×1