• Linux基础——ELK Stack


    一、环境部署

    环境需求

    虚拟机最好为4G内存,这样会运行快些

    [root@localhost ~]# hostname -I

    192.168.200.142

    [root@localhost ~]# cat /etc/redhat-release

    CentOS Linux release 7.4.1708 (Core)

    //查看系统版本

    [root@localhost ~]# uname -r

    3.10.0-693.el7.x86_64

    //查看内核线程集

    [root@localhost ~]# systemctl stop firewalld

    关闭防火墙

    [root@localhost ~]# systemctl disable firewalld

    //关闭防火墙开机自启

    [root@localhost ~]# setenforce 0

    setenforce: SELinux is disabled

    //关闭selinux

    安装jdk环境

    [root@localhost ~]# ls

    anaconda-ks.cfg  jdk-8u60-linux-x64.tar.gz

    //上传jdk压缩包

    [root@localhost ~]# tar xf jdk-8u60-linux-x64.tar.gz -C /usr/local

    //解压安装包

    [root@localhost ~]# mv /usr/local/jdk1.8.0_60/ /usr/local/jdk

    //优化解压目录名称

    配置java环境变量

    [root@localhost ~]# vim /etc/profile

    //进入环境变量

    [root@localhost ~]# tail -3 /etc/profile

    export JAVA_HOME=/usr/local/jdk/

    export PATH=$PATH:$JAVA_HOME/bin

    export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

    //添加以上内容

    [root@localhost ~]# source /etc/profile

    //应用环境变量

    [root@localhost ~]# java -version

    java version "1.8.0_60"

    Java(TM) SE Runtime Environment (build 1.8.0_60-b27)

    Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

    //查看java版本

    二、kibana的安装和启动

    编译部署kibana

    [root@localhost ~]# ls

    anaconda-ks.cfg            kibana-6.2.3-linux-x86_64.tar.gz

    jdk-8u60-linux-x64.tar.gz  redis-4.0.11.tar.gz

    //上传kibana压缩包

    [root@localhost ~]# useradd -s /sbin/nologin -M elk

    //创建程序用户

    [root@localhost ~]# tar xf kibana-6.2.3-linux-x86_64.tar.gz -C /usr/local

    //解压kibana数据包

    [root@localhost ~]# mv /usr/local/kibana-6.2.3-linux-x86_64/ /usr/local/kibana

    //优化安装目录

    修改配置文件

    [root@localhost ~]# vim /usr/local/kibana/config/kibana.yml

    //进入kibana配置文件

    更改目录属主属组

    [root@localhost ~]# chown -R elk:elk /usr/local/kibana/

    //修改kibana目录属主和驻足为elk

    新增启动脚本

    [root@localhost ~]# vim /usr/local/kibana/bin/start.sh

    //编写启动脚本

    nohup /usr/local/kibana/bin/kibana >> /tmp/kibana.log 2>> /tmp/kibana.log &

    [root@localhost ~]# chmod a+x /usr/local/kibana/bin/start.sh

    //赋予脚本执行权限和其他权限

    普通用户启动kibana

    [root@localhost ~]# su -s /bin/bash elk '/usr/local/kibana/bin/start.sh'

    //启动kibana

    [root@localhost ~]# ps -ef | grep elk | grep -v grep

    //查看进程启动情况

    查看错误日志

    [root@localhost ~]# cat /tmp/kibana.log | grep warning | head -5

    //查看错误日志

    这里有个警告,意思是连不上elasticsearch,忽略,因为未安装。

    三、使用nginx限制访问kibana

    使用nginx转发

    [root@localhost ~]# vim /usr/local/kibana/config/kibana.yml

    //修改配置文件

    [root@localhost ~]# ps -ef | grep elk

    //查看elk启动进程

    [root@localhost ~]# kill -9 11047

    //通过进程ID杀死进程

    [root@localhost ~]#  su -s /bin/bash elk '/usr/local/kibana/bin/start.sh'

    //启动服务

    借助nginx来访问,控制源IP的访问

    [root@localhost ~]# yum -y install pcre-devel openssl-devel

    //安装依赖包

    [root@localhost ~]# tar xf nginx-1.10.2.tar.gz -C /usr/src

    //解压数据包

    [root@localhost ~]# cd /usr/src/nginx-1.10.2/

    //进入安装目录

    [root@localhost nginx-1.10.2]# useradd -s /sbin/nologin -M nginx

    //创建程序用户

    [root@localhost nginx-1.10.2]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module && make && make install

    //编译安装

    [root@localhost nginx-1.10.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/

    //优化命令路径

    编辑nginx配置文件

    [root@localhost ~]# cd /usr/local/nginx/

    //进入安装目录

    [root@localhost nginx]# cp conf/nginx.conf{,.bak}

    //备份配置文件

    [root@localhost nginx]# egrep -v "#|^$" conf/nginx.conf.bak > conf/nginx.conf

    //优化配置文件

    [root@localhost nginx]# vim conf/nginx.conf

    //进入配置文件进行修改

    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 192.168.200.1;

            deny all;

            proxy_pass http://127.0.0.1:5601;

            }

        }

    }

    [root@localhost nginx]# /usr/local/nginx/sbin/nginx -t

    //检查配置文件是否有误

    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

    [root@localhost nginx]# /usr/local/nginx/sbin/nginx

    //启动nginx

    [root@localhost nginx]# netstat -antup | grep nginx

    tcp        0      0 0.0.0.0:5609            0.0.0.0:*               LISTEN      16305/nginx: master

    //查看启动进程

    访问监听端口号

    四、elasticsearch的安装和启动

    解压

    [root@localhost ~]# ls

    anaconda-ks.cfg             kibana-6.2.3-linux-x86_64.tar.gz

    elasticsearch-6.2.3.tar.gz  nginx-1.10.2.tar.gz

    jdk-8u60-linux-x64.tar.gz   redis-4.0.11.tar.gz

    //上传压缩包

    [root@localhost ~]# tar xf elasticsearch-6.2.3.tar.gz -C /usr/local

    //解压数据包

    [root@localhost ~]# mv /usr/local/elasticsearch-6.2.3/ /usr/local/elasticsearch

    //优化安装目录

    配置

    [root@localhost ~]# vim /usr/local/elasticsearch/config/elasticsearch.yml

    //进入elasticsearch.yml配置文件进行修改

    [root@localhost ~]# mkdir -p /usr/local/elasticsearch/data

    [root@localhost ~]# mkdir -p /usr/local/elasticsearch/logs

    //创建数据和日志存储目录

    更改

    [root@localhost ~]# chown -R elk:elk /usr/local/elasticsearch/

    //更改elasticsearch目录的属主属组

    更改jvm内存配置

    [root@localhost ~]# vim /usr/local/elasticsearch/config/jvm.options

    //编辑elasticsearch的内存配置文件

    编写启动脚本

    [root@localhost ~]# vim /usr/local/elasticsearch/bin/start.sh

    //编写elasticsearch启动脚本,-d后台启动

    /usr/local/elasticsearch/bin/elasticsearch -d >> /tmp/elasticsearch.log 2>>

    /tmp/elasticsearch.log

    [root@localhost ~]# chmod a+x /usr/local/elasticsearch/bin/start.sh

    //给脚本添加其他用户权限和执行权限

    启动脚本

    [root@localhost ~]# su -s /bin/bash elk '/usr/local/elasticsearch/bin/start.sh'

    //执行脚本

    [root@localhost ~]# ps -ef | grep elk | grep -v grep

    //查看脚本执行情况

    观察日志

    [root@localhost ~]# > /tmp/kibana.log

    //先清空日志

    [root@localhost ~]# tail -f /tmp/kibana.log

    //动态更新日志,查看是否有错

    (如果没有显示错误提示,那么一切正常,表示无误)

    访问网页

    重新测试URLhttp://192.168.200.142:5609

    五、logstash的安装和启动

    解压logstash

    [root@localhost ~]# ls

    anaconda-ks.cfg                   logstash-6.2.3.tar.gz

    elasticsearch-6.2.3.tar.gz        nginx-1.10.2.tar.gz

    jdk-8u60-linux-x64.tar.gz         redis-4.0.11.tar.gz

    kibana-6.2.3-linux-x86_64.tar.gz

    //上传logstash压缩包

    [root@localhost ~]# tar xf logstash-6.2.3.tar.gz -C /usr/local

    //解压logstash压缩包

    [root@localhost ~]# mv /usr/local/logstash-6.2.3/ /usr/local/logstash

    //优化安装目录

    修改配置文件

    [root@localhost ~]# vim /usr/local/logstash/config/jvm.options

    //加入内存限制

    [root@localhost ~]# vim /usr/local/logstash/config/logstash.conf

    //修改配置文件

    input {

      file {

        path => "/usr/local/nginx/logs/kibana_access.log"   #读取日志路径

      }

    }

    output {

      elasticsearch {

        hosts => ["http://127.0.0.1:9200"]      #保存日志url

      }

    }

    编写启动脚本

    [root@localhost ~]# vim /usr/local/logstash/bin/start.sh

    //编写启动脚本

    nohup /usr/local/logstash/bin/logstash -f

     /usr/local/logstash/config/logstash.conf >> /tmp/logstash.log 2>> /tmp/logstash.log &

    [root@localhost ~]# chmod a+x /usr/local/logstash/bin/start.sh

    //给脚本添加权限

    启动logstash

    [root@localhost ~]# /usr/local/logstash/bin/start.sh

    //启动脚本

    [root@localhost ~]# ps -ef | grep logstash

    //查看启动进程

    通过浏览器访问

    通过URL访问:http://192.168.200.142:5609

    六、logstash使用详解

    常用命令:

    -f:通过这个命令可以指定Logstash的配置文件,根据配置文件配置logstash

    -e:后面跟字符串,该字符串可以被当作logstash的配置(如果是“”则默认使用stdin作为输入,stdout作为输出)

    -l:日志输出的地址(默认就是stdout直接在控制台输出)

    -t:测试配置文件是否正确,然后退出

    工作原理

    Logstash使用管道方式进行日志的搜集处理和输出,有些类似于管道命令xxx|ccc|dddxxx执行完了会执行ccc,然后执行ddd

  • 相关阅读:
    voc(xml)标签查询种类并打印
    【论文精读4】MVSNet系列论文详解-CVP-MVSNet
    基于PHP的人才招聘网站设计
    vuex存取数据(超详细)
    Linux-Docker-Elasticsearch安装
    情人节后属于单身狗的浪漫
    PyCharm 安装 cx_Oracle 失败
    ES6及更新版本的新特性
    IntelliJ IDEA 开发Vue项目 ElementUI 未知HTML标记 提示问题的解决
    第十五章,输入输出流代码
  • 原文地址:https://blog.csdn.net/Xiaofa_123/article/details/125377991