搭建elk

作者: ghjhhyuyuy | 来源:发表于2019-10-15 17:10 被阅读0次

    首先下载对应软件包,下载软件包直接到官网就行。保证服务器有java环境。
    先安装elasticsearch,因为另两个都是基于elasticsearch的。

    修改elasticsearch配置

    进入elasticsearch的目录,打开config/elasticsearch.yml文件。配置path.data和path.log的地址,根据你elasticsearch文件夹的位置来,elasticsearch文件夹下的相对位置是正确的,只用改之前的。
    network.host改成0.0.0.0,这样就可以从外部访问了。同时还需要解开cluster.initial_master_nodes的注释,名字改成服务器名。
    在最后加上
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    允许跨域

    系统参数修改

    修改打开的最大文件数
    vim /etc/security/limits.conf
    加上
    * soft nofile 65536
    * hard nofile 131072
    * soft nproc 4096
    * hard nproc 4096
    vim /etc/security/limits.d下面的conf文件
    第一行*的最后数字改成4096
    vim /etc/sysctl.conf
    加上两行
    vm.max_map_count=655360
    fs.file-max=655360
    第一行是最大虚拟内存,第二行是最大打开文件数

    修改完这个文件后需要执行一下sysctl -p使内容生效。
    而前面的修改需要重启操作系统生效。

    运行elasticsearch

    重启后使用./bin/elasticsearch -d后台运行elasticsearch。

    **注意:elasticsearch默认需要4G内存,如果内存不够,启动的时候记得限制内存启动,还有就是启动时要用普通用户身份启动,不要切换到root,后面启动LogStash和Kibana也一样是普通用户。限定内存启动的命令ES_JAVA_OPTS="-Xms256m -Xmx256m" ./bin/elasticsearch -d
    **

    运行elasticsearch-head插件

    运行好elasticsearch,我们再安装一个elasticsearch-head插件,这个插件是基于node.js的,所以必须先安装node.js环境。为了让下载更快,执行:

    npm install -g cnpm --registry=https://registry.npm.taobao.org
    使用淘宝cnpm代替npm.

    进入解压后的elasticsearch-head文件夹,执行
    cnpm install
    安装依赖。
    依赖安装成功后可以使用
    cnpm start
    启动插件。

    启动logstash

    logstash启动前要配置一下logstash收集数据的方式,然后运行logstash.logstash的配置文件主要配置input和output,如下面命令中的config/test.conf就是我创建的一个配置文件,在logstash启动的时候指定给它。

    nohup ./bin/logstash -f config/test.conf &> run.log &

    test.conf的内容如下:

    input{
    file{
    path => ["/tmp/test_data"]
    codec => json {
    charset => "UTF-8"
    }
    }
    }
    output {
    elasticsearch {
    hosts => "127.0.0.1"
    //类似数据库里的库
    index => "logstash-%{+YYYY.MM.dd}"
    //类似数据库里的表
    document_type => "test"
    }
    }

    test_data文件里的内容是这样的

    {"name": "test","kind": "iphone"}

    启动kibana

    kibana启动的话需要先配置一下elasticsearch地址,默认为本地,所以如果在本地可以不用配置,直接启动。

    nohup ./bin/kibana -H 0.0.0.0 &> run1.log &

    启动之后,就可以去对应的ip下5601端口访问web服务了。
    需要说明的是,如果elasticsearch是部署的单机服务。在kibana里看不到logstash创建的index,你可以到elasticsearch-head里查看一下index是否存在,如果index存在,且状态为黄色,那么多半这个index是空的,这是elasticsearch副本分配问题,我另有一篇文章描述了相关方法https://www.jianshu.com/p/bf2caf7137b1

    相关文章

      网友评论

          本文标题:搭建elk

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