zoukankan      html  css  js  c++  java
  • centos7安装ELK

    参考:

    https://blog.csdn.net/e_wsq/article/details/81303713

    https://blog.csdn.net/zdxxinlang/article/details/84616438

    -------------------------------------------------  

    两台机子:

    192.168.42.128 elasticsearch(E) elasticsearch-head(这个是插件)LogStash(L) kibana(K)

    192.168.42.130 LogStash(L)

    安装 elasticsearch 以下是命令:

    修改源

    # rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

    编辑repo文件

    # vim /etc/yum.repos.d/elasticsearch.repo

    加上如下内容:

    [elasticsearch-5.x]
    name=Elasticsearch repository for 5.x packages
    baseurl=https://artifacts.elastic.co/packages/5.x/yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    autorefresh=1
    type=rpm-md 

    安装 elasticsearch 这一步很慢,我用公司网络才10k/s 而且会一直切换镜像,耐心等候

    # yum install -y elasticsearch  

    安装JAVA环境 使用yum安装 快一点

    1.检查系统是否安装弄过java
    # yum list installed | grep java
    2. 如果有旧版本的java,可以用如下方法卸载java
    # yum -y remove java-1.8.0-openjdk*
    3. 查看java软件包列表
    # yum -y list java*
    4. 下载安装java1.8的所有软件包,中途需要输入y来确认下载。
    # yum install java-1.8.0-openjdk*
    5.安装成功,输入如下命令检查是否安装成功,如果返回正确的版本号则表示安装成功。
    #  java -version

    创建elasticsearch data的存放目录,并修改该目录的属主属组,修改elasticsearch的日志属主属组

    # mkdir -p /data/es-data   (自定义用于存放data数据的目录)
    # chown -R elasticsearch:elasticsearch /data/es-data
    # chown -R elasticsearch:elasticsearch /var/log/elasticsearch/

    修改elasticsearch的配置文件 修改的时候,把井号去掉!把#去掉! 把井号#去掉!!重要的事情说三次

    # vim /etc/elasticsearch/elasticsearch.yml
     
    找到配置文件中的cluster.name,打开该配置并设置集群名称
    cluster.name: demon
     
    找到配置文件中的node.name,打开该配置并设置节点名称
    node.name: elk-1
     
    修改data存放的路径
    path.data: /data/es-data
     
    修改logs日志的路径
    path.logs: /var/log/elasticsearch/
     
    配置内存使用用交换分区
    bootstrap.memory_lock: true
     
    监听的网络地址
    network.host: 0.0.0.0
     
    开启监听的端口
    http.port: 9200
     
    增加新的参数,这样head插件可以访问es (5.x版本,如果没有可以自己手动加)
    http.cors.enabled: true
    http.cors.allow-origin: "*"

    启动服务

    /etc/init.d/elasticsearch start

    如果有报错。请移步:https://blog.csdn.net/e_wsq/article/details/81303713

    如果没有就是长这样子:


    创建开机自启动服务

    # chkconfig elasticsearch on

    注意事项:

    需要修改几个参数,不然启动会报错
     
    vim /etc/security/limits.conf
    在末尾追加以下内容(elk为启动用户,当然也可以指定为*)
    elk soft nofile 65536
    elk hard nofile 65536
    elk soft nproc 2048
    elk hard nproc 2048
    elk soft memlock unlimited
    elk hard memlock unlimited
     
    继续再修改一个参数
    vim /etc/security/limits.d/90-nproc.conf
    将里面的1024改为2048(ES最少要求为2048) 也有可能不是1024,我的是4000多
    *          soft    nproc     2048
     
    另外还需注意一个问题(在日志发现如下内容,这样也会导致启动失败,这一问题困扰了很久)
    [2017-06-14T19:19:01,641][INFO ][o.e.b.BootstrapChecks    ] [elk-1] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
    [2017-06-14T19:19:01,658][ERROR][o.e.b.Bootstrap          ] [elk-1] node validation exception
    [1] bootstrap checks failed
    [1]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
        
    解决:修改配置文件,在配置文件添加一项参数(目前还没明白此参数的作用)
    vim /etc/elasticsearch/elasticsearch.yml 
    bootstrap.system_call_filter: false

     访问9200端口查看是否成功

    先检查9200端口是否起来
    netstat -antp |grep 9200
    tcp        0      0 :::9200                     :::*                        LISTEN      2934/java
     
    浏览器访问测试是否正常(以下为正常)
    # curl http://127.0.0.1:9200/
    {
      "name" : "linux-node1",
      "cluster_name" : "demon",
      "cluster_uuid" : "kM0GMFrsQ8K_cl5Fn7BF-g",
      "version" : {
        "number" : "5.4.0",
        "build_hash" : "780f8c4",
        "build_date" : "2017-04-28T17:43:27.229Z",
        "build_snapshot" : false,
        "lucene_version" : "6.5.0"
      },
      "tagline" : "You Know, for Search"
    }

    利用api查看状态

    # curl -i -XGET 'localhost:9200/_count?pretty' 
        HTTP/1.1 200 OK
        content-type: application/json; charset=UTF-8
        content-length: 95
     
        {
          "count" : 0,
          "_shards" : {
            "total" : 0,
            "successful" : 0,
            "failed" : 0
          }
        }

    安装插件 使用git安装elasticsearch-head

    # yum install -y npm
    # git clone git://github.com/mobz/elasticsearch-head.git
    # cd elasticsearch-head
    # npm install (这一步安装很慢。进度条一直卡在20%过不去,然后我敲了几下回车就报错了,没办法只能重装)
    # npm run start
    检查端口是否起来
    # netstat -antp |grep 9100
    浏览器访问测试是否正常
    http://IP:9100/

    注意事项:

    npm install 地方报错

     其中这一行是报错信息

    解决:

    # npm install phantomjs-prebuilt@2.1.16 --ignore-scripts

     接着启动长这样

    然后页面访问

    http:/IP:9100 (这就是没去掉井号的后果。显示集群健康值:未连接)

    以下才是正确的样子

    关注这3个地方。

    Logstash 安装

    安装Logstash环境:
     
    下载yum源的密钥认证:
    # rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
     
    利用yum安装logstash 有点大,107M
    # yum install -y logstash
     
    查看下logstash的安装目录
    # rpm -ql logstash
     
    创建一个软连接,每次执行命令的时候不用在写安装路劲(默认安装在/usr/share下)
    ln -s /usr/share/logstash/bin/logstash /bin/
     
    执行logstash的命令
    # logstash -e 'input { stdin { } } output { stdout {} }'

     

    如果标准输出还有elasticsearch中都需要保留应该怎么玩,看下面

    # /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["192.168.42.128:9200"] } stdout { codec => rubydebug }}'
     
    运行成功以后输入:
    啦啦啦

     我们不可能每次都是输入这么长的一串命令。所以把命令修改到配置文件当中

    创建配置文件01-logstash.conf
    # vim /etc/logstash/conf.d/elk.conf
     
    文件中添加以下内容
    input { stdin { } }
    output {
      elasticsearch { hosts => ["192.168.1.202:9200"] }
      stdout { codec => rubydebug }
    }
     
    使用配置文件运行logstash (在这一步,要把目录cd到elk.conf的当前目录。我的目录就是在/etc/logstash/conf.d/)
    # logstash -f ./elk.conf

    logstash的数据库类型

    Input插件
        权威指南:https://www.elastic.co/guide/en/logstash/current/input-plugins.html
        
        file插件的使用
        # vim /etc/logstash/conf.d/elk.conf
     
        添加如下配置
        input {
            file {
                path => "/var/log/messages"
                type => "system"
                start_position => "beginning"
                }
        }
        output {    
                 elasticsearch {
                        hosts => ["192.168.1.202:9200"]
                        index => "system-%{+YYYY.MM.dd}"
                    }
        }
     
     
    运行logstash指定elk.conf配置文件,进行过滤匹配
    #logstash -f /etc/logstash/conf.d/elk.conf

    我理解以上都是系统的日志

    然后继续配置安全日志的并且把日志的索引按类型做存放,继续编辑elk.conf文件

    # vim /etc/logstash/conf.d/elk.conf
     
    添加secure日志的路径
    input {
        file {
            path => "/var/log/messages"
            type => "system"
            start_position => "beginning"
        }
     
        file {
            path => "/var/log/secure"
            type => "secure"
            start_position => "beginning"
        }
    }
     
    output {
     
        if [type] == "system" {
     
            elasticsearch {
                hosts => ["192.168.1.202:9200"]
                index => "nagios-system-%{+YYYY.MM.dd}"
            }
        }
     
        if [type] == "secure" {
     
            elasticsearch {
                hosts => ["192.168.1.202:9200"]
                index => "nagios-secure-%{+YYYY.MM.dd}"
            }
        }
    }
     
    运行logstash指定elk.conf配置文件,进行过滤匹配
    # logstash -f ./elk.conf 

    这些设置都没有问题之后,接下来安装下kibana,可以让在前台展示

    安装kibana环境
     
    官方安装手册:https://www.elastic.co/guide/en/kibana/current/install.html
     
    下载kibana的tar.gz的软件包
    # wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-linux-x86_64.tar.gz
     
    解压kibana的tar包
    # tar -xzf kibana-5.4.0-linux-x86_64.tar.gz
     
    进入解压好的kibana
    # mv kibana-5.4.0-linux-x86_64 /usr/local
     
    创建kibana的软连接
    # ln -s /usr/local/kibana-5.4.0-linux-x86_64/ /usr/local/kibana 
     
    编辑kibana的配置文件
    # vim /usr/local/kibana/config/kibana.yml
     
    修改配置文件如下,开启以下的配置
    server.port: 5601
     
    server.host: "0.0.0.0"
     
    elasticsearch.url: "http://192.168.1.202:9200"
     
    kibana.index: ".kibana" 
     
    安装screen,以便于kibana在后台运行(当然也可以不用安装,用其他方式进行后台启动)
    # yum -y install screen
     
    # screen
     
    # /usr/local/kibana/bin/kibana
    netstat -antp |grep 5601
    tcp        0      0 0.0.0.0:5601                0.0.0.0:*                   LISTEN      17007/node 
    打开浏览器并设置对应的index
    http://IP:5601

  • 相关阅读:
    spring boot下载本地静态文件最实用
    非常实用的MySQL中if、ifnull函数以及case/when的使用
    java获取访问地址IP的简单方法
    Oracle数据库视图的创建以及使用
    http-post调用接口简单代码
    orale数据库to_char时间中英文转换
    java线程的简单实用
    java小数保留位数四舍五入
    二项式反演
    学习总结-后缀数组
  • 原文地址:https://www.cnblogs.com/chenrunxuan/p/11341995.html
Copyright © 2011-2022 走看看