前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch +logstash +filebeat+redis+saltstack部署ELK日志平台

Elasticsearch +logstash +filebeat+redis+saltstack部署ELK日志平台

作者头像
以谁为师
发布2019-05-31 20:39:52
1.2K0
发布2019-05-31 20:39:52
举报

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

Filebeat隶属于Beats。目前Beats包含四种工具:

Packetbeat(搜集网络流量数据) Topbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据) Filebeat(搜集文件数据) Winlogbeat(搜集 Windows 事件日志数据)

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

环境要求

代码语言:javascript
复制
主机 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

代码语言:javascript
复制
salt  "*es*" state.sls  saltenv='prod'  jdk.jdk8

elasticsearch (2个master3个data)

代码语言:javascript
复制
salt "*es*" state.sls  saltenv='prod'  elk.elasticsearch.install

/etc/elasticsearch/elasticsearch.yml

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

安装redis 收集日志

代码语言:javascript
复制
yum install reids

filebeat采集日志

代码语言:javascript
复制
salt "*web*" state.sls  saltenv='prod'  elk.filebeat.install

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

代码语言:javascript
复制
salt "*es*" state.sls  saltenv='prod'  elk.logstash.install

logstash调试

nginx-indexer.conf

代码语言:javascript
复制
output {
  stdout { codec => rubydebug }    #先输出测试一下看看格式
}

调试配置

代码语言:javascript
复制
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/nginx-indexer.conf  -t |grep -i error

/etc/kibana/kibana.yml

代码语言:javascript
复制
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密码认证

代码语言:javascript
复制
salt "*es*" state.sls  saltenv='prod'  elk.kibana.install

head插件查看集群分片

vi Gruntfile.js

代码语言:javascript
复制
 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

代码语言:javascript
复制
grunt server & #后台运行

web展示界面

创建索引

Management - Index Patterns

绘图形

PV,UV

走势图

饼图

热点url

IP访问量

IP排行

访问记录

地图

高德中文地图

代码语言:javascript
复制
/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

  • 更多查询
代码语言:javascript
复制
server_name :  device*
# 终端设备
geoip.city_name : haikou
# 城市查询

维护管理

状态

代码语言:javascript
复制
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

代码语言:javascript
复制
#!/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查看索引数据

salt管理命令

代码语言:javascript
复制
salt -E "web"  service.stop filebeat
# 服务关闭
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年9月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境要求
  • 部署配置
    • 安装java
      • elasticsearch (2个master3个data)
        • 安装redis 收集日志
          • filebeat采集日志
            • logstash 将数据从broker里面抽到es集群
              • logstash调试
                • kibana安装
                • head插件查看集群分片
                • web展示界面
                  • 创建索引
                    • 绘图形
                    • 效果图
                      • 日常查询
                      • 维护管理
                        • salt管理命令
                        相关产品与服务
                        云数据库 Redis
                        腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档