测试服务器简单部署elasticsearch和kibana,实现日志平台

工作需要,在测试环境搭建了一下日志平台,记录一下。

服务器:linux centos

工具列表:elasticsearch,kibana,filebeat 

1、下载es,kibana,filebeat 。直接官网下载 https://www.elastic.co/cn/,因为我的jdk是1.8,所以下载的工具都是5.6.0版本 。

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.6.16-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.16.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/kibana-5.6.16-linux-x86_64.tar.gz

正常线上服务器用的最多的应该是ELK,L指的是  Logstash ,因为我都没有配置过。网上查了一些资料,感觉Logstash 搭建好像比较麻烦,所以直接用了官网上的 轻量级日志采集工具:Beats 。 盗用一下官网的图,如下:   Beats里面有很多工具,因为我是直接读取文件,所以用了  Filebeat

 

 

 

2、下载完成后,解压 。es没改配置,默认端口9200 ,为了安全起见,禁止用root 启动。因此新建 用户 elsearch。

创建用户后,需要赋用户权限  chmod -R elsearch:elsearch /kibana-5.6.0  。下面所有操作,都使用 elsearch用户完成

  1)使用 nohup ./elasticsearch-5.6.0/bin/elasticsearch & 命令启动es服务

  2)进入filebeat目录,修改配置 filebeat.yml ,  主要修改 input节点,paths 改为你服务器上的日志文件路径,比如:/mylog/*/*.log  。输出节点out.elasticsearch 不用修改,直接默认"localhost:9200" ,然后可以使用命令运行 ./filebeat-5.6.0/filebeat ,当然如果在后台运行,可以使用nohup命令

filebeat 关键采集配置如下:

- input_type: log
  paths:
    - /liulv_log/eagle/*.log
  multiline.pattern:  '^[[:space:]]+(at|\.{3})\b|^Caused by:'
  multiline.negate: false
  multiline.match: after
  fields:
    appid: eagle
  fields_under_root: true

- input_type: log
  paths:
    - /liulv_log/payment/*.log
  multiline.pattern: '^[[:space:]]+(at|\.{3})\b|^Caused by:'
  multiline.negate: false
  multiline.match: after
  fields:
    appid: payment
  fields_under_root: true

  

  3)修改kibana配置, /kibana-5.6.0/config/kibana.yml ,我只修改了下面两条配置 。这样就可以外网访问了。 然后同样操作,启动kibana :./kibana-5.6.0/bin/kibana 

server.host: "0.0.0.0" 
elasticsearch.url: "http://127.0.0.1:9200"

  

  4)根据外网IP+端口访问kibana,kibana默认端口:5601 。进入页面后,默认会提示创建索引 ,Index Patterns ,我也不懂,直接Index pattern 填了* ,就可以选择一个Time Filter field name 。然后创建。就可以使用Kibana的 discover来查看日志了。

 

3、日志平台可以直接通过域名+端口访问,外网直接访问还是有点危险,我这边用nginx做了一个安全校验

 location / {
                proxy_pass http://127.0.0.1:5601$request_uri;
                auth_basic "登陆验证";
                auth_basic_user_file /etc/nginx/htpasswd;
        }

 使用 httpasswd 命令创建账户密码。 如果没有这个命令,可以先安装:yum install httpd-tools

然后使用命令创建用户和密码:htpasswd -/etc/nginx/htpasswd username 。  然后再访问就需要验证账号密码了。

 

posted @ 2020-05-12 12:05  张利锋  阅读(546)  评论(0编辑  收藏  举报