1.背景
日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。
通常,日志被分散的储存不同的设备上。如果需要管理数十上百台服务器,必须依次登录每台机器的传统方法查阅日志,这样很繁琐和效率低下。当务之急是使用集中化的日志管理,开源实时日志分析ELK平台能够完美的解决上述所提到的问题。
2.工具
ELK由ElasticSearch(ES)、Logstash和Kibana三个开源工具组成。
ES是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,可以对日志进行收集、分析、并将其存储供以后使用。
kibana也是一个开源和免费的工具,Kibana可以为Logstash和ES提供的日志分析友好的Web界面,可以帮助我们汇总、分析和搜索重要数据日志。
可以在ELK官网下载ELK最新版本(6.2.3)的工具安装包,Windows环境选择后缀为zip格式的下载,其中Kibana选择windows选项。如遇下载速度慢或下载中途停止,可以采用VPN代理下载或者云服务器下载。
3.安装环境
Windows环境(Windows 7)
4.安装步骤
4.1安装配置Java环境
在Oracle官网获取最新版的Java版本,要求至少为1.8 以上版本。JDK官网
安装过程比较简单,第一步在安装目录下新建JDK和JRE2个文件夹,第一次安装为JDK,第二次为JRE。安装完成后,在计算机的属性->高级系统设置->环境变量中配置JAVA_HOME,如下图所示:
在cmd命令窗口中运行java -version命令,如果显示如下结果,表示安装成功:
image2.png4.2安装ELK
由于Logstash服务依赖ES服务,Kibana服务依赖Logstash和ES,所以ELK的服务启动顺序为:ES->Logstash->Kibana,为了配合服务启动顺序,我们安装顺序和启动顺序保持一致。
解压三个压缩包到同一个目录中,目录的绝对路径中最好不要出现中文字符和空格。如下图(解压到E盘的ELK目录下):
4.3安装ES服务和插件
4.3.1安装ES服务
cmd进入elasticsearch的bin目录,运行elasticsearch-service install,安装ES服务,如下图:
image4.png运行 elasticsearch-service manager,管理配置ES,点击Start启动服务,下方的Startup type设置为Automatic,如下图:
image5.png至此,ES服务安装配置基本完成。
打开浏览器,输入http://localhost:9200/,若出现以下结果,则表示安装成功,服务启动。
4.3.2安装head插件
- 下载nodejs,点击nodejs官网,在LTS下选择对应版本下载,如下图:
- Cmd进入dos命令界面,执行node -v查看是否成功
- 在nodejs目录下执行 npm install -g grunt-cli 安装grunt ,-g代表全局安装,安装路径为C:\Users\yourname\AppData\Roaming\npm,安装完成后执行grunt -version查看是否安装成功,会显示安装的版本号。
- 修改elasticsearch.yml文件
# 集群名字
cluster.name: es-6.3
# ------------------------------------ Node ------------------------------------
# node节点名字:
node.name: node-101
# ----------------------------------- Paths ------------------------------------
# 数据存储目录(多个路径用逗号分隔)
path.data: E:/ELK/elasticsearch-6.2.3/data
# 日志目录
path.logs: E:/ELK/elasticsearch-6.2.3/logs
# ----------------------------------- Memory -----------------------------------
# 本机IP地址
network.host: 0.0.0.0
# 本机端口号,默认即可:
http.port: 9200
# --------------------------------- Discovery ----------------------------------
# 增加新的参数,这样head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
-
启动ES服务,这个可以在serrvices.msc上启动,也可在bin目录下输入elasticsearch-service start启动。
-
把head的源码clone过来,在此之前需要在git官网安装git,然后在ES的bin目录下执行git clone git://github.com/mobz/elasticsearch-head.git。
-
在Gruntfile.js修改head插件源码,找到connect的地方,修改如下:
connect: {
server: {
options: {
port: 9100,
hostname: '*',
base: '.',
keepalive: true
}
}
}
- 在elasticsearch-head目录下运行
npm install
grunt server
- 输入localhost:9100,可查看集群状态,至此ES成功安装。
4.4安装Logstash服务
- 在logstash文件夹的bin目录里新建logstash.conf配置文件,具体内容如下,具体参数可以自定义:
input {
tcp {
port=>5549
}}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "test-logstash-%{+YYYY-MM}"
}}
- 在bin目录中新建logstash启动文件run.bat,内容如下:
image12.png
image13.png
- 安装logstash到windows服务:从nssm官网下载nssm压缩包,根据操作系统是32位还是64位提取出压缩包中的nssm.exe,拷贝到logstash的bin目录下,在cmd中运行nssm install logstash,出现安装界面并填写相应的内容,在依赖(dependencies)里面根据填写如下内容(注意:Java是32位的后缀是x86,64位的是x64):
添加依赖的原因是,logstash的输出配置的是Elasticsearch,如果Elasticsearch没有启动,logstash无法正常工作。
最后单击install service按钮,执行安装过程(注意这里若出现警告的话,选择允许执行全部操作)。
4.5安装Kibana服务
安装Kibana服务和logstash服务步骤基本相同,将nssm.exe拷贝到kibana的bin目录下,在cmd中运行nssm install kibana,填写如下内容,最后单击install service按钮,执行安装过程:
image14.pngimage15.png
5.启动服务
在cmd中运行services.msc打开windows服务,依次启动如下服务:
Elasticsearch->Logstash->Kibana
在浏览器中输入:http://localhost:5601/ ,如果出现如下界面,表示服务启动成功:
至此,所有服务安装完成,平台搭建完成,后续集群的部署还需要在ELK的各个配置文件中进行详细的配置,安装配置过程中出现的各种问题和解决方案也会在后面详细说明。
网友评论