• ELK安装(ubuntu)


    一.安装jdk8

    经过我测试logstash5.x不支持java10和11,所以安装java8

    加入LinuxUprising Java PPA

    sudo add-apt-repository ppa:webupd8team/java

    sudo apt-get update

    安装java8(Long Term Support)

    sudo apt-get install oracle-java8-installer

    查看java是否安装成功

    java -version

    设置java11为默认

    sudo apt-get install oracle-java8-set-default


    二.新建用户

    因为安全问题elasticsearch 不让用root用户直接运行,创建新用户

    adduser elk 输入两次密码

    passwd elk 输入两次密码

    root给elk赋权限,chown -R elk /opt/elasticsearch-5.6.11


    三.安装elastcisearch

    卸载elastcisearch

    sudo systemctl stop elasticsearch

    sudo apt-get --purge autoremove elasticsearch

    rm -rf /var/lib/elasticsearch

    rm -rf /etc/elasticsearch

    安装

    由于目前IK Analysis插件5.x的最高版本为5.6.11,所以elk我们也安装5.6.11

    wget -P /opt/downloads https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.11.tar.gz

    sudo tar zxvf /opt/downloads/elasticsearch-5.6.11.tar.gz -C /opt

    进入配置文件

    sudo vim /opt/elasticsearch-5.6.11/config/elasticsearch.yml

    修改network.host的值

    network.host: 192.168.x.x 自身ip,限制为内网访问

    network.host: 0.0.0.0 也可以不限制ip

    http.port: 9200

    删除lock

    rm -rf /opt/elasticsearch-5.6.11/data/nodes/0/node.lock

    切换到elk用户,守护进程启动es

    su - elk -c "/opt/elasticsearch-5.6.11/bin/elasticsearch -d"

    若启动不成功,日志文件报max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

    sudo sysctl -w vm.max_map_count=262144

    上述方法只是临时修改,若要永久修改

    在/etc/sysctl.conf文件最后添加一行

    vm.max_map_count=262144

    查看是否修改成功

    more /proc/sys/vm/max_map_count

    再启动es即可

    测试es是否正常运行

    curl -X GET http://127.0.0.1:9200

    关闭代码为

    jps|grep Elasticsearch

    显示 xxxx Elasticsearch

    kill -9 xxxx

    netstat -anltp|grep 9200

    显示LISTEN xxxx/java

    kill -9 xxxx


    四、安装Logstash

    卸载deb版本的logstash

    sudo systemctl stop logstash

    dpkg -P logstash或sudo apt-get --purge autoremove logstash

    rm -rf /usr/share/logstash

    rm -rf /var/lib/logstash

    rm -rf /var/log/logstash

    安装

    wget -P /opt/downloads https://artifacts.elastic.co/downloads/logstash/logstash-5.6.11.tar.gz

    sudo tar zxvf /opt/downloads/logstash-5.6.11.tar.gz -C /opt

    错误提示:Unrecognized VM option 'UseParNewGC' 

    解决办法:把/opt/logstash/config/jvm.options配置文件中的-XX:UseParNewGC注释掉

    错误提示:could not create the java virtual machine或找不到主类

    解决办法:把/opt/logstash/bin/logstash.bat中%CLASSPATH%没有加双引号的都加上双引号。

    修改数据文件夹读写权限:

    sudo chmod 777 /opt/logstash-5.6.11/data

    测试是否成功启动

    /opt/logstash-5.6.11/bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

    修改配置

    关闭代码为

    netstat -anltp|grep 9600

    显示LISTEN xxxx/java

    kill -9 xxxx


    五、安装Kibana

    卸载deb版本的kibana

    sudo systemctl stop kibana

    dpkg -P kibana或sudo apt-get --purge autoremove kibana

    rm -rf /var/lib/kibana

    安装

    wget -P /opt/downloads https://artifacts.elastic.co/downloads/kibana/kibana-5.6.11-linux-x86_64.tar.gz

    sudo tar zxvf /opt/downloads/kibana-5.6.11-linux-x86_64.tar.gz -C /opt

    修改配置

    vim /opt/kibana-5.6.11-linux-x86_64/config/kibana.yml

    #配置本机ip

    server.host: "0.0.0.0"

    #配置es集群url

    elasticsearch.url: "http://localhost:9200"

    后台启动kibana

    nohup /opt/kibana-5.6.11-linux-x86_64/bin/kibana &

    然后回车返回到shell

    关闭

    netstat -anltp|grep 5601

    显示LISTEN xxxx/java

    kill -9 xxxx


    六、安装Elasticsearch-head

    cd /opt

    git clone git://github.com/mobz/elasticsearch-head.git

    修改配置

    vim /opt/elasticsearch-head/_site/app.js

    this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";修改为当前es地址,默认es在本机localhost:9200不用修改

    vim /opt/elasticsearch-head/Gruntfile.js

    在原有的connect:server:options节点上加上hostname: '*',

    修改es配置

    sudo vim /opt/elasticsearch-5.6.11/config/elasticsearch.yml

    network.host: 0.0.0.0

    http.cors.enabled: true

    http.cors.allow-origin: "*"

    安装node

    sudo apt-get install nodejs

    安装npm

    sudo apt-get install npm

    安装grunt和grunt-cli

    sudo npm install -g grunt

    sudo npm install -g grunt-cli

    安装模块依赖

    sudo npm install

    后台启动head

    cd /opt/elasticsearch-head

    nohup npm run start &

    回车返回到shell

    客户端浏览器打开x.x.x.x:9100

    若显示未连接修改http://localhost:9200为es服务器ip:port

    关闭

    netstat -anltp|grep 9100

    显示LISTEN xxxx/grunt

    kill -9 xxxx

    七、安装IK Analysis插件

    /opt/elasticsearch-5.6.11/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.11/elasticsearch-analysis-ik-5.6.11.zip

    重启服务

    jps|grep Elasticsearch

    显示 xxxx Elasticsearch

    kill -9 xxxx (xxxx为)

    su - elk -c "/opt/elasticsearch-5.6.11/bin/elasticsearch -d"

    八、建立守护进程(systemd)


    elasticsearch

    vim /lib/systemd/system/elasticsearch.service
    [Unit]
    Description=Elasticsearch
    Documentation=http://www.elastic.co
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    Environment=ES_HOME=/opt/elasticsearch-5.6.11
    Environment=CONF_DIR=/opt/elasticsearch-5.6.11/config
    Environment=DATA_DIR=/opt/elasticsearch-5.6.11/data
    Environment=LOG_DIR=/opt/elasticsearch-5.6.11/logs
    Environment=PID_DIR=/opt/elasticsearch-5.6.11
    #EnvironmentFile=-/etc/default/elasticsearch-5.6.11
    
    WorkingDirectory=/opt/elasticsearch-5.6.11
    
    User=elk
    Group=elk
    
    ExecStartPre=/opt/elasticsearch-5.6.11/bin/elasticsearch-systemd-pre-exec
    
    ExecStart=/opt/elasticsearch-5.6.11/bin/elasticsearch 
    -p ${PID_DIR}/elasticsearch.pid 
    --quiet 
    -Edefault.path.logs=${LOG_DIR} 
    -Edefault.path.data=${DATA_DIR} 
    -Edefault.path.conf=${CONF_DIR}
    
    # StandardOutput is configured to redirect to journalctl since
    # some error messages may be logged in standard output before
    # elasticsearch logging system is initialized. Elasticsearch
    # stores its logs in /opt/elasticsearch-5.6.11/logs and does not use
    # journalctl by default. If you also want to enable journalctl
    # logging, you can simply remove the "quiet" option from ExecStart.
    StandardOutput=journal
    StandardError=inherit
    
    # Specifies the maximum file descriptor number that can be opened by this process
    LimitNOFILE=65536
    
    # Specifies the maximum number of processes
    LimitNPROC=2048
    
    # Specifies the maximum size of virtual memory
    LimitAS=infinity
    
    # Specifies the maximum file size
    LimitFSIZE=infinity
    
    # Disable timeout logic and wait until process is stopped
    TimeoutStopSec=0
    
    # SIGTERM signal is used to stop the Java process
    KillSignal=SIGTERM
    
    # Send the signal only to the JVM rather than its control group
    KillMode=process
    
    # Java process is never killed
    SendSIGKILL=no
    
    # When a JVM receives a SIGTERM signal it exits with code 143
    SuccessExitStatus=143
    
    [Install]
    WantedBy=multi-user.target
    systemctl enable elasticsearch.service
    systemctl daemon-reload

     elasticsearch-head

    vim /lib/systemd/system/elasticsearch-head.service
    [Unit]
    Description=elasticsearch-head
    
    [Service]
    Type=simple
    User=root
    ExecStart=/opt/systemd-sh/elasticsearch-head.sh start
    #ExecReload=/opt/systemd-sh/elasticsearch-head.sh restart
    #ExecStop=/opt/systemd-sh/elasticsearch-head.sh stop
    #ExecReload=/bin/kill -s HUP $MAINPID
    #ExecStop=/bin/kill -s QUIT $MAINPID
    Restart=always
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    vim /opt/systemd-sh/elasticsearch-head.sh
    systemctl daemon-reload
    #!/bin/bash
    function exist_port()
    {
      port=`netstat -lntp | grep $1 | awk '{print $4}' | cut -d : -f 2`
      if [ "$port" = "$1" ];then
        return 1
      else
        return 0
      fi
    }
    
    function kill_by_port()
    {
      port=`netstat -lntp | grep $1 | awk '{print $7}' | cut -d / -f 1`
      if [ "$port" != "" ];then
        sudo kill -9 $port
        echo "kill $port"
      fi
    }
    
    function run()
    {if [ "$1" = "start" ];then  
        start
      elif [ "$1" = "stop" ];then
        stop
      elif [ "$1" = "restart" ];then
        stop
        start
      else
        echo "please input param, start, restart or stop"
      fi
    }
    
    function start()
    {
      exist_port 9100
      if [ $? = 0 ];then
        echo 'start elasticsearch-head'
        cd /opt/elasticsearch-head
        sudo npm run start
      fi
    }
    
    function stop()
    {
      kill_by_port 9100
    }
    
    run $*
    chmod +x /opt/systemd-sh/elasticsearch-head.sh
    systemctl enable elasticsearch-head.service

    logstash

    vim /lib/systemd/system/logstash.service
    [Unit]
    Description=logstash
    
    [Service]
    Type=simple
    User=root
    Group=root
    # Load env vars from /etc/default/ and /etc/sysconfig/ if they exist.
    # Prefixing the path with '-' makes it try to load, but if the file doesn't
    # exist, it continues onward.
    #EnvironmentFile=-/etc/default/logstash
    #EnvironmentFile=-/etc/sysconfig/logstash
    
    Environment=LS_HOME=/opt/logstash-5.6.11
    Environment=LS_SETTINGS_DIR="/opt/logstash-5.6.11/config"
    Environment=LS_OPTS="--path.settings /opt/logstash-5.6.11/config"
    #Environment=LS_JAVA_OPTS=""
    Environment=LS_PIDFILE=/opt/logstash-5.6.11/logstash.pid
    Environment=LS_USER=root
    Environment=LS_GROUP=root
    Environment=LS_GC_LOG_FILE=/opt/logstash-5.6.11/logs/gc.log
    Environment=LS_OPEN_FILES=16384
    Environment=LS_NICE=19
    Environment=SERVICE_NAME="logstash"
    Environment=SERVICE_DESCRIPTION="logstash"
    
    ExecStart=/opt/logstash-5.6.11/bin/logstash -f /opt/logstash-5.6.11/config/logstash.conf
    Restart=always
    WorkingDirectory=/
    Nice=19
    LimitNOFILE=16384
    
    [Install]
    WantedBy=multi-user.target
    vim /opt/logstash-5.6.11/config/logstash.conf

    自行添加conf文件,注这里写用标准输入会超时。

    systemctl enable logstash.service
    systemctl daemon-reload

    kibana

    vim /lib/systemd/system/kibana.service
    [Unit]
    Description=kibana
    
    [Service]
    Type=simple
    User=root
    ExecStart=/opt/kibana-5.6.11-linux-x86_64/bin/kibana "-c /opt/kibana-5.6.11-linux-x86_64/config/kibana.yml"
    Restart=always
    PrivateTmp=true
    WorkingDirectory=/
    
    [Install]
    WantedBy=multi-user.target
    systemctl enable kibana.service
    systemctl daemon-reload
    reboot

    重启后看是否自启成功

  • 相关阅读:
    RedGlove 权限管理系统(1)权限概述
    SPQuery查询语法简要说明
    DataGridView使用技巧大全
    实战asp.net MVC+ADO.NET EntityFramework
    RedGlove 权限管理系统(2)功能模块设计
    C# 如果何从线程中操作控件
    PageHelper 类 和 ValidateHelper 类
    字符串帮助类
    XMLHelper 类
    Android中截取当前屏幕的功能
  • 原文地址:https://www.cnblogs.com/wintersoft/p/9934886.html
Copyright © 2020-2023  润新知