zoukankan      html  css  js  c++  java
  • Elasticsearch+Kibana+Logstash安装

    安装环境:

    [root@node-1 src]# cat /etc/redhat-release 
    CentOS Linux release 7.5.1804 (Core) 

    安装之前关闭防火墙 firewalld 和 selinux:

    [root@node-1 logs]# systemctl stop firewalld
    [root@node-1 logs]# setenforce 0

    安装流程:

    Kibana->Elasticsearch->Logstash

    一、安装运行所需的Java环境,Elasticsearch、Logstash依赖于java环境,使用官方的二进制包解压安装,先下载java linux 64tar.gz包,java 1.8的下载链接: 

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

    配置JAVA环境:

    [root@node-1 src]# cd /usr/local/src
    [root@node-1 src]# tar xf jdk-8u191-linux-x64.tar.gz 
    [root@node-1 src]# mv jdk1.8.0_191 /usr/local
    
    #用全路径验证java是否安装成功
    /usr/local/jdk1.8.0_191/bin/java -version
    
    #配置java环境变量
    vim /etc/profile加入
    export JAVA_HOME=/usr/local/jdk1.8.0_191/
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
    
    #环境变量生效
    source /etc/profile
    
    #java版本查看
    [root@node-1 ~]# java -version
    java version "1.8.0_191"
    Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

    安装Kibana:

    #kibana下载地址(kibana主要用来展现数据,它本身不存储数据)
    https://artifacts.elastic.co/downloads/kibana/kibana-6.2.3-linux-x86_64.tar.gz
    
    #准备工作,添加elk用户,用elk用户来启动elk
    useradd elk
    usermod -s /sbin/nologin elk    #不让elk用户来登录系统
    #解压安装kibana:
    tar -zxf kibana-6.2.3-linux-x86_64.tar.gz
    mv kibana-6.2.3-linux-x86_64 /usr/local/kibana-6.2.3
    
    #kibana配置文件
    vim /usr/local/kibana-6.2.3/config/kibana.yml修改:
    server.port: 5601
    server.host: "0.0.0.0"(监听在所有网卡,有风险)
    #elasticsearch.url: "http://localhost:9200" (默认是连接elasticsearch的9200端口)
    #elasticsearch.username: "user" (配置连接elasticsearch的用户名和密码)
    #elasticsearch.password: "pass"
    
    #把kibana目录改为elk用户
    chown -R elk:elk /usr/local/kibana-6.2.3/
    
    #新增启动脚本vim /usr/local/kibana-6.2.3/bin/start.sh
    nohup /usr/local/kibana-6.2.3/bin/kibana >>/tmp/kibana.log 2>>/tmp/kibana.log &
    
    chmod a+x /usr/local/kibana-6.2.3/bin/start.sh
    
    #用普通用户启动
    su -s /bin/bash elk '/usr/local/kibana-6.2.3/bin/start.sh'
    
    访问kibana,如有防火墙需要放开tcp 5601端口

     Nginx限制访问kibana:

    默认的kibana是没有任何的权限控制,先把kibana改到监听127.0.0.1,借助nginx来限制访问
    
    1:借助nginx来限制访问,控制源ip的访问
    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        sendfile        on;
        keepalive_timeout  65;
        server {
           listen       5609;
           access_log  /usr/local/nginx/logs/kibana_access.log main;
           error_log /usr/local/nginx/logs/kibana_error.log error;
           location / {
               allow 127.0.0.1;
               deny all;
               proxy_pass http://127.0.0.1:5601;
           }
        }
    }
    
    可以在日志里面找到源ip地址:tail -f /usr/local/nginx/logs/kibana_access.log
    
    2: 如果ip经常变化,就会很麻烦。nginx支持简单的用户名密码认证。
    location / {
                auth_basic "elk auth";
                auth_basic_user_file /usr/local/nginx/conf/htpasswd;
                proxy_pass http://127.0.0.1:5601;
            }
    
    printf "elk:$(openssl passwd -1 elkpass)
    " >/usr/local/nginx/conf/htpasswd
    
    3: nginx源码编译安装脚本
    if [ -d "/usr/local/nginx/" ];then
        echo "nginx is install"
        exit 1
    else
        echo "nginx in not install"
    fi
    
    for softpack in wget tar gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel;do
    soft_result=`rpm -qa $softpack`
    if [ -z "$soft_result" ];then
    echo "${softpack} is not exist,install it"
    yum -y install ${softpack}
    else
    echo "${softpack} is exist"
    fi
    done
    
    cd /usr/local/src
    wget 'http://nginx.org/download/nginx-1.12.2.tar.gz'
    tar -zxvf nginx-1.12.2.tar.gz
    cd nginx-1.12.2
    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream  --with-stream_ssl_module
    make
    make install
    exit 0
    
    ln -sf /usr/local/nginx/sbin/nginx /usr/local/bin/

    elasticsearch安装配置:

    elasticsearch未安装之前,kibana网页上报错,提示找不到elasticsearch。
    
    1: elasticsearch的下载地址(elasticsearch主要用来存储数据,供kibana调取并进行展现)
    https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gz
    
    解压安装:
    cd /usr/local/src/
    tar -zxf elasticsearch-6.2.3.tar.gz
    mv elasticsearch-6.2.3 /usr/local/
    
    2: elasticsearch配置
    vim /usr/local/elasticsearch-6.2.3/config/elasticsearch.yml 修改:
    path.data: /usr/local/elasticsearch-6.2.3/data
    path.logs: /usr/local/elasticsearch-6.2.3/logs
    network.host: 127.0.0.1
    http.port: 9200
    bootstrap.memory_lock: false
    bootstrap.system_call_filter: false
    
    3: 把elasticsearch目录的用户和属主都更新为elk
    chown -R elk:elk /usr/local/elasticsearch-6.2.3/
    
    4: 更改jvm的内存限制(看个人配置)
    vim /usr/local/elasticsearch-6.2.3/config/jvm.options
    -Xms100M
    -Xmx100M
    
    5: 编辑elasticsearch启动脚本,使用-d进行后台启动。elasticsearch
    vim /usr/local/elasticsearch-6.2.3/bin/start.sh
    /usr/local/elasticsearch-6.2.3/bin/elasticsearch -d
    
    chmod a+x /usr/local/elasticsearch-6.2.3/bin/start.sh
    
    6: 启动elasticsearch
    su -s /bin/bash elk '/usr/local/elasticsearch-6.2.3/bin/start.sh'
    观察日志
    观察kibana网页,看下还会不会报elasticsearch的错误
    
    7: elasticsearch如果监听在非127.0.0.1,需要配置内核参数等
    network.host: 0.0.0.0
    
    vim /etc/security/limits.conf(处理max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536])
    * soft nofile 65536
    * hard nofile 65536
    
    vim /etc/security/limits.d/20-nproc.conf(处理max number of threads [3885] for user [elk] is too low, increase to at least [4096])
    *          soft    nproc     10240
    *          hard    nproc     10240
    
    sysctl.conf添加(处理max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144])
    vm.max_map_count = 262144    #需要运行sysctl -p生效

    Logstash安装配置:

    1: logstash的下载地址(用来读取日志,正则分析日志,发送给elasticsearch数据库)
    https://artifacts.elastic.co/downloads/logstash/logstash-6.2.3.tar.gz
    
    解压安装:
    tar -zxf logstash-6.2.3.tar.gz
    mv logstash-6.2.3 /usr/local/
    ll -h /usr/local/logstash-6.2.3
    
    2: 更改logstash jvm配置vim /usr/local/logstash-6.2.3/config/jvm.options 
    -Xms150M
    -Xmx150M
    
    3: logstash配置 vim /usr/local/logstash-6.2.3/config/logstash.conf
    input {
      file {
        path => "/usr/local/nginx/logs/kibana_access.log"
      }
    }
    output {
      elasticsearch {
        hosts => ["http://127.0.0.1:9200"]
      }
    }
    
    4: logstash的启动脚本:
    vim /usr/local/logstash-6.2.3/bin/start.sh
    nohup /usr/local/logstash-6.2.3/bin/logstash -f /usr/local/logstash-6.2.3/config/logstash.conf >>/tmp/logstash.log 2>>/tmp/logstash.log &
    
    chmod a+x  /usr/local/logstash-6.2.3/bin/start.sh
    
    5: 启动logstash
    /usr/local/logstash-6.2.3/bin/start.sh
    
    logstash的启动时间会有点慢,等启动过后查看kibana的界面,会有可以创建索引的地方。
  • 相关阅读:
    CentOS下安装nginx并且升级nginx到最新版
    简单配置nginx使之支持pathinfo
    php设置和获取cookie
    div不能被点击设置
    设置CentOS里的Mysql开启客户端远程连接
    leetcode
    background-image中url找不到路径,背景图像无法显示
    0x3F3F3F3F——ACM中的无穷大常量
    HDU 5114 Collision
    HDU 5113 Black And White
  • 原文地址:https://www.cnblogs.com/pythonal/p/9930454.html
Copyright © 2011-2022 走看看