美文网首页
ELK(Elasticsearch + Logstash + K

ELK(Elasticsearch + Logstash + K

作者: 魔镜a魔镜 | 来源:发表于2018-09-04 11:58 被阅读0次

    写在前面

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

    其次,出现问题时,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

    相关文章

      网友评论

          本文标题:ELK(Elasticsearch + Logstash + K

          本文链接:https://www.haomeiwen.com/subject/zvfiwftx.html