CentOS7部署ELK

CentOS7部署ELK

本文跳过了CentOS的安装过程,如有不懂的请自己百度下

最近因为业务需要监控nginx和apache的日志,所以粗略研究了下ELK。这三个字母分别代表了Elasticsearch, Logstash, Kibana。他们组成了一个基础的日志统计系统,L负责日志信息获取,E负责创建日志缓存,K负责最终的视图呈现。

安装

推荐使用tar包,rpm看似方便,但在实际的使用中会有些麻烦,后面会再进行说明。

环境准备

Java环境,我使用的是1.8(java安装方式,应该不用再说了吧)

过程

由于都是使用的tar包,所以直接解压出来就好
tar -zxvf xxxxxxx.tar.gz

说明

这里说明一下为什么要选择用tar包而不是rpm,目的是方便目录管理。tar包解压后所有的文件都在一起,而如果使用的是rpm包,安装完成后你会发现目录非常散乱,这里拿Logstash举个例子来看看安装完成后都有哪些目录就明白了。(当然看各自喜好,也会有人觉得能接受rpm安装后的路径,so自己选择吧)

tar解压后
CentOS7部署ELK_第1张图片

rpm安装后
CentOS7部署ELK_第2张图片

配置

Logstash

配置文件在解压路径下的config文件夹中,包含了四个文件

  • jvm.options
  • log4j2.properties
  • logstash.yml (logstash的主配置包括服务地址、进程数等)
  • startup.options

在config文件夹中创建一个test.config文件规定logstash数据从哪里来,怎么过滤,怎么输出,所以这个文件包含了三个部分 input,filter,output

input {
    # 从console输入
    stdin {} 
}

filter {

}

output {
    stdout {
        # 从console输出
        codec => rubydebug
    }
}
  • 可支持从文件读取数据
  • 过滤器官方提供了很多可配置的插件,用的比较多的是grok,geoip,kv等
  • 结果可输出到控制台和文件,也可以输出给elasticsearch

Elasticsearch

配置文件同样也在解压路径下的config文件夹中,包含了三个文件

  • jvm.options
  • log4j2.properties
  • elasticsearch.yml (主配置文件)

主配置文件中一些重要的配置

  • path.data和path.logs
  • cluster.name(集群名称)
  • node.name(节点名称)
  • bootsrap.memory_lock
  • network.host
  • discovery.zen.ping.unicast.hosts
  • discovery.zen.minimum_master_nodes

Kibana

解压后的主路径下的config文件夹中,有一个叫kibana.yml的文件,这个就是主配置文件了。配置文件中可配置的属性很多,大家可以参考官方文档进行修改。这里主要说一下和elasticsearch对接的基础配置

  • server.port,server.host,server.name
  • elasticsearch.url

当然,kibana对接elasticsearch远不止这么简单,这么写的目的只是为了说明这样配置kibana能看到e上的数据,至于更高级的配置,比如https协议,用户配置等等,在实际应用中再做相应的调整。

运行

Logstash

进入解压目录运行 ./bin/logstash -f config/xxxx.config

为了确保配置文件书写正确可以使用 ./bin/logstash -f config/xxx.config -t
进行测试

Elasticsearch

进入解压目录运行 ./bin/elasticsearch

这里需要注意一下的是,如果当前为root去启动e,会报错

CentOS7部署ELK_第3张图片

没有去深究其原因,解决办法是切换一个非root账户进行启动就ok了。

Kibana

进入解压目录运行 ./bin/kibana

传送门

Logstash官方文档
Kibana官方文档
Elasticsearch官方文档

你可能感兴趣的:(网站运维)