标签: centralized-logging

apt-get 的“sudo yum install -y awslogs”相当于什么?

根据aws 文档,这是安装 aws-log 代理的命令:

sudo yum install -y awslogs
Run Code Online (Sandbox Code Playgroud)

但是,由于我使用的是 ubuntu,因此我必须使用apt-get. 但该aws-log软件包不可用。

是否有相当于aws-logubuntu 的?如果没有,我该如何安装它?

amazon-cloudwatch centralized-logging

9
推荐指数
1
解决办法
6902
查看次数

AWS Cloudwatch 代理未获取更改

我难住了。我有两个由 AWS CloudWatch 代理监视的日志文件。第一个,/var/log/nginx/access.log,工作得很好。第二个,/var/log/otherserver/access.log,没有任何变化。最终不会,除非我重新启动代理,然后它会获取更改并将它们按预期发送到 CloudWatch。

/var/log/otherserver/access.log是从另一台无法安装代理的服务器定期同步的日志文件。命令看起来像:

rsync -av user@host:/var/log/access.log /var/log/otherserver/access.log
Run Code Online (Sandbox Code Playgroud)

代理肯定可以读取它,因为它会在重新启动后读取更改。

配置文件中条目的位置似乎无关紧要。

rsync 日志文件的日志条目中的日期与服务器相同(一切都是 UTC)。

如果我移动日志文件,代理开始抱怨:

2015-12-14 16:02:26,158 - cwlogs.push.stream - WARNING - 3344 - Thread-1 - No file is found with given path '/var/log/otherserver/access.log'.
Run Code Online (Sandbox Code Playgroud)

第二个日志文件的配置几乎与第一个(如下)相同。

[website.access.log]
#datetime_format = 09/Dec/2015:14:15:02 +0000
datetime_format = %d/%b/%Y:%H:%M:%S %z
file = /var/log/otherserver/access.log
log_stream_name = master-platform.sh
initial_position = start_of_file
log_group_name = web-access

[app.access.log]
#datetime_format = 09/Dec/2015:14:15:02 +0000
datetime_format = %d/%b/%Y:%H:%M:%S %z
file = /var/log/nginx/lax.access.log
log_stream_name = …
Run Code Online (Sandbox Code Playgroud)

logging amazon-web-services centralized-logging

5
推荐指数
1
解决办法
4659
查看次数

为通过 stdout 和 stderr 记录到日志的消息设置 INFO/ERROR 优先级?

我们有许多生产应用程序(第一方和第三方),它们将日志记录留给运行应用程序的进程,而只记录stdoutforINFOstderrforERROR日志(即只有 2 个日志优先级:)INFO|ERROR

对于应用程序的 systemd 服务单元,可以这样设置:

StandardOutput=journal
StandardError=journal
Run Code Online (Sandbox Code Playgroud)

这使得 DevOps 可以通过 systemd 单元和日志来管理一切,以便于集中日志收集、监控任何内容……并且他们不需要担心为部署的每个应用程序定位和解析不同格式/位置的不同日志。

systemd 的日志具有与 syslog 的 7 级消息优先级系统兼容的消息优先级系统。 INFO是水平6ERROR是水平3。有关更多详细信息,请参阅参考资料。

问题是... systemd/journal 显然不区分从 stdout 与 stderr 写入日志的消息。stdout 和 stderr 消息都以默认优先级 6 ( ) 写入日志INFO

示例:“精美应用程序”

/opt/log-test.sh

StandardOutput=journal
StandardError=journal
Run Code Online (Sandbox Code Playgroud)

/etc/systemd/system/log-test.service

[Unit]
Description=log test for journal

[Service]
Type=simple

ExecStart=/opt/log-test.sh

StandardOutput=journal
StandardError=journal
SyslogIdentifier=log-test
Run Code Online (Sandbox Code Playgroud)

运行它并检查日志

$ systemctl start log-test
$ journalctl -u log-test
-- Logs …
Run Code Online (Sandbox Code Playgroud)

monitoring logging systemd journald centralized-logging

3
推荐指数
1
解决办法
2370
查看次数