Tag: 正则expression式

docker sshd容器使用syslog的Fail2banfilter

我们正在尝试使用Fail2ban将无效的login信息发送到运行SSHD的Docker容器。 我们已经将主机SSH端口移到了更高的数字。 我目前在我的jail.local文件中有2个监狱: #Filters [ssh-iptables-22] enabled = true filter = docker-sshd action = iptables[name=SSHCONTAINER, port=22, protocol=tcp] logpath = /var/log/messages [ssh-iptables-2222] enabled = true filter = sshd action = iptables[name=SSHHOST, port=2222, protocol=tcp] logpath = /var/log/secure 我们使用驱动程序“syslog”进行容器日志logging,最后到/ var / log / messages文件。 主机正在login到AUTHPRIV,所以这些将要/ var / log / secure 主机检查工作正常,在2222上尝试托pipeSSH的次数过多,就会被禁止。 但是,/ var / log / messages中的docker check in没有捕获。 […]

如何将正则expression式作为ulr中的查询parameter passing给Papartrail

先决条件: 我在Heroku上部署了Jenkins的Docker镜像,我需要inputInitial Admin Password ,这个Initial Admin Password必须保存在/var/jenkins_home/secrets/initialAdminPassword 。 但是我看到Heroku并没有将文件本地保存到自己的文件系统中。 所以我试图从Heroku日志中得到它。 我找不到任何机会收集Heroku日志,除了使用Papertrail附加。 问题: 通过链接到Papertrail的事件查询这个密码( 如 a30e0bb2bc954f12a67978fac7924c3d )我试图通过正则expression式( 如 [a-z0-9]{32}\.* )作为q参数的值,但我不知道究竟是如何做的。 我用Rubular和OK来检查这个正则expression式。 但在Papertrail的服务,它失败了。 提前致谢!

Python在Alpine Linux中的正则expression式

我在我的代码中有这样的东西: import re pattern=re.compile(r'^[\^ěščřžýáíéóúůďťňĎŇŤŠČŘŽÝÁÍÉÚŮA-Za-z0-9*+.,()<>=\/ -{}]*$') match = pattern.match("áážžššěě") if match: print "good" else: print "not good" 当我在Ubuntu上运行这个,它按预期工作,打印“好”。 但是使用Docker与Alpine Linux来运行时,脚本会打印出“不好”的字样。 为什么是这样?

TypeError:db.collection不是一个函数

我想发布数据,我已经创build了mLab数据库,我得到这个错误,但我不知道怎么回事。我也已经读过以前问这个问题的问题,但我无法解决我的错误我是新来的。 所以在这里,我发布了我正在尝试实现的代码,它取自本教程https://medium.freecodecamp.com/building-a-simple-node-js-api-in-under-30-minutes- a07ea9e390d2 。 server.js const express = require('express'); const MongoClient = require('mongodb').MongoClient; const bodyParser = require('body-parser'); const db = require('./config/db'); const app = express(); const port = 8000; app.use(bodyParser.urlencoded({extened:true})); MongoClient.connect(db.url,(err,database) =>{ if (err) return console.log(err) require('./app/routes')(app,{}); app.listen(port,() => { console.log("We are live on"+port); }); }) db.js module.exports = { url : "mongodb://JayTanna:Jay12345@ds147510.mlab.com:47510/testing" }; index.js […]

Fluent捕获来自Docker的堆栈跟踪

我试图让Fluentd使用in_tailparsing来自Docker日志logging驱动程序的Java堆栈跟踪,并将它们作为单个消息发出。 对于我的生活,不知道为什么它仍然分裂了他们。 这是一个示例input,正在写入一个文件: 2015-12-17T19:19:47+00:00 docker.java.ubuntu:15.10 {"log":"Exception in thread main java.lang.NullPointerException\r","container_id":"5a064eb23465350a11fe00b1f7787f5bd3e9f0182dd44c09516a72ab4006bd54","container_name":"/src-test_1.0.0.353_989549167.1","source":"stdout"} 2015-12-17T19:19:47+00:00 docker.java.ubuntu:15.10 {"container_id":"5a064eb23465350a11fe00b1f7787f5bd3e9f0182dd44c09516a72ab4006bd54","container_name":"/src-test_1.0.0.353_989549167.1","source":"stdout","log":" at com.example.myproject.Book.getTitle(Book.java:16)\r"} 2015-12-17T19:19:47+00:00 docker.java.ubuntu:15.10 {"container_name":"/src-test_1.0.0.353_989549167.1","source":"stdout","log":" at com.example.myproject.Author.getBookTitles(Author.java:25)\r","container_id":"5a064eb23465350a11fe00b1f7787f5bd3e9f0182dd44c09516a72ab4006bd54"} 2015-12-17T19:19:47+00:00 docker.java.ubuntu:15.10 {"container_id":"5a064eb23465350a11fe00b1f7787f5bd3e9f0182dd44c09516a72ab4006bd54","container_name":"/src-test_1.0.0.353_989549167.1","source":"stdout","log":" at com.example.myproject.Bootstrap.main(Bootstrap.java:14)\r"} 2015-12-17T19:19:47+00:00 docker.java.ubuntu:15.10 {"container_id":"5a064eb23465350a11fe00b1f7787f5bd3e9f0182dd44c09516a72ab4006bd54","container_name":"/src-test_1.0.0.353_989549167.1","source":"stdout","log":"test\r"} 这是我用于in_tail的configuration: <source> @type tail tag docker.multiline path /tmp/fluent/java* pos_file /tmp/fluent/log.pos refresh_interval 10 format multiline format first_line /.*\"log\":\"[^\s].*/ format /\"log\":\"(?<message>.+)\\r/ </source> 正则expression式对我来说是正确的,当我将它们插入正则expression式testing程序时,first_line正则expression式只匹配我样本的第一行和最后一行,而格式正则expression式匹配每一行,但只捕获堆栈跟踪信息,因为我是期待。 然而,它们都是作为单独的信息出现的,就像first_line匹配每一行,而不是第一个和最后一个。

正则expression式string似乎不能在ELK堆栈中工作

我是新来的ELK堆栈,并遇到一些问题,我觉得应该很简单。 我有如下所示的日志数据(从elasticsearch API中检索): { "_index": "filebeat-2017.06.02", "_type": "log", "_id": "AVxqBHFg2ZHUP62Y4ofK", "_version": 1, "found": true, "_source": { SNIPPING stuff I don't think is important here }, "host": "LYNCHC", "source": "C:\\PathToTheFile.log", "message": "\"INFO\",\"mc-1\",\"04\/26\/2017\",\"02:26:55\",\"\",\";Error invoking external process **SNIPPING for brevity**", "type": "log", "tags": [ "beats_input_codec_plain_applied" ] } } 和其他日志,看起来像这样: { "_index": "filebeat-2017.06.02", "_type": "log", "_id": "AVxqBHhd2ZHUP62Y4ofR", "_version": 1, […]

使用Docker ADD命令为多个文件

我想复制一些文件到我的图像,我想使用ADD命令。 我在Docker文档中读到了有关ADD的正则expression式,但我不知道可以使用哪种expression式? 我想要这样的东西 FROM registry:5000/ubuntu:14.04 MAINTAINER Me # some stuffs ADD Sources/{file1,file2,load_file} /etc/Sources/ # more stuffs 注意:expression式是错误的,但是我做到了这一点来向你展示我对ADD命令的期望。 (我是用shell正则expression式思考的)。 那么,我该怎么做呢? 我无法访问链接filepath.Match 。 如果有人有这些规则,请让我知道? 更新 我正在使用这个Docker文档参考 我正在使用这个版本: Client version: 1.3.0 Client API version: 1.15 Go version (client): go1.3.3 Git commit (client): c78088f OS/Arch (client): linux/amd64 Server version: 1.3.0 Server API version: 1.15 Go version (server): go1.3.3 Git […]

如何检查docker实例在Bash中运行

有docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 56489a32cb8c 83132b61eccf "bash" 41 hours ago Exited (0) 41 hours ago naughty_jang 4b4933b40175 83119b65eccf "bash" 41 hours ago Exited (0) 41 hours ago suspicious_mcnulty 3149e612f9f8 83119b6143cf "sh" 43 hours ago Exited (0) 41 hours ago thirsty_mestorf 我想匹配STATUS和NAMES以检查哪个是实例状态,所以列5和列7从列索引1 。 假设我有选项卡分隔值 docker ps -a | awk […]

将stringparsing为从命令行输出的数组

我正在开发一个新的Symfony 2项目,这个项目将是Docker容器的面板pipe理。 在这个项目中,我使用exec() PHP函数执行一些命令。 我试图parsing下面的命令的输出: docker create tutum/lamp:latest –name test 2>&1 当命令是成功的,我得到了一个string的容器ID是好的,易于使用,但出现问题时,它是不一样的。 结果是一个带有var =“data”语法的string,我想要parsing它以获得数组。 命令输出: time="2015-06-21T11:33:26+02:00" level="fatal" msg="Error response from daemon: Conflict. The name \"test\" is already in use by container XXXXXXXX. You have to delete (or rename) that container to be able to reuse that name." 我希望有这样的事情: Array( time => "2015-06-21T11:33:26+02:00", level => "fatal" […]

sed:未终止的's'命令 – 找不到需要转义的东西

我很新,使用sed的正则expression式,所以我有一些环境variables,我需要被放置到一个文件,如果find适当的“占位符”。 root@devproc-01:~# printenv PROC_MODCONF=Include "conf.d/modconf.cfg.lua" PROC_MODULES="lastlog"; "firewall"; "message_logging"; 这里是我定义的两个环境variables,下面是我的sed命令,它们是Docker Compose入口点文件的一部分。 sed -is/'{$PROC_MODULES}'/$PROC_MODULES/g /etc/procdev/conf.d/modules.cfg.lua sed -is/'{$PROC_MODCONF}'/$PROC_MODCONF/g /etc/procdev/proc.cfg.lua 但是当这个脚本执行时,我会看到标题中显示的错误: sed: -e expression #1, char 27: unterminated `s' command 我有双重检查,我的占位符variables是确实存在和正确的这两个文件。 这只会发生在这两个替代品,我所有的其他替代品正​​常工作。 :/有什么东西需要逃脱? 谢谢! 按要求,configuration文件的一个片段,以便您可以看到如何显示占位符variables: umask = "027"; Include "conf.d/modules.cfg.lua" {$PROC_MODCONF} Include "conf.d/c2s-s2s.cfg.lua"