多服务器终端交互利器--polysh和atnodes到高逼格日志中心
最近博客更新的少了,相对而言,我在自己的个人公众号里还是挺活跃的,大家可以扫描旁边的二维码,或者微信搜索公众号:“编程一生”加关注。




在分布式的年代,一个应用需要部署到多台服务器上。那么要查看日志文件咋办?一台台的查?这年头还真有这么干的。多服务器终端交互利器有不少。最流行的是polysh。atnodes据说“去哪儿”在用。
polysh这种跨机器的,想想就知道需要做多台机器的ssh免密码登陆,比较麻烦,所以建议一个团队用一个公用目录来装,大家统一用这个账户来操作即可。安装和使用方法大家自行百度吧。主要想说的是现在python脚本和shell脚本一样,已经成了程序员的必备技能。
而polysh是一种思维方式。如果一件事情你觉得重复麻烦的,必然会有一个工具能代替你做事情。举个例子,刚才提到需要多台机器的ssh免密码登陆。这个时候要所有服务器的autorized_keys文件都要写入polysh所在机器的公钥。那么这时候一定有简单的办法,就是key2nodes命令(将key写入服务器节点)。
key2nodes是SSH::Batch提供的强大的的批量工具之一。其他工具还包括atnodes和tonodes。atnodes可以在目标集合上同步批量执行命令或者脚本。tonodes可以将文件批量上传到集群制定位置。
像查看日志这种对系统安全危害小的,又常用的服务。既然可能多服务器终端交互,自然可以不用登陆跳板机,用一个网页形式来替我们完成这个功能,我们习惯上把这个叫做实时日志。这个可能公司内部的基础设施部门自己搭建。
更高逼格一点的基础设施就是日志中心了。
日志中心的架构思路各个公司间总体还是差不多的。我们磁盘上有日志,日志有一些通用格式。日志中心的进程会监控日志的变更,将增量通过消息队列收集到数据平台。数据平台进行数据计算,将计算结果可视化。现在所谓的大数据大多也是这种思路嘛。
除了上面说的本地磁盘手机之外,比较常用的收集方式还有SDK上报和APP端上报。对java来说,现在比较流行的日志组件有原生的log4j2、logback。还有scribe-log4j2来自定义ScribeAppender。还有日志格式化工具Xmd-log4j2。
比较简单的实现思路上:消息队列用kafka,上传到ES集群,建立索引后,用kibana做可视化。我们作为使用的业务方来说,除了简单了解架构,按照文档进行相应的配置之外,还需要了解DSL(Domain Specific Languae),即领域专用语言。如果使用ES的话,这个DSL就是ES的语法。
跑题时间:
天冷了,是低调的缩被窝的季节。
国庆节过完happy的八天长假。上班第一天下雨,晚上照例打车可以报销我还是一个人拉着大箱子坐地铁,然后自己把箱子搬上没有电梯的6楼。我问别的女孩子,你遇到这种情况会不会觉得很凄凉。MM说会啊,女孩子应该矫情一点。我当时没有任何觉得凄凉,反而很感谢婆婆装箱子的时候被子用塑料布包起来了。晚上睡的很暖和。
人家说好的爱情不是雪中送炭,是锦上添花。但是所有让人泪流满面的电视剧都是天时地利人和。我需要的时候,你也在那里。锦上添花的爱情听起来很美,只是锦上添上什么花都会很美,到底什么来确保你是唯一。人随着年龄的增长,自己能做的越来越多,越来越不需要别人,锦上添花可以有,雪中送炭难求。所以我觉得人应该感谢现在还年轻,一无所有的自己,起码有机会遇到那个会在自己需要的时候出现的那个人。
越努力越幸福。很多年前看《你给的夏天》一直记着这句话。日语的,原文是“頑張れば、幸せになれる”。这半年,我的家人在各方面都给了我巨大的支持。但是,工作上,总是一波未平一波又起。别人总是在追求更好的东西。我工作上就一个目标:不失业。做起来却已经很难。别人换工作,经常是休息调整一下,我换工作,从来都是马不停蹄,没有一个工作日是处于无工作状态。这样,还是总是在担心未来会怎样。
微信里有个“鬼脚七”的好友,前阿里高管,已经财务自由,做着自由媒体人。人家过的自然好,我却不想过这样的日子。我需要对未来的担忧,对现在的奔波,现实和理想是有碰撞的。生活太过理想化,人会很容易掉进唯心主义的漩涡。
爸爸、妈妈因为是医生,在小县城里算是收入不错又受人尊敬的职业。但是人年纪大了,会越来越固执,觉得自己很厉害。我爸经常开口就是:“你不懂”。然后什么什么的。我妈五年前去世了,这么多年我经常会做梦梦见她还活着。然后梦里会对自己说我醒着的时候一定是弄错了,现在才是对的,看,我妈还活着。可五年前我妈活着的时候我的日子并不好过。她在家乡,我在外地。每周我给她打电话都需要很大的勇气。她总想掌控我的生活,她根本不能完全考虑我的实际情况,却要我一切都听她的。我怀孕的时候,每次打电话都是很强硬的让我做这做那。每次打完电话我都不开心。然后我就找借口跟她吵一架,不跟她打电话了。最后还是男神在小鲜肉出生的时候瞒着我给我妈打了电话。我妈从那以后对我说话谨慎多了,但是最后还是因为她的固执丧失了生命。
我要的东西很简单,也很容易满足。女汉子一条,像个lady一样站在旁边看男孩子为我做体力活,那只是出于礼貌。就好像之前在日本的时候,因为日本的习惯,女孩子吃的太多是件不太好意思的事情。所以一个日本客人把旁边一个女孩吃的一大堆虾壳用餐巾纸盖起来了。
但是现在,我不应该只看自己已经有的,知道自己很幸运,珍惜自己拥有的。还要更多的看到自己没有的。这样会更谦虚、谨慎,吸收更多的东西,变成一个更不固执的自己。未来的路还很长,现在,不能止步。
多服务器终端交互利器--polysh和atnodes到高逼格日志中心的更多相关文章
- 多服务器操作利器 - Polysh
多台服务器下的痛苦人生 分布式架构下的系统,可以说每个服务都是分别部署在多台服务器上的,有的甚至还需要多机房,在这种架构下可以说可以很好的做到了易扩展.容灾等功能.推荐的服务部署为一服务多机器.一机器 ...
- PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第四组(转)
十:联机处理-可选项终端根据卡片行为分析的结果,执行对应的处理.若卡片响应联机,则终端发起联机操作.联机处理使得发卡行后台可以根据基于后台的风险管理参数检查并授权批准或拒绝交易.除了传统的联机欺诈和信 ...
- PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第三组
七:终端风险管理-必选但包含可选步骤异常文件:终端检查应用主账号是否在异常文件列表(卡号黑名单)中.商户强制联机:商户可以将当前交易强制为联机处理.最低限额:控制交易当前交易金额或同一张卡片连续几笔交 ...
- PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第二组(转)
四:脱机数据认证-可选终端进行脱机数据认证来,认证卡片.记住:对于某个事情,终端与卡片谁单独也说了不算,要二者都能干才能干. 终端依据卡片(AIP)和终端(终端性能)的支持情况,决定是否使用及使用哪种 ...
- PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第一组(转)
两个PPT结合起来--一些基础介绍--每一步的详细细节还要去研读文档 EMV-全球标准PBOC-国内标准 ----------------------一:必选:应用选择应用选择的方法:目录选择法.AI ...
- 运用socket实现简单的服务器客户端交互
Socket解释: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. Socket的英文原义是“孔”或“插座”.作为BSD UNIX的进程通信机制,取后一种意 ...
- 使用XML与远程服务器进行交互
最近在做的一个项目其中的一部分是与远程服务器进行交互,确定身份验证的合法性,于是编写了SendRequest方法 此方法发送给远程服务器XML请求,服务器经过处理后,返回XML回应,由此方法接收到后进 ...
- Appcn 移动开发 前台与服务器数据交互
第一次写.嘿嘿. 言归正传,这几天开始学习移动开发,使用的是Appcan平台.Appcan平台采用HTML5+CSS3做开发 实现跨平台,正好可以满足我们的业务需求. Appacn和数据库进行交互的方 ...
- Ajax概述及浅谈其与服务器的交互过程
概念: 首先AJAX不只是一个特定的客户端技术,更应算是一种技巧.Ajax技术的核心操作是用XmlHttpRequest(下称XHR)对象进行异步数据处理. 所谓异步,即通过 AJAX,JavaScr ...
随机推荐
- linux下iconv()函数的用法(转载并修改)
linux shell 配置文件中默认的字符集编码为UTF-8 .UTF-8是unicode的一种表达方式,gb2312是和unicode都是字符的编码方式,所以说gb2312跟utf-8的概念应该不 ...
- [01] Servlet是什么
1.Servlet是什么 Servlet(Server Applet),全称Java Servlet,是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容. 1.1 ...
- 最近使用 .NET Core 遇到的一些坑
最近.NET Core升级到2.0后开始慢慢捣鼓的多了起来,但遇到了不少坑,所以特来记录下. 第一个坑 条件编译符 我们在编写一些方法的时候通常会为Debug模式增加一些输出日志等以便我们检查,也会 ...
- 记一次【模拟点击】,WinForm小软件开发过程
前言 年初四月份的时候,有朋友找到我,说想开发一个模拟点击的软件.最终软件做完后,发现效果不理想.唯一开发的我是认为最好是放弃了,做运营的他,坚持说这个没问题,说是改变合作方式.最终也是不了了之了. ...
- DotNetCore跨平台~linux上还原自主nuget包需要注意的问题
问题的产生的背景 由于我们使用了jenkins进行部署(jenkins~集群分发功能和职责处理),而对于.net core项目来说又是跨平台的,所以对它的项目拉取,包的还原,项目的编译和项目的发布都是 ...
- RAID及热备盘详解
RAID,为Redundant Arrays of Independent Disks的简称,中文为廉价冗余磁盘阵列. 一.出现的原因(RAID的优点): 它的用途主要是面向服务器,但现在的个人电脑由 ...
- 混合高斯模型(Mixtures of Gaussians)和EM算法
这篇讨论使用期望最大化算法(Expectation-Maximization)来进行密度估计(density estimation). 与k-means一样,给定的训练样本是,我们将隐含类别标签用表示 ...
- vue语法之拼接字符串
先来一行代码: <div class="swiper-slide" v-for="item in message"> <img v-bind: ...
- php正则匹配utf-8编码的中文汉字
在javascript中,要判断字符串是中文是很简单的.比如: var str = "php编程"; if (/^[\u4e00-\u9fa5]+$/.test(str)) { a ...
- jS判断浏览器终端
在做移动端项目的时候,常常会遇到需要判断页面浏览终端的需求.要想判断是什么浏览器终端,先打印 navigator.userAgent 出来.所以收集了几种比较常用的方法: if(/(iPhone|iP ...