我遇到了这个令人敬畏的库xterm.js,它也是Visual Studio Code终端的基础.我有一个非常普遍的问题.
我想通过基于Web的终端(在网络外,可能在aws服务器上)访问本地网络上的机器(ssh到机器).我能够在本地网络中成功完成此操作,但我无法通过Internet - >本地网络得出结论.
举个例子 - An aws server running the application on ip 54.123.11.98 which has a GUI with a button to open terminal. I want to open terminal of a local machine which is in a local network somewhere behind some public ip on local ip 192.168.1.7.
上面的例子可以使用某种解决方案来实现,我可以使用xterm.js,这样我就不必去构建基于Web的终端了吗?在以这种方式暴露终端时,我应该记住哪些主要的安全问题?
我在考虑在AWS和本地网络ip之间使用固定的中间服务器,并使用某种反向ssh隧道进程来做这个但我不确定这是否是正确的方法还是可以有更简单/更好的方式为达到这个.
我知道数字海洋,谷歌云,他们都这样做但他们必须连接到具有公共IP的计算机,而我在本地网络中有一台机器.我真的不想配置路由器来进行任何类型的设置.
我正在ansible-pull
远程机器(客户端)上运行一个ansible脚本,这是我看不到的.
我想确保:
启用ansible日志将信息存储在某个日志文件中,但是想知道我是否可以通过在ansible中预定义的某些变量获得以下ansible输出的结果.
PLAY [localhost] **************************************************************
GATHERING FACTS ***************************************************************
ok: [localhost]
TASK: [Install the hello package] *********************************************
ok: [localhost] => {"changed": false}
TASK: [Install the cmatrix package] *******************************************
ok: [localhost] => {"changed": false}
PLAY RECAP ********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0
Run Code Online (Sandbox Code Playgroud)
如果没有,那么我将编写自定义脚本来解析日志,将信息保存在机器上的某个数据库中并将其发送回我们的服务器.
我有一个亚马逊ec2实例(SAY S1)(4核-7GB内存)使用Ubuntu 12.04,它正在运行我的网络应用程序postgresql 9.1
.所有postgres数据都存储在100 GB的不同ssd卷(非root)上.(现在写下它目前只有26%满).
突然间,一天或两天的postgres行动开始耗费大量时间.创建命令(52秒)并恢复数据库(现在9分钟,最多50秒).
通过在运行postgres命令时运行iostat,我可以确认其ec2卷的IOPS已达到其限制(3 IOPS/GB等于100 IOPS的300 IOPS).运行此命令后可以在下面看到它iostat -d 5 -x -p xvdf
.
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.35 2.28 1.20 298.99 19.65 13082.19 87.29 23.42 78.03 64.19 78.09 3.29 98.75
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 1.80 0.00 297.40 0.00 13067.20 87.88 126.47 420.75 0.00 420.75 3.35 99.76
Device: rrqm/s wrqm/s r/s w/s …
Run Code Online (Sandbox Code Playgroud) 我知道这个sar的例子,sar -u 1 3
它以1秒的间隔给出接下来3秒的统计数据.
然而,sar还继续在后台收集信息(我的cron设置为每分钟收集统计数据).有什么方法我可以简单地使用sar命令查询最后5分钟的统计数据及其平均值.
现在我正在使用以下命令
interval=5; sar -f /var/log/sysstat/sa22 | tail -n $interval | head -n -1 | awk '{print $4+$6}'| awk '{s+=$1} END {print s/$interval}'
Run Code Online (Sandbox Code Playgroud)
检查最近5分钟的整体CPU使用情况.
有没有更好的办法 ?
我有以下类型的json与我一起使用filebeat在弹性搜索中转储 {"@timestamp":"2017-02-10T06:30:51.424Z","beat":{"hostname":"myhostname","name":"mydevice-logger","version":"5.2.0"},"fields":{"device_type":"mydevice","env":"staging"},"metricset":{"module":"system","name":"cpu","rtt":211},"system":{"cpu":{"cores":4,"idle":{"pct":0.000000},"iowait":{"pct":0.000000},"irq":{"pct":0.000000},"nice":{"pct":0.000000},"softirq":{"pct":0.000000},"steal":{"pct":0.000000},"system":{"pct":0.000000},"user":{"pct":0.000000}}},"tags":["automata","box"],"type":"metricbeat-test-log"}
我的logstash(版本5.1.1)配置包含,输入,过滤器和输出如下 -
input {
beats {
port => 5046
codec => json
}
}
filter {
if ...{}
else if [type] == "metricbeat-test-log" {
date {
match => ["@timestamp", "ISO8601"]
}
}
}
}
output {
if ...{}
else if [type] == "metricbeat-test-log" {
stdout { codec => rubydebug }
}
}
Run Code Online (Sandbox Code Playgroud)
类型是正确的但是日期过滤器不起作用.在@timestamp
最后还以当前的时间戳始终.我想用@timestamp
json中的原始礼物替换它.
elasticsearch logstash logstash-configuration filebeat metricbeat
所以我有一种情况,我正在使用ansible在机器上执行shell命令以获取一些有关标准输出的信息。我正在register
将其结果记录到变量中my_info
并my_info
使用print 进行打印debug
,我看到其结果\n
附加了它(Ansible已附加\ n。Linux上的同一命令不附加\ n“)。当我在my_info
in模板中使用config它在config中打印新行,从而弄乱了我的config。
这是代码和输出的方式。
验证码:
- name: calculate range address start
raw: grep 'CONFIG_PARAMS' /path/to/the/file | head -n 1
register: my_info
Run Code Online (Sandbox Code Playgroud)
输出:
ok: [My_HOST] => {
"msg": "CONFIG_PARAMS\n"
}
Run Code Online (Sandbox Code Playgroud)
我们如何从这个输出中删除空格或可能改变模板,以便不打印新行。
我使用的是ubuntu 64bit 14.04.如何使用blobxfer将子目录从Azure blob存储下载到本地计算机.假设我有一个名称的存储帐户MY_STORAGE_ACCOUNT
,容器名称MY_CONTAINER
和容器内的以下内容.
directory1/directory2/directory3/file1
directory1/directory2/directory3/file2
directory1/directory2/directory3/file3
..
..
directory1/directory2/directory3/fileN
Run Code Online (Sandbox Code Playgroud)
我只想下载子目录directory3
.
我有一个SAS密钥,可以访问并可以下载单个文件,但通配符不起作用.我的命令如下所示
blobxfer --saskey "$MYSASKEY" MY_STORAGE_ACCOUNT MY_CONTAINER "$LOCAL_DIR" --download --remoteresource "directory1/directory2/directory3/*
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,可能说它无法理解命令中的通配符.
requests.exceptions.HTTPError: 404 Client Error: The specified blob does not exist.
Run Code Online (Sandbox Code Playgroud) linux ×3
ansible ×2
python ×2
amazon-ec2 ×1
angularjs ×1
automation ×1
azure ×1
disk-io ×1
filebeat ×1
iostat ×1
jinja2 ×1
logstash ×1
metricbeat ×1
modal-dialog ×1
monitoring ×1
networking ×1
optimization ×1
performance ×1
postgresql ×1
sar ×1
ssh-tunnel ×1
xtermjs ×1