本文继续朝着最终目标 —— 高可用的ELK集群系统前进,今天主要讲述logstash的安装和配置,同时使用supervisord方便高效的管理elk的相关服务进程。

一、下载

  本文使用tar包进行安装,执行以下命令即可下载logstash2.4.1安装包。

wget https://download.elastic.co/logstash/logstash/logstash-2.4.1.tar.gz

二、配置安装

  logstash的安装很简单,只需要解压即可;然后进行适当地配置,即可执行启动脚本,启动logstash进程。

2.1 解压安装

  下载完成之后,执行下面的命令可以进行解压安装,解压之后会生成目录logstash-2.4.1,将目录重命令为logstash。

tar -zxvf logstash-2.4.1.tar.gz
mv logstash-2.4.1 logstash  #重命名

2.2 配置

  logstash的配置文件一般包含三部分内容:output, filter和input。每个部分都有相应的插件,其中output和input是必须的。下面是一个简单的配置文件test.conf内容:

input { stdin { } }
output {
  stdout { codec => rubydebug }
}

  上述配置文件表示从控制台输入信息,然后从控制台以rubydebug编码格式输出。

三、启动停止

  进入logstash的解压目录,执行以下命令即可启动logstash服务进程。

./bin/logstash -f ./config/test.conf

  参数-f指定进程加载的配置文件,除此之外,还有-w可以指定过滤线程数,-l指定进程日志输出文件等等。

  那么,如何停止logstash进程呢?先查找进程的ID,然后kill即可,如下:

ps -ef | grep logstash #如果找到logstash的进程ID为4556
kill -9 4556

  假设现在该服务器上有N(N>=5)种日志形式,每种日志处理方式都不一样,需要不同的配置文件,每种日志需要启动一个logstash进程进行处理,那么如何管理这些进程呢?有没有统一方便的进程管理方式呢?

  Now,supervisord登场啦!
  supervisord是啥玩意儿?读者自己去百度吧!下面主要介绍其安装和使用方法。

四、安装supervisord

  supervisord的运行以来python,而大部分的linux系统都自带安装了python,那么后续的一且都是那么easy!直接使用easy_install安装supervisord,如下:

easy_install supervisor

  默认supervisord被安装到/usr/bin目录,目录下包含三个文件:echo_supervisord_conf, supervisorctl, supervisord。

  QQ截图20161128114300.png

  echo_supervisord_conf是配置辅助文件,supervisorctl是进程控制脚本,supervisord是启动脚本。

五、配置supervisord

  首先,执行下面的命令生成一个配置样例,然后再修改该样例。

echo_supervisord_conf > supervisord.conf

  修改supervisord.conf配置文件,增加下面的内容:

[inet_http_server]         ; inet (TCP) server disabled by default
port=*:9001        ; (ip_address:port specifier, *:port for all iface)
username=yourname              ; (default is no username (open server))
password=yourpass               ; (default is no password (open server))

[program:logstash-tomcat-access]
command=/opt/logstash/bin/logstash -f /opt/logstash/config/test.conf -w 5 -l                   /opt/logstash/logs/logstash-test.log
directory=/opt/logstash
numprocs=1
autostart=true

六、启动supervisord

  执行下面的命令,启动supervisord服务进程。

supervisord -c supervisord.conf

  可以通过web界面查看进程启动情况,在浏览器地址输入http://ip:9001,如下图:

  QQ截图20161128115637.png

  更新了supervisord.conf之后,可以使用控制命令重新启动supervisord进程加载新的配置内容。

supervisorctl reload
文章作者:xiaohui249
本文链接:http://javatech.wang/index.php/archives/96/
版本所有 ©转载时必须以链接形式注明作者和原始出处