Logstash 聚合插件 aggregate filter 的使用心得

在ELK常规的使用模式下,我们收集Nginx访问日志是按照单行进行的。这样比如说有10个用户请求,对应在ElasticSearch中就是10条记录(也称为10个document)。下面将分别描述此种收集方法的优缺点。

首先,这样的收集方式非常利于按照指定字段去搜索,并根据匹配的记录去查看其它字段的信息。比如统计客户端IP为 127.0.0.1 的请求有多少,使用IPhone 手机的请求有多少。当出现 499 、502 状态码时,看看这些请求的URL是什么,然后快速定位问题。这些方法都是非常非常实用而且好用的。

其次,除了上面的这些需求之外,我们还想要制作统计图,比如统计按时间范围统计总请求数,4xx 数量,5xx数量,响应时间超过 500ms的请求数,输出的字节数量,平均响应时间。特别是最后2项,时间范围跨度越长,数据量越大,计算时间就越长。据我们实际使用中的数据量,单个索引,每天 3亿的文档数量,对应就有120G左右的数据,在单个dashboard中同时展示上面的几种图标,如果时间跨度超过1小时,页面加载时间就会超过 2s 。而kibana又提供了自动刷新功能,这样如果有多个人同时使用 elasticsearch就会咔咔的慢。

阅读剩余部分...

28
Dec 2018
AUTHOR WiFeng
CATEGORY Web,Asset
COMMENTS No Comments

搭建ELK日志监控平台那些事

ELK 是 elasticsearch / logstash / kibana 这三个英文单词的缩写,也即表明,这个技术栈中包含这三个组件,都是一家公司出品(www.elastic.co)。

kibana 负责展示,数据从elasticsearch中获取 
logstash 负责收集并解析日志数据,然后输出指定格式到elasticsearch
elasticsearch 负责保存数据,并提供检索功能。

这些组件可以在具体场景中按需组合使用,也可以单独使用。其中最有名气的当属 elasticsearch,是基于 Lucene 实现的高可用,高性能的搜索服务。现在,众多中大型企业级搜索就是使用的它,值得我们去好好学习一下。

阅读剩余部分...

23
May 2018
AUTHOR WiFeng
CATEGORY Asset
COMMENTS No Comments
21
May 2017
AUTHOR WiFeng
CATEGORY C/C++,Asset,Jotting
COMMENTS No Comments

hubot + slack 结合

在上一篇文章中介绍过 hubot 以及其如何安装,如何使用默认方式运行。这篇文章将介绍与 slack 结合使用,slack 是一个第三方托管的开发聊天室系统,类似于github的模式,真是看上去非常强大,不过我本人之前也没有太多接触这个东西,可以自行搜索了解。在之前已经介绍过,现在已经有人实现了针对 slack 的 hubot 适配器(Adapter) ,因此可以使其组合使用 ,下面将介绍具体步骤,

阅读剩余部分...

21
May 2017
AUTHOR WiFeng
CATEGORY Asset,Jotting
COMMENTS No Comments

hubot 初探

hubot 是什么?

Hubot is your friendly robot sidekick. Install him in your company to dramatically improve employee efficiency.
更多介绍,请到官网,这里就不做翻译了 https://hubot.github.com/

阅读剩余部分...

21
May 2017
AUTHOR WiFeng
CATEGORY Asset,Jotting
COMMENTS No Comments

SSH基本原理和免密码登录

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。

从客户端来看,SSH提供两种级别的安全验证:

第一种级别是基于口令的安全验证

只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密, 但是不能保证你正在连接的服务器就是你想连接的服务器。这个过程如下:

(1)远程主机收到用户的登录请求,把自己的公钥发给用户。

(2)用户使用这个公钥,将登录密码加密后,发送回来。

(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。这种方式可能会有别的服务器在冒充真正的服务器,将公钥发送给客户端,客户端就会将密码加密后发送给冒充的服务器,冒充的服务器就可以拿自己的私钥获取到密码,也就是受到“中间人”这种方式的攻击。

值得一说的是当第一次链接远程主机时,会提示您当前主机的”公钥指纹”,询问您是否继续,如果选择继续后就可以输入密码进行登录了,当远程的主机接受以后,该台服务器的公钥就会保存到~/.ssh/known_hosts文件中。

第二种级别是基于密匙的安全验证

需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒,但是相比输入密码的方式来说10秒也不长。

那么如何生成自己的一对密钥呢?打开终端执行ssh-keygen,该命令会在~/.ssh/目录下创建id_rsa、id_rsa.pub两个文件,分别为您的公钥和私钥。

将公钥拷贝到服务器的~/.ssh/authorized_keys文件中就可以了。拷贝方法有如下几种:

将公钥通过scp拷贝到服务器上,然后追加到~/.ssh/authorized_keys文件中,这种方式比较麻烦。scp -P 22 ~/.ssh/id_rsa.pub user@host:~/。

通过ssh-copyid程序,ssh-copyid user@host即可,但是这种方式不支持更改端口号(我没找到)。该程序ubuntu系统自带无需安装,其实该程序为一个脚本。

可以通过cat ~/.ssh/id_rsa.pub | ssh -p 22 user@host ‘cat >> ~/.ssh/authorized_keys’,这个也是我比较常用的方法,因为可以更改端口号。

当然还有其他的一些我不知道的方法,只要好用就是好方法。

如果是普通账号,需要在远程账户目录下保证 authorized_keys 为 600 或 644
chmod 600 /home/www/.ssh/authorized_keys

测试

如果你有远程的linux服务器,可以自己尝试一下,如果没有也没关系,可以尝试登录自己的电脑,执行:ssh localhost。当然如果你没有搭建服务器的话会提示错误,执行sudo apt-get install openssh-server安装一个ssh-server,然后就可以使用ssh进行登录了。

27
Jan 2015
AUTHOR WiFeng
CATEGORY Asset
COMMENTS No Comments

Discuz! 自由风格插件

让你的站点个性起来吧。门户、空间、论坛、应用等等每个模块,每个页面都可以使用独有风格。

详情:http://addon.discuz.com/?@tplstyle.plugin


28
Jul 2014
AUTHOR WiFeng
CATEGORY Asset
COMMENTS 2 Comments

Solr安装与启动

Solr 是一个基于 Lucene 的企业级搜索应用,下面介绍其安装于部署过程,操作系统为:Red Hat 4.1.2-46

阅读剩余部分...

1
Dec 2013
AUTHOR WiFeng
CATEGORY Asset
COMMENTS No Comments

安装rzsz软件包全攻略

首先,简单说明rzsz的大意,rz是linux系统上的文件上传工具,sz是linux系统上的文件下载工具。有的linux系统预装这两个软件,则不必要再次安装,有的系统则需要自己去安装后方可使用。以下介绍 rzsz 的安装方法:

阅读剩余部分...

14
Oct 2012
AUTHOR WiFeng
CATEGORY Web,Asset
COMMENTS No Comments

【转】起步 - 安装 Git

是时候动手尝试下 Git 了,不过得先安装好它。有许多种安装方式,主要分为两种,一种是通过编译源代码来安装;另一种是使用为特定平台预编译好的安装包。

从源代码安装

若是条件允许,从源代码安装有很多好处,至少可以安装最新的版本。Git 的每个版本都在不断尝试改进用户体验,所以能通过源代码自己编译安装最新版本就再好不过了。有些 Linux 版本自带的安装包更新起来并不及时,所以除非你在用最新的 distro 或者 backports,那么从源代码安装其实该算是最佳选择。

Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系),可以用下面的命令安装

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev

之后,从下面的 Git 官方站点下载最新版本源代码:

http://git-scm.com/download

然后编译并安装:

tar -zxf git-1.7.2.2.tar.gz
cd git-1.7.2.2
make prefix=/usr/local all
sudo make prefix=/usr/local install

现在已经可以用 git 命令了,用 git 把 Git 项目仓库克隆到本地,以便日后随时更新:

git clone git://git.kernel.org/pub/scm/git/git.git

在 Linux 上安装

如果要在 Linux 上安装预编译好的 Git 二进制安装包,可以直接用系统提供的包管理工具。在 Fedora 上用 yum 安装:

yum install git-core

在 Ubuntu 这类 Debian 体系的系统上,可以用 apt-get 安装:

apt-get install git-core

在 Mac 上安装

在 Mac 上安装 Git 有两种方式。最容易的当属使用图形化的 Git 安装工具,界面如图 1-7,下载地址在:
http://code.google.com/p/git-osx-installer

图 1-7. Git OS X 安装工具

另一种是通过 MacPorts (http://www.macports.org) 安装。如果已经装好了 MacPorts,用下面的命令安装 Git:

sudo port install git-core +svn +doc +bash_completion +gitweb

这种方式就不需要再自己安装依赖库了,Macports 会帮你搞定这些麻烦事。一般上面列出的安装选项已经够用,要是你想用 Git 连接 Subversion 的代码仓库,还可以加上 +svn 选项,具体将在第八章作介绍。(译注:还有一种是使用 homebrew(https://github.com/mxcl/homebrew):brew install git。)

在 Windows 上安装

在 Windows 上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 Google Code 的页面上下载 exe 安装文件并运行:
http://code.google.com/p/msysgit

完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。

本文转载自:http://git-scm.com/book/zh/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git 
部分链接地址或许需要翻墙才可以访问

28
Sep 2012
AUTHOR WiFeng
CATEGORY Asset
COMMENTS No Comments