ELK课程-Day2

image.png

input 我们要采集的日志文件路径, 收割机 harvester 监听文件的变化 -->
splooer程序 --> 转发 es | logstash | kafka | redis


image.png
filebeat.inputs:
  - type: stdin #标准输入
    enabled: true #启用
output.console: #标准输出
  pretty: true
  enable: true
image.png
#将文件最新发生变化的内容,存入ES
[root@web01 ~]# cat /etc/filebeat/file.yml
filebeat.inputs:
  - type: log
  paths: /var/log/nginx/access.log
  enabled: true
output.elasticsearch:
  hosts:
["10.0.0.161:9200","10.0.0.162:9200","10.0.0.163:9200"]

收集系统日志

特别分散--> syslog --> file.txt
1.减少无用的数据
2.调整索引名称
3.测试调整模板,设定分片

[root@web01 ~]# cat /etc/filebeat/filebeat.yml
filebeat.inputs:
  - type: log
  enabled: true
  paths:
    - /var/log/oldxu.log
  include_lines: ['^ERR', '^WARN', 'sshd'] #只看指定的
日志
output.elasticsearch:
  hosts:
["10.0.0.161:9200","10.0.0.162:9200","10.0.0.163:9200"]
index: "system-%{[agent.version]}-%{+yyyy.MM.dd}"
setup.ilm.enabled: false
setup.template.name: system #索引关联的模板名称
setup.template.pattern: system-*
方式一:
###设定system模板的分片数和副本数
#setup.template.settings: #定义索引分片数和副本
# index.number_of_shards: 3
# index.number_of_replicas: 1
方式二:
"number_of_routing_shards": "30",
"number_of_shards": "10",
"number_of_replicas": "1",
1.修改system模板 ---> 添加 shards 分片数数
量,replicas的数量
2.删除模板关联的索引
3.删除filebeat自行指定的分片数和副本数
4.重启filebeat
5.产生新的日志
image.png

收集Nginx

log_format json '{ "time_local": "$time_local", '
'"remote_addr":
"$remote_addr", '
'"referer": "$http_referer",
'
'"request": "$request", '
'"status": $status, '
'"bytes": $body_bytes_sent, '
'"agent": "$http_user_agent",
'
'"x_forwarded":
"$http_x_forwarded_for", '
'"up_addr":
"$upstream_addr",'
'"up_host":
"$upstream_http_host",'
'"upstream_time":
"$upstream_response_time",'
'"request_time":
"$request_time"'
'}';
access_log /var/log/nginx/access.log json;

配置filebeat

[root@web01 filebeat]# cat /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
  json.keys_under_root: true #默认Flase,还会将json解析
的日志存储至messages字段
  json.overwrite_keys: true #覆盖默认的key,使用自定义
json格式的key
output.elasticsearch:
  hosts:
["10.0.0.161:9200","10.0.0.162:9200","10.0.0.163:9200"]
index: "nginx-%{[agent.version]}-%{+yyyy.MM.dd}"

setup.ilm.enabled: false
setup.template.name: nginx #索引关联的模板名称
setup.template.pattern: nginx-*

收集nginx访问日志和错误日志

[root@web01 filebeat]# cat filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
    json.keys_under_root: true #默认Flase,还会将json解析
的日志存储至messages字段
    json.overwrite_keys: true #覆盖默认的key,使用自定义
json格式的key
  tags: ["access"]
- type: log
  enabled: true
  paths:
    - /var/log/nginx/error.log
  tags: ["error"]

output.elasticsearch:
  hosts:
["10.0.0.161:9200","10.0.0.162:9200","10.0.0.163:9200"]
indices:
    - index: "nginx-access-%{[agent.version]}-%
{+yyyy.MM.dd}"
when.contains:
tags: "access"
    - index: "nginx-error-%{[agent.version]}-%
{+yyyy.MM.dd}"
when.contains:
tags: "error"

setup.ilm.enabled: false
setup.template.name: nginx #索引关联的模板名称
setup.template.pattern: nginx-*

收集nginx多个虚拟主机的日志

elk.oldxu.com
bk.oldxu.com
bs.oldxu.com
error日志

111.png

1.虚拟主机

[root@web01 conf.d]# cat elk.oldxu.com.conf
server {
  listen 80;
  server_name elk.oldxu.com;
  root /code/elk;
  access_log /var/log/nginx/elk.oldxu.com.log  json;
  location / {
    index index.html;
}
}
[root@web01 conf.d]# cat bs.oldxu.com.conf
server {
  listen 80;
  server_name bs.oldxu.com;
  root /code/bs;
  access_log /var/log/nginx/bs.oldxu.com.log json;
  location / {
    index index.html;
  }
}
[root@web01 conf.d]# cat bk.oldxu.com.conf
server {
  listen 80;
  server_name bk.oldxu.com;
  root /code/bk;
  access_log /var/log/nginx/bk.oldxu.com.log json;
  location / {
    index index.html;
  }
}

2.测试,模拟产生日志

[root@web01 conf.d]# curl -H Host:elk.oldxu.com
http://10.0.0.7
elk.oldux.com
[root@web01 conf.d]# curl -H Host:bs.oldxu.com
http://10.0.0.7
bs.oldux.com
[root@web01 conf.d]# curl -H Host:bk.oldxu.com
http://10.0.0.7
bk.oldux.com

3.配置filebeat

[root@web01 filebeat]# cat /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/elk.oldxu.com.log
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["nginx-elk-host"]

- type: log
  enabled: true
  paths:
    - /var/log/nginx/bs.oldxu.com.log
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["nginx-bs-host"]

- type: log
  enabled: true
  paths:
    - /var/log/nginx/bk.oldxu.com.log
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["nginx-bk-host"]

- type: log
  enabled: true
  paths:
    - /var/log/nginx/error.log
  tags: ["nginx-error"]

output.elasticsearch:
  hosts:
["10.0.0.161:9200","10.0.0.162:9200","10.0.0.163:9200"]
  indices:
    - index: "nginx-elk-access-%{[agent.version]}-%
{+yyyy.MM.dd}"
      when.contains:
        tags: "nginx-elk-host"
    - index: "nginx-bs-access-%{[agent.version]}-%
{+yyyy.MM.dd}"
        when.contains:
          tags: "nginx-bs-host"
    - index: "nginx-bk-access-%{[agent.version]}-%
{+yyyy.MM.dd}"
      when.contains:
        tags: "nginx-bk-host"

    - index: "nginx-error-%{[agent.version]}-%
{+yyyy.MM.dd}"
      when.contains:
        tags: "nginx-error"

setup.ilm.enabled: false
setup.template.name: nginx #索引关联的模板名称
setup.template.pattern: nginx-*

Tomcat日志

访问日志 ---> json格式

#1.修改tomcat日志格式
[root@web02 soft]# yum install java -y
[root@web02 soft]# vim tomcat/conf/server.xml
<Host name="tomcat.oldxu.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve
className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="tomcat.oldxu.com.log"
suffix=".txt"
pattern="
{&quot;clientip&quot;:&quot;%h&quot;,&quot;ClientUser&q
uot;:&quot;%l&quot;,&quot;authenticated&quot;:&quot;%u&
quot;,&quot;AccessTime&quot;:&quot;%t&quot;,&quot;metho
d&quot;:&quot;%r&quot;,&quot;status&quot;:&quot;%s&quot
;,&quot;SendBytes&quot;:&quot;%b&quot;,&quot;Query?
string&quot;:&quot;%q&quot;,&quot;partner&quot;:&quot;%
{Referer}i&quot;,&quot;AgentVersion&quot;:&quot;%{User-
Agent}i&quot;}" />
</Host>

配置filebeat

[root@web02 filebeat]# cat /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /soft/tomcat/logs/tomcat.oldxu.com.log.*.txt
  json.keys_under_root: true #默认Flase,还会将json解析
的日志存储至messages字段
  json.overwrite_keys: true #覆盖默认的key,使用自定义
json格式的key

output.elasticsearch:
    hosts: ["10.0.0.161:9200","10.0.0.162:9200"]
    index: "tomcat-access-%{[agent.version]}-%
{+yyyy.MM.dd}"

setup.ilm.enabled: false
setup.template.name: tomcat #索引关联的模板名称
setup.template.pattern: tomcat-*

错误日志 <--java

[root@web02 filebeat]# cat filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /soft/tomcat/logs/tomcat.oldxu.com.log.*.txt
  json.keys_under_root: true #默认Flase,还会将json解析
的日志存储至messages字段
  json.overwrite_keys: true #覆盖默认的key,使用自定义
json格式的key
  tags: ["tomcat-access"]

- type: log
  enabled: true
    paths:
      - /soft/tomcat/logs/catalina.out

  multiline.pattern: '^\d{2}' #匹配以2个数字开头的
  multiline.negate: true
  multiline.match: after
  multiline.max_lines: 10000 #默认最大合并行为500,可根
据实际情况调整。
  tags: ["tomcat-error"]

output.elasticsearch:
  hosts: ["10.0.0.161:9200","10.0.0.162:9200"]
  indices:
    - index: "tomcat-access-%{[agent.version]}-%
{+yyyy.MM.dd}"
      when.contains:
        tags: "tomcat-access"

    - index: "tomcat-error-%{[agent.version]}-%
{+yyyy.MM.dd}"
      when.contains:
        tags: "tomcat-error"

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

推荐阅读更多精彩内容