awscli cloudwatch日志插件

awscli-cwlogs的Python项目详细描述


这个awscli插件提供了pullpushfilter命令来访问AWS CloudWatch日志服务

awscli cwlogs包在python版本上工作:

  • 2.6.5及以上
  • 2.7.x及以上
  • 3.3.x及以上

安装

安装awscli cwlogs的最简单方法是使用pip

$ pip install awscli-cwlogs

或者,如果您没有安装在virtualenv

$ sudo pip install awscli-cwlogs

如果您安装了awscli cwlogs并希望升级到最新版本 您可以运行:

$ pip install --upgrade awscli-cwlogs

这将安装awscli cwlogs包以及所有依赖项,包括awscli。

注意!

如果您安装了awscli,安装awscli cwlogs可能会升级或降级awscli,具体取决于您所拥有的awscli版本是否比awscli cwlogs所依赖的版本旧或新。安装awscli cwlogs后,可以运行pip install --upgrade awscli来升级awscli,尽管最新的awscli可能无法与插件一起正常工作。如果您想从现有的AWSCLI中隔离AWSCLI CW日志插件,则可以考虑^ {TT6}$。请注意,awscli默认情况下将其配置存储到~/.aws/config(或Windows上的%UserProfile%.awsconfig)中,若要隔离配置,可以定义单独的配置文件export AWS_CONFIG_FILE=/path/to/config_file

开始

在使用awscli cwlogs插件之前,需要首先configure awscli

完成后,要启用awscli cwlogs,可以运行:

$ aws configure set plugins.cwlogs cwlogs

上面的命令将下面的部分添加到aws配置文件中:

[plugins]
cwlogs = cwlogs

要验证awscli cwlogs插件是否已正确安装和配置,可以运行:

$ aws logs help

您将从可用命令中看到pullpushfitler命令,否则表示CWLogs插件未正确注册。

如果看到ImportError: No module named cwlogs错误,则表示CWLogs插件已在配置文件中注册,但未安装该插件。

示例

按下命令

您可以使用aws logs push help检查支持的选项。 cloudwatch日志代理使用push命令,请检查CloudWatch Logs Agent Reference以查看所有受支持的选项,或者是否希望保持push命令运行。

  1. 将单个日志事件上载到CloudWatch日志服务如果不存在日志组和日志流,则自动创建日志流和日志流。
echo "Hello World" | aws logs push --log-group-name MyLogGroup --log-stream-name MyLogStream
  1. 下面的{TT2}命令将日志事件从一个Syslog文件推到日志流,该日志流是由{tT1616}和^ {tT1717}$指定的,并在推导出所有日志事件之后退出。此命令不推送增量日志事件。为此,请使用tail -f file | aws logs push ...
cat /var/log/kernel.log | aws logs push --log-group-name /var/log/syslog --log-stream-name myhost1 --datetime-format '%b %d %H:%M:%S' --time-zone LOCAL --encoding ascii
  1. 下面的push命令根据配置文件从多个文件推送日志事件如果file的状态不可用,则initial_position决定从何处开始。
aws logs push --config-file push.cfg
[general]
state_file = push-state
[logstream-messages]
datetime_format = %b %d %H:%M:%S
time_zone = LOCAL
file = /var/log/messages
file_fingerprint_lines = 1
log_group_name = /var/log/messages
log_stream_name = {hostname}
initial_position = start_of_file
encoding = utf_8
buffer_duration = 5000
[logstream-system.log]
datetime_format = %b %d %H:%M:%S
time_zone = UTC
file = /var/log/system.log
file_fingerprint_lines = 1-3
log_group_name = /var/log/system.log
log_stream_name = {hostname}
initial_position = end_of_file
encoding = ascii
buffer_duration = 10000

拉动命令

您可以使用aws logs pull help检查支持的选项

  1. 下面的{TT1}$命令从一个日志流开始从{TT25} $和^ {TT26} $指定的日志事件,并在拉取所有日志事件之后退出日志事件。
aws logs pull --log-group-name website1/access_log --log-stream-name webhost-001 --start-time 2014-01-23T00:00:00Z
  1. 当使用--end-time选项调用时,以下pull命令将提取2014-01-23T00:00:00Z(包含)和2014-01-23T01:00:00Z(不包含)之间的所有日志事件。
aws logs pull --log-group-name website1/access_log --log-stream-name webhost-001 --start-time 2014-01-23T00:00:00Z --end-time 2014-01-23T01:00:00Z
    当调用^ {TT3}$$选项时,在调用所有日志事件之后,不会退出下面的{TT1} $命令,但对新日志事件连续进行轮询。
aws logs pull --log-group-name website1/access_log --log-stream-name webhost-001 --start-time 2014-01-23T00:00:00Z --follow
  1. 使用--output-format选项调用时,以下pull命令仅输出消息字段。默认情况下,输出格式为"{timestamp} {message}"。摄取时间可以包含在"{timestamp} {ingestionTime} {message}"
aws logs pull --log-group-name website1/access_log --log-stream-name webhost-001 --start-time 2014-01-23T00:00:00Z --output-format "{message}"

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java与Groovy正则表达式匹配混淆   java控制台未定义为JSNI   主目录中的java指针异常   java如何获取hashmap中的arrayList的大小   ApachePOI用于文本,Java代码中的word doc(.docx)中没有进行追加   Ruby对象到Java对象   JavaSpringJPA哈希集只返回一个值   Java在执行由配置了精确类路径参数的mavenjarpluin生成的可执行jar时无法找到依赖项   java我试图在画布上写一个文本,但什么也没发生   java HTTP 404源服务器找不到目标资源的当前表示形式,或者不愿意透露存在该表示形式。不起作用   java提取小数点后的最后一个数字   oop Java:无法访问对象的元素   PHP URL中RecyclerView中的java句柄空异常   不调用OnCreateViewHolder的java Update RecyclerView适配器项