MENU

Category: 必知必会 - ELK日志平台专题 »

logstash日志采集

logstash件管理

logstash-plugin

  • 查看已安装插件列表
    /usr/share/logstash/bin/logstash-plugin list
  • 在线安装插件
    /usr/share/logstash/bin/logstash-plugin install logstash-filter-multiline
  • 升级插件
    /usr/share/logstash/bin/logstash-plugin update logstash-filter-multiline
  • 卸载
    /usr/share/logstash/bin/logstash-plugin uninstall logstash-filter-multiline

Read More

Elasticsearch6.4 +logstash6.4 +filebeat6.4+redis部署

通过filebeat采集日志到 redis;通过logstash抽取redis日志到es

环境要求

主机 es-1:  kinbana-1 ,head-1,elasticsearch-1
主机 es-2:  elasticsearch-2
主机 es-3:elasticsearch-3,logstash-3
主机 redis-1:redis-server-1

客户端: filebeat

Read More

ELK日志平台部署( Elasticsearch6.4 +logstash +filebeat + redis)

通过filebeat采集日志到 redis;通过logstash抽取redis日志到es

环境要求

主机 es-1:  kinbana-1 ,head-1,elasticsearch-1
主机 es-2:  elasticsearch-2
主机 es-3:elasticsearch-3,logstash-3
主机 redis-1:redis-server-1

客户端: filebeat

部署配置

官方yum包部署:
https://www.elastic.co/downloads

安装java

salt  "*es*" state.sls  saltenv='prod'  jdk.jdk8

elasticsearch (2个master3个data)

salt "*es*" state.sls  saltenv='prod'  elk.elasticsearch.install

/etc/elasticsearch/elasticsearch.yml

node.name: es-1  #本机名称,集群内不可重复
cluster.name: es-cluster #定义集群名称
...
node.master: true #定义是否参与master选举
node.data: true  #定义是否为 data node
systemctl enable  elasticsearch && systemctl start  elasticsearch
# 启动服务
curl -XGET 'http://127.0.0.1:9200/_cat/nodes'
# 查看状态;* es-1 已经推选master

安装redis 收集日志

yum install reids

filebeat采集日志

salt "*web*" state.sls  saltenv='prod'  elk.filebeat.install

logstash 将数据从broker里面抽到es集群

salt "*es*" state.sls  saltenv='prod'  elk.logstash.install

logstash调试

nginx-indexer.conf

output {
  stdout { codec => rubydebug }    #先输出测试一下看看格式
}

调试配置

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/nginx-indexer.conf  -t |grep -i error

/etc/kibana/kibana.yml

tilemap.url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}'
#中文地图

kibana安装

kibana 默认没有登录设置,可yum装httpd-tools设置Apache密码认证

salt "*es*" state.sls  saltenv='prod'  elk.kibana.install

head插件查看集群分片

vi Gruntfile.js

 server: {
                                options: {
                                        hostname:'172.16.140.XX',
                                        port: 9100,
                                        base: '.',
                                        keepalive: true
                                }

Head插件
安装 nvm -> node
nvm install v8.12
npm install -g express
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm install grunt --save
npm run start

grunt server & #后台运行

web展示界面

创建索引

Management - Index Patterns

PV,UV


走势图

饼图

热点url

IP访问量

IP排行

访问记录

地图

高德中文地图

/usr/share/logstash/bin/logstash-plugin  install logstash-filter-geoip

效果图

老版本

全站大屏


openresty 软waf

日常查询

通过收集的日志关键字搜索;也可以根据右上角时间轴过滤范围

  • Discover 菜单
    搜索IP: http_x_forwarded_for : 122.224.xx.xx
    搜索IP和域名: http_x_forwarded_for : 122.224.xx.xx AND server_name: dev.ops.com
  • 更多查询
server_name :  device*
# 终端设备
geoip.city_name : haikou
# 城市查询

维护管理

状态

curl -XGET 'http://127.0.0.1:9200/_cat/nodes?v'
# 集群详细状态显示
curl -XGET 'http://127.0.0.1:9200/_cluster/health?pretty'
# 集群健康查看

定期删除数据

/opt/es_clean.sh

#!/bin/bash
day3=`date +%Y.%m.%d -d "30 days ago"`
#echo "${day3}"

curl -XDELETE "172.16.1.xx:9200/logstash-nginx-access-${day3}"
curl -XDELETE "172.16.1.xx:9200/packetbeat-6.4.1-${day3}"
curl -XDELETE "172.16.1.xx:9200/tomcat-${day3}"
#清理记录;可 elasticsearch-head查看索引数据