Elasticsearch学习篇第五章(附):使用ELK实现数据收集

基本信息介绍

三台es集群:

192.168.225.138 es  master  filebeat  head

192.168.225.139 es  logstash

192.168.225.140 es  kibana

备注:安装我之前文件安装es并组装成集群,由于es是安装集群name来实现集群的,只要搭建好就应该很容易组建好集群,这里就不多讲了。

我的组建方法就是先搭建一台,然后将虚拟机copy三份,刚开始也是识别不了,最后清理掉配置中data、logs中的内容之后就可以顺利完成集群了,也分享哈我集群的配置文件,不保证权威,自己瞎摸索的...

elasticsearch.yml

cluster.name: myCluster
node.name: node-1
node.data: true
path.data: /opt/els/els_data
path.logs: /opt/els/els_logs
bootstrap.memory_lock: true
network.host: 192.168.225.138
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
discovery.zen.ping.unicast.hosts: ["192.168.225.138:9300","192.168.225.139:9300"]
discovery.zen.minimum_master_nodes: 2
action.destructive_requires_name: true
# 增加参数,使head插件可以访问es  
http.cors.enabled: true
http.cors.allow-origin: "*"

因为需要子用户启动,涉及到文件使用权限问题,这里列下,因为要频繁设置

# els01 是用户名,后面的els01不是密码
chown -R els01:els01 /usr/local/filebeat
chmod -R 755 /usr/local/filebeat

filebeat配置

1.两个组件构成,分别是inputs(输入)和harvesters(收集器)
2.input负责管理harvesters和寻找所有来源读取
3.input将查找驱动器上与定义的路径匹配的所有文件,并为每个文件启动一个harvester
4.harvester负责打开和关闭文件

filebeat何如保证至少一次数据消费

1.每个事件的传递状态存储在注册表文件中
2.输出被阻止且未确认所有事件的情况下,Filebeat将继续尝试发送事件,直到输出确认已接收到事件为止
3.Filebeat运行时,每个输入的状态信息也保存在内存中
4.对于每个文件,Filebeat存储唯一的标识符
5.Filebeat重新启动时,来自注册表文件的数据用于重建状态,Filebeat在最后一个已知位置继续每个harvester
6.设置shutdown_timeout选项,可以将Filebeat配置为在关机前等待特定时间

filebeat.yml

# 输入位置
filebeat.inputs:
  - type: log
  enabled: true
  paths:
     - /var/logs/*.log
     
# 输出位置    
output.logstash:
  # The Logstash hosts
  hosts: ["192.168.225.139:5044"]
  loadbalance: true

logstash配置

1.inputs(必须的)→ filters(可选的)→ outputs(必须的)
2.inputs生成事件
3.filters对其事件进行过滤和处理
4.outputs输出到输出端或者决定其存储在哪些组件里

inputs和outputs支持编码和解码

如下是目前logstash7.7.0支持的inputs、outputs、filters

inputs:

azure_event_hubs,beats,cloudwatch,couchdb_changes,dead_letter_queue,elasticsearch,exec,file,ganglia,gelf,generator,github,google_cloud_storage,google_pubsub,graphite,heartbeat,http,http_poller,imap,irc,java_generator,java_stdin,jdbc,jms,jmx,kafka,kinesis,log4j,lumberjack,meetup,pipe,puppet_facter,rabbitmq,redis,relp,rss,s3,s3-sns-sqs,salesforce,snmp,snmptrap,sqlite,sqs,stdin,stomp,syslog,tcp,twitter,udp,unix,varnishlog,websocket,wmi,xmpp

outputs:

boundary, circonus, cloudwatch, csv, datadog, datadog_metrics, elastic_app_search, elasticsearch, email, exec, file, ganglia, gelf, google_bigquery, google_cloud_storage, google_pubsub, graphite, graphtastic, http, influxdb, irc, sink, java_stdout, juggernaut, kafka, librato, loggly, lumberjack, metriccatcher, mongodb, nagios, nagios_nsca, opentsdb, pagerduty, pipe, rabbitmq,redis, redmine, riak, riemann, s3, sns, solr_http, sqs, statsd, stdout, stomp, syslog, tcp, timber, udp, webhdfs, websocket, xmpp,zabbix

filters:

aggregate, alter, bytes, cidr, cipher, clone, csv, date, de_dot, dissect, dns, drop, elapsed, elasticsearch, environment, extractnumbers, fingerprint, geoip, grok, http, i18n, java_uuid, jdbc_static, jdbc_streaming, json, json_encode, kv, memcached, metricize, metrics, mutate, prune, range, ruby, sleep, split, syslog_pri, threats_classifier, throttle, tld, translate, truncate, urldecode,useragent, uuid, xml

logstash.conf

input {
  beats {
    port => 5044
  }
}

# 输出到es中
output {
  elasticsearch {
    hosts => ["http://192.168.225.138:9200"]
    # 名字格式
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

启动,带上配置文件

nohup ./bin/logstash -f config/logstash.conf &

展示

  1. 我在192.168.225.138的/var/logs中增加2.log文件,里面的内容乱加的

  2. filebeat扫描/var/logs文件夹里面的文件后将数据发送到logstash中

  3. logstash将数据发送到es中,最后在es中的真的找到内容了

kibana配置

kibana.yml

server.port: 5601
server.host: "0.0.0.0"
server.name: "my-kibana"
elasticsearch.hosts: ["http://192.168.225.138:9200","http://192.168.225.139:9200","http://192.168.225.140:9200"]
elasticsearch.preserveHost: true
kibana.index: ".kibana"
elasticsearch.username: "elastic"
elasticsearch.password: "password"   #或者使用keystore的保存的密码"${ES_PWD}"
i18n.locale: "zh-CN"  # 中文

启动

./bin/kibana
# 访问
http://192.168.225.140:5601/
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269