ELK6.5.3部署

1.    简介

  日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

  通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。

  集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。

  开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成:

       ElasticSearch是一个基于Lucene的开源分布式搜索服务器。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。在elasticsearch中,所有节点的数据是均等的。

  Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤、分析,并将其存储供以后使用(如,搜索),您可以使用它。说到搜索,logstash带有一个web界面,搜索和展示所有日志。

  Kibana 是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

2.    安装elasticsearch

下载elasticsearch、logstash、kibana三个软件安装包

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.3.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.3-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.3.tar.gz

解压安装包

tar -zxvf elasticsearch-6.5.3.tar.gz -C /usr/local/bin

配置master主机上的elasticsearch

vim /etc/elasticsearch/elasticsearch.yml

添加这一段配置文件

log4j.appender.D.Threshold = INFO 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] -[ %p ]  %m%n

配置数据节点主机上的elasticsearch

vim /etc/elasticsearch/elasticsearch.yml

添加这一段配置文件

cluster.name: es-cluster 
node.name: data-node1
node.master: false 
node.data: true 
network.host: 192.168.134.130
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.134.129", "192.168.134.130"]

修改系统最大文件打开数

ulimit -Hn  //通过这个命令查看系统最大文件打开数的限制
vim /etc/security/limits.conf 
user soft nofile 65536
wuhao hard nofile 65536
wuhao soft nproc 2048
wuhao hard nproc 4096

vim /etc/sysctl.conf

添加

vm.max_map_count=655360

 

加载配置sysctl -p

 

elasticsearch不能用root用户启动

创建用户 useradd wuhao
设置密码 passwd wuhao

 

切换用户 su wuhao

给文件夹授权 chmod -R 777 /usr/local

后台启动

bin/elasticsearch -d

 

查看es集群情况

curl '192.168.134.129:9200/_cluster/health?pretty'

status为green则代表健康没问题,如果是yellow或者red则是集群有问题。

 

查看集群的详细信息

curl '192.168.134.129:9200/_cluster/state?pretty'

 

3.    安装kibana

编辑配置文件

 

tar -zxvf kibana-6.5.3-linux-x86_64.tar.gz -C /usr/local/bin/kibana

vim /usr/local/bin/kibana/config/kibana.yml

 

server.port: 5601 

server.host: 192.168.1.134 

elasticsearch.url: "http://192.168.1.134:9200"  

 

 

启动kibana服务

nohup bin/kibana &

 

在浏览器访问http:// http://192.168.1.134:5601/

x-pack

4.    安装logstash

新建logstash-index配置文件:

vim /usr/local/logstash/config/logstash-index.conf

 

input {

    beats {

         port => "5044"

         type => "self-stock"

         codec=> plain{

charset=>"UTF-8"

}

    }

 

}

output {

  if[type]=="self-stock"{

    elasticsearch {

       hosts => "192.168.1.134:9200"

       index => "self-stock-%{+YYYY.MM.dd}"

       codec=> plain{

charset=>"UTF-8"

}

    }

  }

}

 

5.    安装filebeat

由于客户端主机是windows系统,这里下载64位windows版本的filebeat客户端

修改配置文件 filebeat.yml

 

filebeat.inputs:

- type: log

  paths:

    - C:\workspace\server-self-stock\log\*

  multiline.pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}'

  multiline.negate: true

  multiline.match: after

 

setup.template.name: "self-stock"       

setup.template.pattern: "self-stock-*"  

#output.elasticsearch:

   # hosts: ["192.168.134.129:9200"]

    #index: "self-stock-%{+yyyy.MM.dd}"

   

output.logstash:

  hosts: ["192.168.1.134:5044"]

 

 

客户端的filebeat访问服务器的5044端口,在服务器设置开放这个端口

 

firewall-cmd --permanent --zone=public --add-port=5044/tcpsy

 

重启生效 stemctl restart firewalld.service

 

查看是否开放成功 firewall-cmd --query-port=5044/tcp

 

6.    log4j修改日志编码

将.log后缀的文件上传到linux服务器上,使用file filename命令可以看到文件格式,这里我们统一为

UTF-8格式

编辑log4j.properties

 

   

log4j.appender.D.File =  C://workspace//server//self-stock//log//self-stock-server.log

log4j.appender.D.Encoding=UTF-8

 

上一篇:SQL Server 第四章 存储过程(Procedure),触发器(Trigger),数据完整性(Data Integrity)


下一篇:JQdata通过财务数据计算日数据和30分钟数据的换手率