elk7.2+filebeat

ELK (Elasticsearch + Logstash + Kibana),是一个开源的日志收集平台,用于收集各种客户端日志文件在同一个平台上面做数据分析。

ELK组件:

  • Elasticsearch:负责日志检索和储存
  • Logstash:负责日志的收集和分析、处理
  • Kibana:负责日志的可视化
  • 这三款软件都是开源软件,通常是配合使用,而且又先后归于Elastic.co公司名下,故被简称为ELK

ELK安装:

一:环境

说明:安装包版本均使用7.2.0,同时客户端使用Firebeat采集日志数据,建议提前下好安装包上传至服务器

如果是压缩包安装需添加elk用户,Elasticsearch用root启动会报错

groupadd  elk
useradd -g elk elk 
passwd elk

安装java8:

yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y

二:安装 Elasticsearch:  这里使用rpm包安装

 

rpm -ivh elasticsearch-7.2.0-x86_64.rpm
rpm -ivh kibana-7.2.0-x86_64.rpm
rpm -ivh logstash-7.2.0.rpm

 rpm 安装后会自东生成system服务

启动  systemctl start elasticearch

启动后默认监听端口

修改配置文件

vim /etc/elasticsearch/elasticsearch.yml

cluster.name: my-application
node.name: es1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: "0.0.0.0"
http.port: 9200
cluster.initial_master_nodes: ["es1"]

验证  curl  127.0.0.1:9200 (备注:单机默认配置无需修改,如需配置network-host等配置,必须设置

cluster.initial_master_nodes: ["es1"],否者启动会报错)

 

rpm安装的安装包配置文件默认均在/etc/相关目录下

三: kibana配置(rpm包上面已经安装,直接修改配置文件)

vim  /etc/kibana/kibana.yml

server.port: 5601
server.host: "0.0.0.0"
server.name: "es1"
elasticsearch.hosts: ["http://127.0.0.1:9200"]
kibana.index: ".kibana"

systemctl start kibana

修改yml文件注意格式,key和vlaue必须有空格

kibana默认监听5601端口

访问http://192.168.18.144:5601

 四:logstash配置

vim /etc/logstash/logstash.yml

path.data: /var/lib/logstash
path.config: "/etc/logtash/conf.d"
path.logs: /var/log/logstash

 这里加入了一个include的目录

同时链接到软件目录下方便后面修改

 ln -s /etc/logstash /usr/share/logstash/config

编辑一个测试文件

vim /usr/share/logstash/config/conf.d/test.conf

input{
  file{
    path => ["/var/log/elasticsearch"]
    type => "elasticsearch-log"
    start_position => "beginning"
  }
}

filter{

}

output{
  elasticsearch{
    hosts => ["127.0.0.1:9200"]
    index => "system-log-%{+YYYY.MM.dd}"
  }
}

关闭system启动方式

system disabled logstash

启动:/usr/share/logstash/bin/logstash -f /usr/share/logstash/config/conf.d/test.conf

启动后就可以在kibana上看到信息了(这种启动方式当你关闭终端,或者ctrl+c时logstash就会退出。建议使用supervisord守护进程,详细会在后续文章放出)

创建之后就可以在仪表盘看到日志信息了

 五:安装filebeat

Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者logstarsh中存放

rpm -ivh filebeat-7.2.0-x86_64.rpm

 更改配置文件(备份原来的配置文件新建一份)

    vim /etc/filebeat/filebeat.yml  (7.2版本   filebeat.prospectors参数废弃)

filebeat.inputs:
- input_type: log
enabeld: true
paths:
- /var/log/elasticsearch/*.log

output.logstash:
hosts: ["127.0.0.1:5044"]

日志输出到logstash,所以对应要修改logstash的启动配置文件,设置logstash监听在5044端口

input{
  beats{
    port => "5044"    
  }
}
 
filter{
 }
 
output{
  elasticsearch{
    hosts => ["127.0.0.1:9200"]
    index => "system-log-%{+YYYY.MM.dd}"
  }
}

  启动 systemctl  start  filebeat

六:nginx反向代理kibana并设置登录验证

Kibana的登录验证插件是收费功能,这里我们使用nginx来反向代理并设置登录验证。
用来安装nginx的服务器IP是192.168.18.154
nginx安装过程不在赘述
需要安装httpd的密码文件工具
yum -y install httpd-tools
htpasswd -c -b /etc/nginx/passwd/kibana.passwd kibana kibana123(注意创建目录)

 编辑nginx配置文件

vim /etc/nginx/conf.d/kibana.conf

server
{
 listen 80;
   server_name kibana.shiji.com;
   access_log /var/log/nginx/kibana/kinaba_access.log main;
   error_log /var/log/nginx/kibana/kinaba_error.log;

   auth_basic "Kibana Auth";
   auth_basic_user_file /etc/nginx/passwd/kibana.passwd;

 location / {
    proxy_pass http://192.168.18.144:5601;
    proxy_redirect off;
   }

}

 最后效果

 

ES查询索引相关操作

查询 curl 'localhost:9200/_cat/indices?v'
删除 curl -XDELETE 'localhost:9200/windows*'

查询安装logstash插件
/usr/share/logstash/bin/logstash-plugin list
/usr/share/logstash/bin/logstash-plugin install logstash-filter-multiline

删除索引
curl '10.16.10.9:9200/_cat/indices?v'
curl -XDELETE '10.16.10.9:9200/order_center_2019'

查询删除模板
curl -XGET 10.16.10.9:9200/_template/template_1
curl -XDELETE 10.16.10.9:9200/_template/order_center_indextpl

原文地址:https://www.cnblogs.com/shiji888/p/11122173.html