最后更新于2017年11月6日星期一21:08:00 GMT

Introduction-to-the-Logentries-Command-Line-Interface

Logentries命令行接口(CLI)允许您直接从命令行管理和使用Logentries服务. CLI是建立在logentry之上的 REST APIs 并提供了一个直接与UI外的Logentries服务交互的工具. 它还处于测试阶段,目前支持检索日志事件, 并使用我们强大的查询语言对日志事件执行查询和计算 LEQL. 它还支持帐户、用户和团队管理. 新的功能将不断添加.

在这篇博文中,我将概述如何安装和使用Logentries命令行接口的各种特性.

Installation

Logentries CLI是开源的,代码可以在github上找到: http://github.com/logentries/lecli

这意味着您可以拉下代码并使用setuptools构建/安装它.

如果您安装了最新版本的Python, 那么您已经有了可用的PIP,并且可以简单地使用以下命令安装包:

On Linux or OS X:

pip install logentries-lecli

Note: 在OS X上,如果你使用原生Python安装,你可能会收到一个安装错误(6库). To get around this you must first install Python; the easiest way to do this is to use brew. 有关安装brew的信息,请参见 here.一旦你安装了brew,使用下面的命令来安装Python:

brew install Python

On Windows:

Python -m pip install logentries-lecli

设置配置文件

命令行使用的配置文件的默认路径与操作系统有关.

如果你在OSX上运行,配置文件的路径应该是:

/Users// lecli / config /图书馆/应用程序支持.ini

如果你在Linux上运行,配置文件的路径应该是:

/home//.config/lecli/config.ini

您可以手动创建配置文件并将其添加到所需的路径, 然而,一种更简单的方法是在没有配置配置文件的情况下尝试使用CLI. 例如,尝试使用命令获取有关帐户所有者的信息 lecli getowner.

命令行将尝试查找配置文件,如果无法在预期的位置找到它, 它会自动创建一个默认的配置文件模板,然后您可以用您的帐户信息填充该模板.

要使用CLI,您必须首先使用 API keys. 您的帐户API密钥可在 logentries.com 登录到您的Logentries应用程序,转到帐户管理部分,然后选择API Keys选项卡. 在这里,您可以访问您的帐户资源ID,并能够生成您的所有者密钥和密钥ID, 读写和只读API密钥. 请注意,只允许帐户所有者生成所有者API密钥. 如果你还没有一个Logentries帐户,你可以开始一个30天的免费试用 here.

查询事件和日志只需要配置了“读写”或“只读”API密钥. To perform user, 通过CLI进行团队和帐户管理, an owner API key, key ID和account资源ID.

生成所需的密钥,然后将它们复制到CLI配置文件的Auth部分. 配置文件的Auth部分应该是这样的:

[Auth]
Account_resource_id = 912345678-aaaa-bbbb-1234-1234cb12345a
Owner_api_key_id = 12345678-aaaa-bbbb-1234-1234cb12345b
Owner_api_key = 12345678-aaaa-bbbb-1234-1234cb12345c
Rw_api_key = 12345678-aaaa-bbbb-1234-1234cb12345d

Basic Usage

安装后,CLI可以与 lecli command. 这将显示可用命令和选项的列表.

lecli-usage

要获取有关如何使用每个命令的信息,只需调用 lecli 然后是您希望获得更多信息的特定命令. 例如,要在recent events命令中获取更多信息:

lecli recentevents

这将显示以下使用信息.

recentevents-usage-examples

当我们浏览每个不同的lecli命令时,您会注意到许多选项都有长格式和短格式.

Query and Events

CLI的事件和查询功能支持多种查询事件和统计信息的方式. 我将在下面详细描述它们.

Recent Events

The recentevents 命令允许您检索最近发送到logentry的日志事件. 可以通过几种方式指定从中检索日志事件的日志. 日志键可以以空格分隔的日志键列表的形式直接传递, 或者,您可以利用日志组和日志昵称. 通过选择特定的日志,然后选择settings选项卡,可以通过Logentries UI获得日志密钥. 在这个页面上,您将看到两个ukey, a token and Key, 该键是用于查询该日志的日志键.

日志别名也可以使用 --lognick``-n 参数传递日志组 --loggroup``-g arguments. 我将在本博客后面的“日志昵称和组”一节中描述日志和日志组以及设置它们.

By default the recentevents 命令将返回过去20分钟内的事件. The command also takes an optional time argument that allows you to specify how far back in time you wish to get events from; this is passed using --last or -l argument.

使用最近事件命令的一些示例如下:

lecli recentevents  -l 200

Lecli最近的事件-n mynicknamedlog - 1 200

Lecli最近的事件-g myloggroup - l200

检索到的日志事件将以红色的Logentries时间戳打印到终端,如下所示:

retrieved-log-events

Events

The events 命令允许检索定义时间范围内的日志事件. As with recentevents, logs can be passed to the events 命令作为空格分隔的日志键列表, 或者,您可以利用日志组和日志昵称.

The events command accepts time ranges in ISO-8601 human readable time format (YYYY-MM-DD HH:MM:SS); time ranges in this format can be passed using the --datefrom and --dateto arguments. 注意,所有的时间值都是UTC时区.

该命令还接受秒粒度的epoch时间. Epoch格式的时间参数可以使用 --timefrom``-f and --timeto``-t 参数,请注意这些选项的长形式和短形式.

如何使用events命令的一些示例如下:

Lecli事件12345678 - aaaa级bbbb - 1234 - 1234 - cb123456 -f 1465370400 -t 1465370500

Lecli事件12345678 - aaaa级bbbb - 1234 - 1234 - cb123456 -datefrom '2016-05-18 11:04:00' -dateto '2016-05-18 11:09:59'

Lecli事件—日志组myloggroup—日期从“2016-05-18 11:04:00”—日期到“2016-05-18 11:09:59”

Lecli事件- log尼克mynicknamedlog -日期从'2016-05-18 11:04:00' -日期到'2016-05-18 11:09:59 '

Query

The query 命令允许您使用我们的日志查询语言LEQL从命令行对日志进行查询. 有关使用和充分利用LEQL的信息,请查看此处的LEQL文档: http://logentries.com/doc/search/

Logs can be passed to the query 命令,使用空格分隔的日志键、日志组或日志昵称列表. As with the events command, query accepts time ranges in ISO-8601 human readable time format (YYYY-MM-DD HH:MM:SS); time ranges in this format can be passed using the --datefrom and --dateto arguments. 它还接受秒粒度的epoch时间. 方法传递epoch格式的时间参数 --timefrom``-f and --timeto``-t arguments.

可以在Logentries UI中使用的任何LEQL查询类型也可以与 query command. 方法将LEQL查询作为字符串传递 --leql``-l argument.

查询可以返回三种类型的结果. 对于只使用where()而不使用任何计算或groupby函数的搜索,CLI将打印匹配日志事件的列表. 其他查询将返回时间序列或分组数据,CLI将输出这两种数据.

Similar to log nicknames, 查询昵称允许在配置文件中设置众所周知的查询,并且很容易作为查询命令的一部分使用. 可以使用查询快捷方式来代替使用 --querynick``-q argument. 我将在下一节中解释如何设置这些参数.

使用query命令的示例如下:

查询12345678 - aaaa级bbbb - 1234 - 1234 - cb123456 -q 'where(method=GET) calculate(count)' -f 1465370400 -t 1465370500

查询12345678 - aaaa级bbbb - 1234 - 1234 - cb123456 -q 'where(method=GET) calculate(count)'——datefrom '2016-05-18 11:04:00'——dateto '2016-05-18 11:09:59'

(3)查询“datefrom’2016-05-18 11:04:00’——dateto’2016-05-18 11:09:59’”

查询logickmynicknamedlog——leql 'where(method=GET) calculate(count)'——datefrom '2016-05-18 11:04:00'——dateto '2016-05-18 11:09:59'

testquery——datefrom '2016-05-18 11:04:00'——datefrom '2016-05-18 11:09:59 '

日志昵称、日志组和查询昵称

CLI支持通过配置文件使用日志昵称和日志组. 这使得搜索频繁查询的日志或大型日志列表变得更加简单,因为您不需要传入日志键列表.

日志昵称允许为单个日志配置别名, 这是在配置文件的logicknames部分中完成的.

[LogNicknames] 
Testlog = 12345678 - aaaa级bbbb - 1234 - 1234 - cb123456

日志组允许为要创建的日志键列表创建别名. 这些可以在配置文件的LogGroups部分中设置.

[LogGroups] 
testgroup =     
    12345678 - aaaa级bbbb - 1234 - 1234 - cb123456     
    12345678 - aaaa级bbbb - 1234 - 1234 - cb123457

查询昵称为长时间或频繁运行的查询添加别名提供了一种简单的方法. 这些是在配置文件的QueryNicknames部分中设置的.

[QueryNicknames] 
Testquery = where(logkey)计算(count)时间片(30)

User and account management

CLI的用户和帐户管理功能只能与有效的Owner API密钥一起使用. 配置文件中必须包含“account_resource_id”, owner_api_key_id和owner_api_key在Auth部分. 这些都可以从帐户管理和API密钥部分获得 logentries.com.

List Users

The listusers 命令返回对已配置CLI的帐户具有访问权限的所有用户的列表. 该命令将返回用户的姓和名, email address, 用户密钥和最后一次登录的时间.

Example usage:

lecli listusers

Add User

The adduser 命令允许您向您的帐户添加一个用户. 有两种方法可以添加用户,具体取决于用户是新用户还是现有用户.

添加一个新用户(该用户不属于另一个Logentries帐户), 您必须提供他们的姓和名, and email address. 如果添加成功,命令行将打印用户的帐户信息, 包括他们新生成的用户密钥. 通过CLI添加的用户必须进入 http://logentries.com/user/password-reset/ and enter their email address. 然后,他们将收到一个链接,他们可以使用该链接设置新帐户的密码.

添加新用户的命令如下:

-约翰-史密斯-约翰.smith@email.com

要将现有用户添加到您的帐户(i.e. 已经拥有Logentries帐户的用户, 即使与您的帐户没有关联), 您必须首先获得他们的用户密钥. 用户可以从其Logentries应用程序的帐户管理页面的配置文件选项卡获取其用户密钥.

可以使用以下命令将现有用户添加到您的帐户:

lecli adducer -u 

Delete User

The deleteuser 命令允许从您的帐户中删除用户,并从logentry中删除用户的帐户. 如果用户只与您的帐户相关联,则该用户的帐户将被删除. However, 如果用户与任何其他帐户相关联, 然后访问您的帐户将被删除,但用户的Logentries帐户和与其他帐户的任何关联将保留.

使用实例删除用户。

lecli deleteuser -u 

Account Owner

The getowner 命令允许您检索帐户所有者的详细信息, 这是使用以下命令完成的:

lecli getowner

Team Management

团队管理允许您对与您共享帐户访问权限的用户进行分组. 然后可以限制团队,使其成员不能修改用户、日志或数据中心. 团队还可以用于向多个收件人发送警报. 如果包含在警报中,则会通知团队的所有成员. (有关团队的更多信息,请参见 here).

使用CLI进行团队管理需要在配置文件中使用有效的读写API密钥. 配置文件必须在Auth部分包含有效的account_resource_id和rw_api_key.

The getteams 命令将返回已在您的帐户中配置的所有团队的列表. 这个命令将返回球队名称和球队UUkey:

lecli getteams

要获取有关特定团队的信息和该团队中的用户列表:

lecli getteam 

使用以下命令可以轻松创建一个新团队:

lecli createteam 

删除团队时需要使用团队密钥,该密钥可以通过get teams命令获取

lecli deleteteam 

To rename a team:

lecli renameteam  

To add a user to a team:

lecli addusertoteam  

最后从团队中删除一个用户:

lecli deleteuserfromteam  

The Future

Logentries命令行接口工具将继续发展,随着Logentries REST API的发展,将不断添加令人兴奋的新特性. 接下来,您将很快能够使用命令行管理所有日志和日志集.

准备好开始使用CLI了?

注册一个免费的30天Logentries试用来试用CLI.  Click here to get started.