Linux 日志服务器群集

ELK实时日志分析平台环境部署

一、ELK的概念与原理

1、ELK的组成

ELK 是由 ElasticSearch、Logstash和Kibana 三个开源工具组成。

1)ElasticSearc 是一个基于Lucene的开源分布式搜索服务器。特点是:分布式,零配置,自动发现,索引自动分片,索引副本机制,RESTful风格接口,多数据源,自动搜索负载。

2)Logstash 是一个完全的开源工具,他可以对你的日志进行收集、过滤、分析、支持大量的数据获取方法,并将其存取供以后使用。

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

2、ELK的特点

  • 收集- 能够采集多种来源的日志数据
  • 传输-能够稳定的把日志数据传输到中央系统
  • 存储-如何存储日志数据
  • 分析-可以支持UI 分析
  • 警告-能够提供错误报告,监控机制

ELK 提供了一整套解决方案,并且很多都是开源软件,是目前主流的一种日志系统。

3、ELK 的工作原理

①Logstash 收集AppServer 产生的log,并存放到ElasticSearch 群集中,而 Kibana则从 ES 集群中查询数据生成图表,在返回给Browser。

 

②Logstash事件处理有三个阶段:inputs→filters→outputs。是一个接收,处理,转发日志的工具。

③Input:输入数据到logstash

④Filters:数据中间处理,对数据进行操作

⑤Outputs:outputs是 logstash 处理管道最末端组件

⑥Codecs:codecs 是基于数据流的过滤器,可以作为input,output的一部分配置。

二、ELK环境部署

三台 Centos 7

1、主机名:elkc1.sw.org

IP地址:172.16.12.101

2、主机名:elkc2.sw.org

IP地址:172.16.12.102

3、主机名:apache

IP地址:172.16.12.99

前面俩台主机需要做的部署:

修改主机名 nmcli general hostname

增加本机dns 记录 vim /etc/hosts

vim /etc/selinux/config SELINUX=disabled

setenforce 0                 #关闭防火墙

vim /etc/security/limits.conf 修改系统限制,在最后一行添加下面内容 

*       soft    nofile  65535
*       hard    nofile  131072
*       soft    nproc   4096
*       hard    nproc   8192
*       soft    memlock unlimited
*       hard    memlock unlimited

然后 reboot 重启系统。 

部署 elasticseatrch

1、安装 JAVA 包 ,配置java 环境。(要求java 环境必须是1.8版本以上)

tar 解包

mv jdk1.8.0_161/ /usr/local/jdk1.8.0 移动包、

vim /etc/profile 添加JAVA需要的环境

export  JAVA_HOME=/usr/local/jdk1.8.0
export  CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export  PATH=$JAVA_HOME/bin:$PATH

source /etc/profile 重启文件

java -version 查看配置是否成功,不显示 open 即可。

 

2、安装 elasticsearch

1)安装包 copy 到虚拟机中 进行解压

[root@elkc1 ~]# rpm -ivh elasticsearch-7.6.0-x86_64.rpm

[root@elkc1 ~]# mkdir -p /var/es-data

[root@elkc1 ~]# chown -R elasticsearch:elasticsearch /var/es-data

[root@elkc1 ~]# chown -R elasticsearch:elasticsearch /var/log/elasticsearch/

修改属主和属组以及日志的属组属主

2)修改 elasticsearch 的配置文件

[root@elkc1 ~]# vim /etc/elasticsearch/elasticsearch.yml

   cluster.name: myelk              #设置集群名称
   node.name: elkc1                  #设置节点名称
   node.master:ture                    #主节点
   node.data:ture                        #数据节点
   path.data: /var/es-data         #data存放的路径
   path.logs: /var/log/elasticsearch  #logs日志的路径
   bootstrap.memory_lock: ture        #配置内存使用交换分区
   network.host: 0.0.0.0                      #监听的网络地址
   http.port: 9200                                #开启监听的端口
   cluster.initial_master_nodes: ["elk-n1"]      #集群初始主节点
   discovery.zen.ping.unicast.hosts: ["elk-n1" , "elk-n2"]    #节点单播通信
   http.cors.enabled: true            #此下两条为新增加的参数
   http.cors.allow-origin: "*"       #使head插件可以访问ES

这里需要关闭防火墙:systemctl stop firewalld

3)修改elasticsearch的Service配置文件

[root@elkc1 ~]# vim /usr/lib/systemd/system/elasticsearch.service 
# Specifies the maximum file size
LimitFSIZE=infinity
LimitMEMLOCK=infinity         #添加这一行即可

4)启动elasticsearch

[root@elkc1 ~]# systemctl daemon-reload

[root@elkc1 ~]# systemctl start elasticsearch.service

 

3、部署 第二台的 elasticseatrch

从 配置JAVA 开始 到访问 9200 端口 看到内容即可。

配置文件可以用:

[root@elkc2 ~]# scp root@172.16.12.101:/etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml

在elkc1 主机上安装Head 插件

#安装EPEL源
[root@elkc1 ~]# yum -y install epel-release
安装phantomjs
[root@elkc1 ~]# tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 #解包
[root@elkc1 ~]# mv phantomjs-2.1.1-linux-x86_64 /usr/local/phantomjs #位移
[root@elkc1 ~]# ln -s /usr/local/phantomjs/bin/phantomjs /usr/bin  #软链接
[root@elkc1 ~]# phantomjs --version #测试
2.1.1

安装 Head 的插件,head 插件本质上是一个nodejs工程,因此需要安装node,使用npm来安装依赖的包。

[root@elkc1 ~]# tar zxvf node-v13.8.0-linux-x64.tar.gz 
[root@elkc1 ~]# mv node-v13.8.0-linux-x64/ /usr/local/node13.8
[root@elkc1 ~]# vim /etc/profile
export  NODE_HOME=/usr/local/node13.8    #添加这俩行 即可
export  PATH=$PATH:$NODE_HOME/bin
[root@elkc1 ~]# source /etc/profile    #启动文件

安装git,下载Head插件

[root@elkc1 ~]# yum -y install git
[root@elkc1 ~]# git  clone http://github.com/mobz/elasticsearch-head.git
#这里报错了,使用压缩包 即可。
[root@elkc1 ~]# unzip elasticsearch-head.zip 
[root@elkc1 ~]# mv elasticsearch-head /opt/
[root@elkc1 ~]# cd /opt/elasticsearch-head/   #修改配置文件
[root@elkc1 elasticsearch-head]# vim Gruntfile.js     #修改IP地址 即可

[root@elkc1 elasticsearch-head]# vim _site/app.js

查找:9200 #快速的找到需要修改的选项

 

[root@elkc1 elasticsearch-head]# ./node_modules/grunt/bin/grunt server &

#启动服务,使用浏览器访问:172.16.12.101:9100 #成功即可

目前的情况是已经开始工作了,但是没有接受任何的日志,所以接下来我们安装需要采集的日志。

安装Logstash

1)安装 logstash 包

[root@elkc1 ~]# rpm -ivh logstash-7.6.0.rpm #解压log 包

[root@elkc1 ~]# ln -s /etc/logstash /usr/share/logstash/config #创建软链接

[root@elkc1 ~]# vim /etc/logstash/logstash.yml #修改配置文件

这里添加文件路径 即可。

 

保存退出,进行见简单测试

[root@elkc1 ~]# /usr/share/logstash/bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

只要能正常工作即可。

2)日志采集配置

[root@elkc1 ~]# chmod a+r /var/log/messages #赋权

[root@elkc1 ~]# vim /etc/logstash/conf.d/system.conf #创建一个配置文件,将下面内容添加进去

input {
        file {
                path => "/var/log/messages"
                type => "system
                start_position => "beginning"
        }
}
output {
        elasticsearch {
                hosts => ["172.16.12.100:9200"]
                index => "system-%{+YYYY.MM.dd}"
        }
}      

[root@elkc1 ~]# systemctl enable elasticsearch.service #设置开机启动

[root@elkc1 ~]# systemctl start logstash #启动日志收集

安装Kibana

[root@elkc1 ~]# rpm -ivh kibana-7.6.0-x86_64.rpm 	#解压包
[root@elkc1 ~]# vim /etc/kibana/kibana.yml 	#修改下面四个选项,都可以搜索到
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
kibana.index: ".kibana"
i18n.locale: "zh-CN"
[root@elkc1 ~]# systemctl start kibana	#开机启动
[root@elkc1 ~]# systemctl status kibana	#当前启动

使用浏览器访问 http://172.16.12.101:5601 即可看到kibana。

这里就可以看到日志了。

安装Filebeat

[root@elkc1 ~]# rpm -ivh filebeat-7.6.0-x86_64.rpm #解包

[root@elkc1 ~]# vim /etc/filebeat/filebeat.yml

1、output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["127.0.0.1:9200"]    #看这里
一共俩条需要修改
2、setup.kibana:
host: "localhost:5601"        #还有这里
[root@elkc1 ~]# filebeat modules enable elasticsearch
[root@elkc1 ~]# filebeat setup
这里比较慢,耐心等待。
[root@elkc1 ~]# systemctl start filebeat.service	#启动filebeat

到这里就结束了,接下来给其他俩台机器 部署 JAVA 环境、安装apache和Logstash即可。

第二台机器的JAVA 环境和apache服务已经部署了,把Logstash 装一下就🆗了。

第三台机器的需要部署 JAVA 环境、安装apache和Logstash就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值