esnginxElasticsearch

centos7搭建ELK6.6.0(上)

2019-04-01  本文已影响123人  萌木盖

什么是ELK?

通俗来讲,ELK是由Elasticsearch、Logstash、Kibana 、filebeat三个开源软件的组成的一个组合体,这三个软件当中,每个软件用于完成不同的功能,ELK 又称为ELK stack,官方域名为stactic.co,ELK stack的主要优点有如下几个:
处理方式灵活: elasticsearch是实时全文索引,具有强大的搜索功能
配置相对简单:elasticsearch全部使用JSON 接口,logstash使用模块配置,kibana的配置文件部分更简单。
检索性能高效:基于优秀的设计,虽然每次查询都是实时,但是也可以达到百亿级数据的查询秒级响应。
集群线性扩展:elasticsearch和logstash都可以灵活线性扩展
前端操作绚丽:kibana的前端设计比较绚丽,而且操作简单

什么是Elasticsearch:

是一个高度可扩展的开源全文搜索和分析引擎,它可实现数据的实时全文搜索搜索、支持分布式可实现高可用、提供API接口,可以处理大规模日志数据,比如Nginx、Tomcat、系统日志等功能。

什么是Logstash

可以通过插件实现日志收集和转发,支持日志过滤,支持普通log、自定义json格式的日志解析。

什么是kibana:

主要是通过接口调用elasticsearch的数据,并进行前端数据可视化的展现。

什么是Beats

Beats在这里是一个轻量级日志采集器,其实Beats家族有6个成员,早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比 Logstash,Beats所占系统的CPU和内存几乎可以忽略不计


image.png

为什么使用 ELK?

ELK组件在海量日志系统的运维中,可用于解决以下主要问题:

ELK组件在大数据运维系统中,主要可解决的问题如下:

一、elasticsearch部署:

\color{red}{不要用root用户启动!!!}

\color{red}{不要用root用户启动!!!}

\color{red}{不要用root用户启动!!!}

去百度如何创建普通用户

1.1:环境初始化:

IP:命令行敲ifconfig自己瞅,瞅完记住

主机名:node-1
系统:CentOS 7
Java:1.8.0_172
elasticsearch:6.6.0

1.2: 获取elasticsearch-6.6.0

https://www.elastic.co/downloads/
下载安装ELK组件

[root@mha-master data]# wget  https://artifacts.elastic.co/downloads/logstash/logstash-6.6.0.tar.gz
[root@mha-master data]# wget  https://artifacts.elastic.co/downloads/kibana/kibana-6.6.0-linux-x86_64.tar.gz
[root@mha-master data]# wget  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz 
[root@mha-master data]# wget  https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.6.0-linux-x86_64.tar.gz

如果没按照我的方法安装,一定要记得你这三个用的版本要一致!

然后看机器上有没有java

java -version

显示为1.8以上就可以了,如果没有的话就按照下面这行去安装

yum install -y java-1.8.0-openjdk-devel java-1.8.0-openjdk

然后开始解压安装然后配置

tar xf elasticsearch-6.6.0.tar.gz
cd elasticsearch-6.6.0/config
vi elasticsearch.yml  # 编辑内容

编辑后看到所有行都被注释掉了内容改为

cluster.name: my-ELK
node.name: node-1
path.data: /data/ELK/elasticsearch/data #当然这个目录可以你自己定
path.logs: /data/ELK/elasticsearch/log #当然这个目录可以你自己定
network.host: 你这台的ip
http.port: 9200
discovery.zen.ping.unicast.hosts: ["你的ip"]  
http.cors.enabled: true     # 开放插件head访问
http.cors.allow-origin: "*"  # 开放插件head访问 

那么现在文件夹都指定了,这两个文件夹还没有呢,所以现在开始建文件夹

mkdir -p /data/ELK/elasticsearch/data
mkdir -p /data/ELK/elasticsearch/log

如果创建失败,说明你这个账户没有动/data目录的权限

sudo chown -R 你的用户名:你的用户组名 /data

然后打开文件夹并启动

cd elasticsearch-6.6.0
./bin/elasticsearch &

可能会出现异常

image.png

一、

sudo vim /etc/security/limits.conf
在最下面一行添加(具体数值看你报错的数,按照他推荐的来):
elastic soft nofile 65536 # 软限制,小于等于下面的数值
elastic hard nofile 65536 # 硬限制
返回后重新登录该账户(不然数量不变化)
ulimit -Hn # 查看数量是否为65536

二、

sudo vim /etc/sysctl.conf
然后添加下面这行
vm.max_map_count=655360
保存退出,然后查看
sysctl -p # 显示的数量为更改后的就没问题了

三、(我的服务器并未报这个异常)

vim /etc/security/limits.conf
elastic         -        memlock         unlimited

四、(我的服务器并未报这个异常)

$ vim /etc/security/limits.d/20-nproc.conf
elastic    -       nproc     4096

最后敲下面这行命令如果显示下面这样的json就算成功了

curl http://192.168.1.58:9200
{
         "name" : "node-1",
         "cluster_name" : "my-ELK",
         "cluster_uuid" : "Frii070FSEKiOSYlE86lOg",
         "version" : {
           "number" : "6.6.0",
           "build_flavor" : "default",
           "build_type" : "tar",
           "build_hash" : "a9861f4",
           "build_date" : "2019-01-24T11:27:09.439740Z",
           "build_snapshot" : false,
           "lucene_version" : "7.6.0",
           "minimum_wire_compatibility_version" : "5.6.0",
           "minimum_index_compatibility_version" : "5.0.0"
         },
         "tagline" : "You Know, for Search"
       }  

安装head插件(安装完就可以在浏览器显示了)

安装git

检查是否已安装

git --version

如果啥也没有则安装:

yum install -y git

安装npm

检查是否已安装

npm -v

如果啥也没有则安装:

yum install -y npm

该有的都有了之后开始安装

git clone https://github.com/mobz/elasticsearch-head.git
cd  elasticsearch-head/
sudo npm install -g grunt-cli
sudo npm install # 这一步我报错了,安装phantomjs错误,但是无大碍。
修改Gruntfile.js:
   connect: {
            server: {
                   options: {
                                    port: 9100,
                                    hostname: "*",  # 新增
                                    base: '.',
                                    keepalive: true
                            }
                    }
            }

    });

修改_site/app.js # 如果不好找这一行,进入vi后非编辑状态下输入/localhost就找到了
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://你的ip:9200";  #  修改为自己的服务

grunt server  #启动命令
image.png

elasticsearch和插件部署完毕!
参考博客

上一篇下一篇

猜你喜欢

热点阅读