首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置收集器,以便在进程运行时进行日志记录

配置收集器,以便在进程运行时进行日志记录
EN

Stack Overflow用户
提问于 2015-08-21 18:22:03
回答 1查看 417关注 0票数 3

我正在尝试使用Bosun来确定某些进程是否正在运行,然后最终提醒它们是向上的还是向下的。我可能误解了医生,但我搞不懂。

波孙跑得很好。我让scollector在Ubuntu14LTS上运行,并正确使用我的配置文件。

以下是我在我的scollector.toml中拥有的内容:

代码语言:javascript
复制
host="blah:8070"
hostname="cass01"

[[Process]]
  command =  "^.*(java).*(CassandraDaemon)$"
  name = "Cassandra"

然后,我希望在我的主机cass01下看到一个公制的标题"cassandra“,但它是无处可见的。还有其他衡量标准。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-21 18:44:59

目前,Command是二进制进程路径上的部分匹配,直到第一个空格分隔符。Args参数是区分进程的多个实例的正则表达式。因此,对于java进程,您可以使用如下内容:

代码语言:javascript
复制
[[Process]]
  Command = "java"
  Name = "Cassandra"
  Args = "CassandraDaemon$"

这将匹配如下命令行:

代码语言:javascript
复制
/usr/bin/java /usr/bin/CassandraDaemon

这假设该进程的/proc/<pid>/cmdline以CassandraDaemon结尾。如果不以该字符串结尾,则需要将Args更改为"CassandraDaemon“,这将匹配包含该字符串的任何java进程。

此外,一些进程将cmdline更改为nul分隔字符串以外的其他内容。在这些情况下,需要使用Command参数进行匹配,因为Args需要nul分隔符。示例:

代码语言:javascript
复制
cat /proc/80156/cmdline | hexdump -C
00000000  2f 75 73 72 2f 62 69 6e  2f 72 65 64 69 73 2d 73  |/usr/bin/redis-s|
00000010  65 72 76 65 72 20 2a 3a  36 33 37 39 00 00 00 00  |erver *:6379....|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00                                                |.|
00000031

#Example for cmdline without NUL (00) delimiters between args
[[Process]]
  Command = "redis-server *:6379"
  Name = "redis-core"

一旦使用了正确的匹配值,您就会看到指标显示在linux.proc.*下面,其中name标记将与TOML文件中使用的名称相匹配。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32146992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档