部署---elk极速部署

参考文档:
https://blog.csdn.net/xiaohuai0444167/article/details/105199051
https://www.cnblogs.com/yanjieli/p/11187430.html

部署---elk

1. ELK简介

什么是ELK?通俗来讲,ELK是由Elasticsearch、Logstash、Kibana 三个开源软件组成的一个组合体

Elasticsearch#

elasticsearch是一个高度可扩展全文搜索和分析引擎,基于Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜索和分析操作,可以处理大规模日志数据,比如Nginx、Tomcat、系统日志等功能。

Logstash#

数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置;支持普通log、自定义json格式的日志解析。

Kibana#

数据分析和可视化平台。通常与 Elasticsearch 配合使用,对其中数据进行搜索、分析和以统计图表的方式展示。


这三个软件当中,每个软件用于完成不同的功能,ELK又称ELKstack,官网 https://www.elastic.co/
ELK主要优点有如下几个:
1、处理方式灵活:elasticsearch是实时全文索引,具有强大的搜索功能
2、配置相对简单:elasticsearch全部使用JSON接口,logstash使用模块配置,kibana的配置文件部分更简单
3、检索性能高:基于优秀的设计,虽然每次查询都是实时,但是也可以达到百亿级数据的查询秒级响应
4、集群线性扩展:elasticsearch和logstash都可以灵活线性扩展
5、前端操作绚丽:kibana的前端设计比较绚丽,而且操作简单

6、ELK部署环境准备
这里实验所使用系统CentOS 7.4 x86_64,服务器信息如下。并关闭防火墙和selinux,及host绑定等。

IPAddr HostName
A:  10.0.0.61 安装jdk elasticsearch (图形化界面kibana)
B:  10.0.0.7 安装jdk和logstash

# 2. 安装Elasticsearch

epel源配置
wget -O /etc/> yum.repos.d/epel.repo http:> //mirrors.aliyun.com/repo/epel-7.repo
[root@m01 ~]# cat /etc/yum.repos.d/elk-6.repo  
[elk-6.x]
name=Elastic repository for 6.x packages
#baseurl=https://artifacts.elastic.co/packages/6.x/yum
baseurl=https://mirrors.tuna.tsinghua.edu.cn/elasticstack/6.x/yum/
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md


因为elasticsearch服务运行需要java环境,因此两台elasticsearch服务器需要安装java环境。

2.1 安装JDK

centos7默认是安装了jdk,如果需要安装高版本可以使用一下步骤,这里使用下面的yum安装jdk 1.8.0_211 。
注意:两个节点都要安装。

方法一:yum安装下载好的JDK包
[root@linux-elk1 ~]#yum  install -y java-1.8.0-openjdk
[root@linux-elk1 ~]#java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)


方法二:源码安装JDK,将下载的软件包上传到服务器进行安装。
下载地址:https://pan.baidu.com/s/1AAPyPzhdclNNCb0m6ooVYQ  提取码:x18u
[root@linux-elk1 ~]# tar xf jdk-8u211-linux-x64.tar.gz -C /usr/local/
[root@linux-elk1 ~]# ln -s /usr/local/jdk1.8.0_211 /usr/local/java
[root@linux-elk1 ~]# sed -i.ori '$a export JAVA_HOME=/usr/local/java \nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH \nexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile
[root@linux-elk1 ~]# source /etc/profile
[root@linux-elk1 ~]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

2.2 安装Elasticsearch

yum install elasticsearch -y

2.3配置Elasticsearch

vim /etc/elasticsearch/elasticsearch.yml

修改配置内容:

[root@m01 ~]# cat  /etc/elasticsearch/elasticsearch.yml
---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: wg001  #定义集群名称
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: node-1 #定义节点名称
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: localhost # 或设置主机ip
#
# Set a custom port for HTTP:
#
http.port: 9200 # ---定义监听端口
#
# For more information, consult the network module docum

2.4 启动Elasticsearch
  361  systemctl  start elasticsearch
 362  systemctl enable  elasticsearch
 363  systemctl status  elasticsearch


检验:
7 检验.png
启动很慢 需要等等
[root@m01 ~]# netstat  -lntp |grep 9200
tcp6       0      0 10.0.0.61:9200          ::😗                    LISTEN      5513/java            

[root@linux-elk2 ~]# mkdir -p /elk/{data,logs}
[root@linux-elk2 ~]# chown elasticsearch.elasticsearch /elk/ -R #自定义日志路径,需要授权



通过浏览器访问`elasticsearch`端口
![7-1 curl.png](https://cdn.nlark.com/yuque/0/2020/png/1581532/1599547529887-9e46639c-113d-4d2a-ab90-f2eac05ca5b5.png#align=left&display=inline&height=292&margin=%5Bobject%20Object%5D&name=7-1%20curl.png&originHeight=292&originWidth=611&size=536506&status=done&style=none&width=611) > 查看日志 > [root@localhost ~] tailf /var/log/elasticsearch/wg001.log #查看日志状态

3. 安装logstash

在主机B上安装jdk和logstash
配置源:
[root@m01 ~]#  scp  -rp  /etc/yum.repos.d/elk-6.repo   10.0.0.7:/etc/yum.repos.d/

3.1 安装logstash

yum -y install logstash

3.2 编写配置messages.conf文件

vim /etc/logstash/conf.d/messages.conf

input { #定义进入模块
        file {
                path => "/var/log/messages" #日志路径
                type => "msg-log" #日志类型
                start_position => "beginning" #生成过程
        }
}
output { #
        elasticsearch {

                hosts => "10.0.0.61:9200" # 端口
                index => "msg_log-%{+YYYY.MM.dd}" # 索引
        }
}

3.3 启动

systemctl start logstash
systemctl enablelogstash
netstat -nuptl|grep 9600
#日志
tailf /var/log/logstash/logstash-plain.log

A主机验证:
tailf /var/log/elasticsearch/wg001.log
一般会出现这个报错
[2020-03-30T15:49:40,715][WARN ][filewatch.tailmode.handlers.createinitial] failed to open /var/log/messages: #<Errno::EACCES: Permission denied - /var/log/messages>, ["org/jruby/RubyFile.java:366:in `initialize'", "org/jruby/RubyIO.java:1154:in `open'", "/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-input-file-4.1.9/lib/filewatch/watched_file.rb:198:in `open'"]
缺少权限,添加此命令  chmod  o+rwx /var/log/messages 之后重启logstash就会解决

4. 安装Kibana

4.1 安装:

在主机A上安装kibana,修改配置文件
yum install kibana

4.2配置

[root@m01 ~]# vim /etc/kibana/kibana.yml
[root@m01 ~]# grep ^[a-Z] /etc/kibana/kibana.yml
server.port: 5601
server.host: "10.0.0.61"
elasticsearch.hosts: ["http://10.0.0.61:9200"]

input:从源头消费数据
output: 将数据写入到对应的目标
filter[可选]: 过滤和处理数据

 vim /etc/kibana/kibana.yml
grep ^[a-Z] /etc/kibana/kibana.yml  
server.port: 5601
server.host: "0.0.0.0"

4.3启动

systemctl start kibana
[root@m01 ~]# netstat -nuptl|grep 5601
tcp        0      0 10.0.0.61:5601          0.0.0.0:*               LISTEN      6577/node  











#5. 编写多个logstash

5.1 修改管道的配置,定义多个管道,区分日志的路径和目录

vim /etc/logstash/pipelines.yml (也可以/etc/logstash/conf.d/.*conf)

  • pipeline.id: msg
    path.config: "/etc/logstash/conf.d/messages.conf"
  • pipeline.id: sec
    path.config: "/etc/logstash/conf.d/secure.conf"


5.2在主机B上,编写logstash多个配置文件

vim /etc/logstash/conf.d/secure.conf

input {
        file {
                path => "/var/log/secure"
                type => "sec-log"
                start_position => "beginning"
        }
}
output {
        elasticsearch {

                hosts => "10.0.0.61:9200"
                index => "sec_log-%{+YYYY.MM.dd}"
        }
}


重启logstash,查看logstash
systemctl restart logstash
日志:
tailf /var/log/logstash/logstash-plain.log












posted @ 2020-09-09 16:44  HSping  阅读(294)  评论(0编辑  收藏  举报