ELK系列:新版ELK安装(windows与linux环境)

ELK简介

一套成熟的系统日常运作过程中会产生各种日志,如系统日志、操作日志、访问日志、异常日志等,在不引入日志收集工具时,在生产环境中查看日志成为了一件十分繁琐的事情,首先得问运维拿某个时间段产生的日志,然后下载到本地一份一份去查看。在系统应用数量与访问不大时,这种方式还可以接受。当有多个系统以及每个系统产生多份日志时,这种查询效率变得十分低效。因此一个成熟的日志收集系统应该至少为我们解决以下几个问题:

  1. 统一收集上报:在集群环境中,每个节点产生的日志应该统一收集起来以免去每个节点的服务器查询。
  2. 日志过滤:在一份日志中,有些信息是我们比较关心的,有些信息其实可以忽略,根据不同的业务需求收集需要的日志信息。
  3. 强大的搜索功能:一个访问量大的系统,日志大小可能是TB级别,因此搜索的速度变得尤其重要,ELK依靠elasticsearch强大的全文检索功能得快速检索日志信息。
  4. 数据分析:例如我们想知道用户访问量TOP10的地区,以便选择云服务器的所在区域,访问量大的地区可以加多节点,访问量少的地区可以适当减少节点。ELK中kibana提供的界面操作可实现简单的数据分析功能(kibana更多的功能是要收费,后面文章会提及如何破解x-pack以使用ELK的全套功能)。

ELK的组成

  1. elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,配置简单,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  2. Logstash是开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用。
  3. Kibana 可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。当然kibana的很多重要功能不是全免费的,例如kibana角色与权限功能,日志邮件报警等是通过x-pack收费的。
  4. Beats :beats的功能类似logstash,但更轻量,占用内存更低。

windows环境安装ELK 6.3.0版本

  1. 安装elasticsearch 6.3.0,下载地址:http://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.zip将elsaticsearch 6.3.0解压放在D:\ELK目录下,改名为es,转到D:\ELK\es\bin目录,执行elasticsearch.bat命令启动。

  2. 安装logstash 6.3.0版本,下载地址:https://artifacts.elastic.co/downloads/logstash/logstash-6.3.0.zip将logstash 6.3.0 解压放在D:\ELK目录下,改名为logstash。logstash启动时需要指定配置监控日志策略的文件,首先新建一个logstash启动的配置文件test.conf放在D:\ELK\logstash\config目录下,内容如下:

​input {
   file{
       path => "D:/logs/log*"  #在logs目录下收集log开头的日志文件
   	type => "syslog"
       start_position => beginning #从首行开始读取文件
   }	
}
filter {}
output {
   elasticsearch { 
   hosts => ["localhost:9200"] #elasticsearch的地址
   index => "syslog" #指定索引名为syslog(查看日志时使用)
   }
}

转到D:\ELK\logstash\bin的目录执行:logstash -f …/config/test.conf 启动。

  1. 安装Kibana 6.3.0 版本,下载地址:https://artifacts.elastic.co/downloads/kibana/kibana-6.3.0-windows-x86_64.zip将kibana 6.3.0 解压放在D:\ELK目录下,改名为kibana。转到kibana目录,打开D:\ELK\kibana\config目录下的kibana.yml文件,在后面加上:server.host: "0.0.0.0"允许外网访问。转到D:\ELK\kibana\bin\目录执行kibana.bat命令启动,通过浏览器访问localhost:5601,即可见到kibana页面如下图所示
    关于kibana的基本使用后面会出文章介绍
    (关于kibana的基本使用后面会出文章介绍)

linux环境运行ELK 6.3.0版本

一、ELK安装

  1. 安装Elasticsearch 6.3.0版本,下载地址:http://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.zip将elsaticsearch 6.3.0解压放在ELK目录下,改名为ES,转到ELK\ES目录,执行bin/elasticsearch 命令启动(需要后台启动执行:bin/elasticsearch &)。

  2. 安装 Logstash 6.3.0 版本,下载地址:
    https://artifacts.elastic.co/downloads/logstash/logstash-6.3.0.zip
    将logstash 6.3.0 解压放在ELK目录下,改名为logstash。logstash启动时需要指定配置监控日志策略的文件,首先新建一个logstash启动的配置文件test.conf放在ELK\logstash\config目录下,内容如下:

 ​input {
	file{
        path => "/logs/log*"  #在logs目录下收集log开头的日志文件
		type => "syslog"       
        start_position => beginning #从首行开始读取文件
    }	
}
filter {}
output {
    elasticsearch { 
    hosts => ["localhost:9200"] #elasticsearch的地址
    index => "syslog" #指定索引名为syslog(查看日志时使用)
	}
 }

转到ELK\logstash的目录执行:bin/logstash -f config/test.conf(需要后台启动执行:bin/logstash -f config/test.conf &)

  1. Kibana 6.3.0 版本,下载地址:
    https://artifacts.elastic.co/downloads/logstash/logstash-6.3.0.tar.gz
    将kibana 6.3.0 解压放在ELK目录下,改名为kibana。转到kibana目录,打开ELK\kibana\config目录下的kibana.yml文件,在后面加上:server.host: "0.0.0.0"允许外网访问。转到ELK\kibana\bin\目录执行./kibana 命令启动(需要后台启动 执行 ./kibana &)。

注意:

  • 由于elasticsearch可以接收用户输入的脚本并且执行,为了系统安全考虑, 需要创建一个单独的用户用来运行,新建用户:useradd elastic,设置密码:passwd elastic,赋予目录权限:chown elastic /ELK –R;赋予elastic用户执行权限:chmod -R 770 /ELK
  • 在linux启动elasticsearch可能会报如下两个警告

max file descriptors [4096] for elasticsearch process likely too low, consider increasing to at least [65536]

大致意思为当前用户的每个进程最大同时打开文件数太小,解决方案如下:
vim /etc/security/limits.conf 文件在最后新增下面两行,设置elastic用户可打开文件的最大数量

elastic hard nofile 65536
elastic soft nofile 65536

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

大致意思为elasticsearch的最大虚拟内存不够,需要设置最大虚拟内存值
vim /etc/sysctl.conf 文件在最后新增下面一行,设置elastic最大虚拟内存

vm.max_map_count=262144
并执行命令:sysctl -p 让配置生效

二、ELK关闭

  1. elasticsearch关闭 ,执行命令:ps -af |grep elasticsearch,找到对应的PID,再执行命令:kill PIDelasticsearch关闭 ,执行命令:ps -af |grep elasticsearch,找到对应的PID,再执行命令:kill PID
  2. kibana关闭,执行命令:lsof -i:5601,找到对应的PID,再执行命令:kill PID
  3. logstash关闭,执行命令:ps –af |grep logstash,找到对应的PID,
    再执行命令:kill PID
发布了5 篇原创文章 · 获赞 7 · 访问量 3806

猜你喜欢

转载自blog.csdn.net/johnshen2017/article/details/85013152
今日推荐