ELK(Elasticsearch + Logstash + K

2018-09-04  本文已影响0人  魔镜a魔镜

写在前面

首先,最好的学习方式是:看官网!版本更新后,有些接口会跟着改变,因此官网是最好的指导书!

其次,出现问题时,1.看log!  2. 看官网!


我的系统架构

先介绍一下我的系统架构,以便参考。

需求:收集线上服务器的各种log,然后分析并可视化,对某些级别的log进行告警。

痛点:1)线上服务器较多,较分散

   2)log比较庞大

根据我的需求,采用了以下架构。

1) files ---> logstash --> redis

2) redis--> logstash --> elasticsearch --> kibana

首先,要收集的logfile分布在不同的服务器上,通过logstash将不同服务器的logfile收集到redis.

然后,再使用logstash从redis中读取log,到es cluster,从而通过kibana可视化输出。

这样做,可以使得收集log和处理log解耦,以免一边出错带来的影响。

注:我的系统为ubuntu16.04

前提条件

 ELK基于jdk,因此需要先安装jdk.本文使用源码安装。 

 1. 下载jdk 

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 2. 解压 

  tar xzvf jdk-8u144-linux-x64.tar.gz 

 3. 配置环境变量 

  sudo vi /etc/profile 

  在最后加入: 

  export JAVA_HOME=/home/radmin/Software/jdk1.8.0_144 

 export PATH=$JAVA_HOME/bin:$PATH 

 4. 加载环境变量使之生效 

  source /etc/profile 

 5. 检查java安装是否OK 

  java --version

ELK安装及配置

本文仅介绍源码安装

1. 下载源码elasticsearch, logstash, kibana

https://www.elastic.co/downloads

elasticsearch-6.3.1.tar.gz

kibana-6.3.1-linux-x86_64.tar.gz 

logstash-6.3.2.tar.gz

2. 解压包

 tar xzvf elasticsearch-6.3.1.tar.gz

 tar xzvf kibana-6.3.1-linux-x86_64.tar.gz 

 tar xzvf logstash-6.3.2.tar.gz

3. 下载redis并安装配置

sudo apt-get install redis-server

安装完,通过以下命令查看安装是否成功

ps -ef | grep redis

        redis     18628    1  0 18:42 ?        00:00:00 /usr/bin/redis-server 127.0.0.1:6379

修改配置文件,设置密码,并修改IP

sudo vim /etc/redis/redis.conf

        bind <your_IP>

        requirepass <your_password>

重启redis

sudo service redis restart

查看进程:

ps -ef|grep redis

        redis    18628    1  0 18:42 ?        00:00:00 /usr/bin/redis-server <your_ip>:6379

4. 配置ELK

1) Elasticsearch

vi config/elasticsearch.yaml

       cluster.name: <your_cluster>

       node.name: <your_ip>

       path.data: /home/elastic/data

        path.logs: /home/elastic/logs

        network.host: 0.0.0.0

        http.port: 9200

        discovery.zen.ping.unicast.hosts: ["your_host"]

启动elasticsearch

nohup ./elasticsearch -d

2) Kibana

vi config/kibana.yml

server.port: 5601

server.host: "<your_host>"

elasticsearch.url: "http://<your_host>:9200"

启动kibana

nohup ./kibana &

3) Logstash

添加配置文件(关于logstash的配置文件,在后续章节中记录)

nohup bin/logstash -f xxx.conf --config.reload.automatic &

问题:

1) 起elasticsearch时报错:

ERROR: [1] bootstrap checks failed

[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

sudo vi /etc/sysctl.conf

vm.max_map_count=655300

sudo sysctl -p

上一篇下一篇

猜你喜欢

热点阅读