打字猴:1.70050885e+09
1700508850 数据科学家养成手册 [:1700503606]
1700508851 12.2.1 实时上传
1700508852
1700508853 1.上传方式与问题
1700508854
1700508855 实时上传的常见方式有如下3种。
1700508856
1700508857 方式1:在终端使用DTU上传
1700508858
1700508859 DTU(Data Transfer Unit)是一种数据传输模块,以无线DTU居多(如图12-3所示)。
1700508860
1700508861
1700508862
1700508863
1700508864 图12-3 无线DTU模块
1700508865
1700508866 DTU通常可以当成一个“黑匣子”来使用,有“入口”和“出口”两个数据接口。“入口”可以连接RJ-45、COM、1394、USB、同轴电缆等多种数据接口,通常用来接收由电子探测装置传送过来的数据。常见的电子探测装置包括温度、压力、气体浓度、磁场强度等的探测设备。“出口”一般有CDMA、GPRS、IEEE 802.11x(Wi-Fi)等多种协议的接口,通过IP协议栈把数据送入互联网。这种设备在矿山、自然环境监测、民用远程抄表等场景中经常使用。
1700508867
1700508868 方式2:在终端使用Wi-Fi或有线以太网上传
1700508869
1700508870 使用Wi-Fi上传的场景在我们身边就更常见了。
1700508871
1700508872 每个人使用的智能手机和PC上都安装了许多软件,每个软件只要拥有本地网络接口的使用权限,就可以进行数据的上传和下载。这些软件中的大多数每天都会与其后台所连接的服务器通信,报送一些从本机上扫描到的信息,包括且不限于本地的MAC地址、IP地址、CPU资源、内存资源、安装软件列表,甚至一些信息的输入记录等。
1700508873
1700508874 方式3:在服务器端使用以太网上传
1700508875
1700508876 在使用互联网对外提供服务的企业中,会有相当数量的服务器产生大量的日志。这里包括这些服务器的访问日志,也包括其自身系统的工作日志等。由于服务器本身具有一定的日志存储能力,所以自然允许实时和延时两种形态的日志传送。对于需要实时传送的服务器来说,可以考虑使用一些开源工具帮助收集和发送日志。
1700508877
1700508878 在每一台希望享受日志告警分析服务的主机上部署一套第三方程序是需要勇气的,这里有太多的未知风险,谁也不知道自己是不是下一个特洛伊木马(1)的受害者。因此,更为实际的方式是在自己授权的情况下主动开放不涉密的日志内容给服务提供方。这么说可能太拗口,其实就是在服务器上安装一个软件,由这个软件收集指定的日志内容,并实时把日志内容发送到提供日志告警分析服务的相应监听端口供其收集。只要本地的收集进程是可信的,不会随便收集指定日志内容以外的任何信息,那就非常安全。
1700508879
1700508880 所以,在这个环节很多公司(尤其是互联网公司)都喜欢使用一些开源的工具,对下载的源代码进行一些个性化的修改和验证,确认没有问题后编译使用。这种方式也被认为是目前性价比最高的数据采集方式。这类软件的选择范围也比较广,业界常用的有Fluentd(2)、Flume(3)、Heka(4)等。
1700508881
1700508882 以Fluentd(如图12-4所示)为例,这种工具可以安装在任意的主机上,对系统日志、Web服务日志等各种日志进行监控,只要发现新的日志内容就会立刻收集起来。在收集的过程中,这些日志可以经过第一次处理,也就是在没有发出去之前这些先过滤日志,根据过滤条件来选择对新发现的一条日志是做丢弃处理、发往其他的服务器地址,还是只在本地其他文件上转存等,十分方便。对于互联网公司,尤其是初创的互联网公司来说,这种开源工具能够节省大量的开发成本,让开发人员把精力向业务方向集中。
1700508883
1700508884
1700508885
1700508886
1700508887 图12-4 FIuentd工作流程示意图
1700508888
1700508889 在提供日志告警分析服务的主机上也需要部署Fluentd。这里的Fluentd进程用来接收从其他服务器上部署的Fluentd发来的日志。接收到日志后,Fluentd可以根据配置再对日志进行过滤或转发给另一台Fluentd服务器,也可以直接保存在本地可访问的数据容器中,例如Elasticsearch、MongoDB、Hadoop HDFS等。
1700508890
1700508891 这种收集方式虽然方便,但是也有自己的问题。
1700508892
1700508893 第一个问题是不能加密。对于非S3的接收端Fluentd,只能通过HTTP短连接进行传输,不支持SSL证书。(5)如果担心这些日志会在网络上被其他人监听,那就要么自己定制,植入加/解密算法,要么使用其他支持加密的传输软件。
1700508894
1700508895 第二个问题是高可用机制复杂。这种问题不仅Fluentd会有,其他任何一个要完成异地数据传输的类似软件都面临同样的问题。因为网络和目标主机的可靠性肯定不是100%,所以需要一个备用策略来转移传输失败的HTTP请求——这就是刚刚说的“高可用”(High Availability)。
1700508896
1700508897 2.日志高可用
1700508898
1700508899 这一类问题有两种基本处理策略。
[ 上一页 ]  [ :1.70050885e+09 ]  [ 下一页 ]