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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值