小编Ada*_*tan的帖子

Ansible:如果服务器属于某个组,则运行任务

只有当主机属于一个或多个组时,运行任务的理智方式是什么?

目前,我在相关组中使用布尔值,例如:

库存文件

[db_servers:vars]
copy_connection_string=true
Run Code Online (Sandbox Code Playgroud)

任务

-
  name: Copy db connection string file
  synchronize: src= ... (truncated for clarity)
  when: copy_connection_string is defined
Run Code Online (Sandbox Code Playgroud)

when检查当前主机是否属于该db_servers组的子句中的正确条件是什么?

ansible

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

Logstash创建了大量的本地日志文件(尽管它然后发送到Elasticsearch)

问题

我有一台带有logstash的机器,另一台Elasticsearch-Kibana机器,它将logstash写入的日志存储在第一台机器上.当然,我希望不在原始计算机上保留日志,只处理Elasticsearch集群上的日志记录.

不幸的是,logstash在第一台机器上创建了大量的日志文件(不应该保留任何内容):

在此输入图像描述

配置

/etc/logstash在原始机器上只有一个文件,据我所知,配置没有指定本地输出:

input {
        tcp {
                port => 5959
                codec => json
        }
        udp {
                port => 5959
        }
}
filter{
    json{
        source => "message"
    }
}
filter{
        if [@message] == "Incoming Event" {
            mutate{
                    add_field => {
                              "location" =>  "%{@fields[location]}"
                        }
                }
        }
}
output {
        elasticsearch {
                # The host in which elasticsearch and Kibana live
                host => "some.internal.aws.ip" 
        }
}
Run Code Online (Sandbox Code Playgroud)

如何通过配置阻止logstash写入本地日志?我知道我可以告诉他们,但我认为预防不易出错.

configuration local-files logstash elastic-stack

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

如何从redis geohash中删除项目?

Redis 3.2 具有 geohash 类型。

GEOADD 用于添加键:

> GEOADD restaurants 32.0 34.0 Falafel
(integer) 1
> GEOADD restaurants 32.1 34.1 Pizza
(integer) 1
Run Code Online (Sandbox Code Playgroud)

GEORADIUS 用于进行地理查询:

> GEORADIUS restaurants 32.05 34.05 100 km WITHDIST
1) 1) "Falafel"
   2) "7.2230"
2) 1) "Pizza"
   2) "7.2213"
Run Code Online (Sandbox Code Playgroud)

但是,HDEL似乎不起作用:

> HDEL restaurants Falafel
(error) WRONGTYPE Operation against a key holding the wrong kind of value
Run Code Online (Sandbox Code Playgroud)

如何删除或设置地理散列中的键的 TTL?

hash geo redis redis-3.2

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

查找每个redis DB的内存消耗

问题

我的一个 Python Redis 客户端失败并出现以下异常:

redis.exceptions.ResponseError: MISCONF Redis 配置为保存 RDB 快照,但当前无法保留在磁盘上。可能修改数据集的命令被禁用。请检查 Redis 日志以获取有关错误的详细信息。

我检查了redis机器,好像是内存不足:

free

             total       used       free     shared    buffers     cached
Mem:          3952       3656        295          0          1          9
-/+ buffers/cache:       3645        306
Swap:            0          0          0
Run Code Online (Sandbox Code Playgroud)

top

top - 15:35:03 up 14:09,  1 user,  load average: 0.06, 0.17, 0.16
Tasks: 114 total,   2 running, 112 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.2 st
KiB Mem:   4046852 …
Run Code Online (Sandbox Code Playgroud)

memory redis

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

Kombu+RabbitMQ:检查队列是否为空

建筑学

考虑一个带有数据库记录的系统。每条记录可以处于 aliveexpired状态;live应使用外部软件模块定期处理记录。

我使用 Kombu 和 RabbitMQ 的经典生产者-消费者架构解决了这个问题。生产者每隔几秒从数据库中获取记录,然后消费者处理它们。

在此输入图像描述

问题

事件的数量live差异很大,在高峰时段,消费者无法处理负载,并且队列被数千个项目堵塞。

我想让系统具有适应性,这样如果队列为空,生产者就不会向消费者发送新事件。

我尝试过什么

  • 搜索 Kombu 文档/API
  • 检查队列对象
  • 使用 RabbitMQ REST API:http://<host>:<port/api/queues/<vhost>/<queue_name>. 它有效,但它是另一种需要维护的机制,我更喜欢 Kombu 中的优雅解决方案。

如何使用 Python 的 Kombu 检查 RabbitMQ 是否为空?

python rabbitmq kombu

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

在vim中切换光标下的字符大小写

在camel case变量中添加前缀时,我通常需要对标识符的(现在是第二个)单词进行大写.例如,logGroup变成时localLogGroup,log变成Log.

我正在寻找一种方法来切换vim中当前字符(光标突出显示的字符)的大小写.

关键是切换案例而不选择字符 - 与x删除字符的方式相同.我只是想切换它的情况.

知道怎么做到这一点?

vim

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

读写process.env值是否同步?

使用process.env对象完成在Node.js中的读写环境变量。

例如:

  • process.env.foo 计算为env var foo
  • process.env.bar = 'blah'envvar 的值设置barblah
  • delete process.env.baz 删除环境变量 baz

从反复试验和缺少回调的角度出发,我认为这些操作是同步的,但是我没有找到对它的引用process.env文档

envvar访问在Node.js中是同步还是异步?


附录:为什么我认为这个问题很重要

遵循以下注释:读写环境变量可能意味着该进程需要与操作系统进行通信,或执行某种阻塞的I / O操作。

因此,有必要询问是否将环境变量作为本地对象存储在内存中而不进行任何同步,或者是否以阻塞方式发送给操作系统。

此外,操作系统之间的实现可能会有所不同,并且官方文档对无阻塞操作没有任何承诺。

asynchronous environment-variables node.js

5
推荐指数
2
解决办法
1597
查看次数

ava:在测试之外生成的日志不会显示在控制台中

我的问题

ava logging(t.log)仅适用于测试,但不适用于setup(before,beforeEach)或teardown(after*)函数.

这意味着丢失了对调试和再现非常有用的有意义的设置/拆除数据.对于成功和失败的测试以及带有和不带--verbose标志的情况都会发生这种情况.

import test from 'ava';

test.before(t => {
    // This runs before all tests
    t.log('before - 1');
});

test.before(t => {
    // This runs after the above, but before tests
    t.log('before - 2');
});

test.after('cleanup', t => {
    // This runs after all tests
    t.log('after');
});

test.after.always('guaranteed cleanup', t => {
    // This will always run, regardless of earlier failures
    t.log('after always');
});

test.beforeEach(t => { …
Run Code Online (Sandbox Code Playgroud)

ava

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

Elasticsearch:分页结果流

我的设置

在此处输入图片说明

考虑使用Filebeat将日志流连续发送到Elasticsearch集群

我的问题

我想不断地从Elasticsearch读取日志流。不用说,ES没有流API,因此我必须使用连续的HTTP调用进行分页。

我尝试了什么

查询正文以供参考

{
  "size": 5,
  "from": 0,
  "sort": [
    {
      "@timestamp": {
        "order": "desc",
        "unmapped_type": "boolean"
      }
    }
  ],
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "query": "source:*.log",
            "analyze_wildcard": true
          }
        }
      ]
    }
  },
  "_source": {
      "include": ["message", "@timestamp"],
      "exclude": "_*"
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题

如何从Elasticsearch中分页日志条目流?

pagination stream elasticsearch

5
推荐指数
0
解决办法
70
查看次数

最低的Jekyll:在首页使用markdown

问题

我正在使用JekyllMinima主题构建静态站点。我正在编辑index.md更改主页,但是在文件顶部看到一个奇怪的注释:

---
# You don't need to edit this file, it's empty on purpose.
# Edit theme's home layout instead if you wanna make some changes
# See: https://jekyllrb.com/docs/themes/#overriding-theme-defaults
layout: home
---
Run Code Online (Sandbox Code Playgroud)

在下面添加内容是---可行的。显然,我不是在尝试更改主题,而只是在主页上添加一些内容。我想念什么吗?

目录结构

index.md
_layouts
??? default.html
??? home.html
??? page.html
??? post.html
Run Code Online (Sandbox Code Playgroud)

我的问题

是否正在更改index.md向Jekyll主页添加内容的正确方法?

markdown jekyll website-homepage

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