ElasticStack(搭建游戏日志系统框架)

一.ELK安装


1.官网下载地址

     https://www.elastic.co/downloads/elasticsearch 下载版本 elasticsearch-7.6.0-linux-x86_64.tar.gz

    官方文档 https://www.elastic.co/guide/cn/elasticsearch/guide/

2.tar zxvf elasticsearch-7.6.0-linux-x86_64.tar.gz 

3.配置elk集群

# 创建用户

添加用户: useradd -m 用户名

设置密码: passwd 用户名

删除用户: userdel -r 用户名

查看用户:id  用户名

将用户加入root组:gpasswd -a 用户名 root

将用户移除root组:gpasswd -d 用户名 root

 # 为该用户赋予相关操作权限 chown -R elklog:elklog /data/elk/elasticsearch-7.6.0

# 修改安装目录名称mv elasticsearch-7.6.0 es_cluster_farm_log01

->修改配置elasticsearch.yml

cluster.name:  es_cluster_farm_log

node.name: es_cluster_farm_log01

path.data: /data/elk/data

path.logs: /data/elk/logs

network.host: 0.0.0.0

注意 这里的network.host 必须设置0.0.0.0 否在会报错

http.port: 4200

discovery.seed_hosts: ["47.112.142.98"]

cluster.initial_master_nodes: ["es_cluster_farm_log01", "es_cluster_farm_log02"]

gateway.recover_after_nodes: 1

action.destructive_requires_name: true

http.cors.enabled: true

http.cors.allow-origin: "*"

node-master:true

node.data:true

->grep -v "#" elasticsearch.yml 查询修改结果

->修改配置 jvm.options

 vi jvm.options

-xms128m

-xmx128

注意 这里的连个xms xmx 必须设置一样的大小 否则回报错

-> 启动 elasticsearch 

bin/elasticsearch -d

-> 查看当前els进程 ps aux | grep elasticsearch

-> 查看端口占用 netstat -anp |grep 4200

1.启动报错:

ERROR: [1] bootstrap checks failed

[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决办法:

1、切换到root用户修改配置sysctl.conf

vi /etc/sysctl.conf

添加下面配置:

vm.max_map_count=6553601

并执行命令:

sysctl -p

然后,重新启动elasticsearch,即可启动成功。

2. Elk 数据 @timestamp 时间 时区差 8 小时

解决方案

https://segmentfault.com/a/1190000019911946

-> ELK数据备份设置

参考文档:

https://github.com/guobinhit/cg-blog/blob/master/articles/translation/elasticsearch/modules-snapshots.md

https://www.elastic.co/guide/cn/elasticsearch/guide/current/backing-up-your-cluster.html

多节点配置修改 elasticsearch.yml

path.repo:  /data/elk/backup

ElasticStack(搭建游戏日志系统框架)_第1张图片

PUT _snapshot/backup

{

  "type": "fs",

  "settings": {

      "location": "/data/elk/backup"

  }

}

{

  "acknowledged" : true

}

    

二.elasticsearch-head安装 工具安装

-> 谷歌扩展工具安装  elasticsearch-head 添加到扩展程序

启动时注意开放端口,否则访问不成功。

中文api https://es.xiaoleilu.com/010_Intro/15_API.html

三.filebeat 安装使用

->官网下载地址  

https://www.elastic.co/guide/en/beats/filebeat/7.6/filebeat-installation.html

配置说明 filebeat.xml

#==================== Elasticsearch template setting ==========================

setup.template.settings:

  index.number_of_shards: 1

  #index.codec: best_compression

  #_source.enabled: false

#模板的名称,默认是filebeat,filebeat版本始终附加到给定名称,因此最终名称为filebeat-%{[beat.version]} 

setup.template.name: "filebeat" 

#要应用于默认索引设置的模板模式。默认模式是filebeat-%。filebeat版本始终包含在模式中,因此最终模式是 filebeat-%{[beat.version]}-*。通配符 -* 用于匹配所有每日索引

setup.template.pattern: "filebeat-*"

#描述字段的YAML文件的路径,默认是fields.yml。如果设置了相对路径,则认为它相对于配置路径。

setup.template.fields: "fields.yml"

#一个布尔值,指定是否覆盖现有模板。默认值是false,true是覆盖现有模板

setup.template.overwrite: false

#设置为false以禁用模板加载,如果将此项设置为false,则必须手动加载模板。

setup.template.enabled: true

启动  ./filebeat -e -c filebeat.yml

if "buildActivityItem" in [message]{

grok {

match => {

"message" => "(?(?<=info : )(.*)/?)"

}

  }


        }

logstash 安装

logstash配置文件详解

说明

/logstash/config/logstash.yml:主要用于控制logstash运行时的状态

/logstash/config/startup.options:logstash 运行相关参数

logstash.yml

参数用途默认值

node.name节点名称主机名称

path.data/数据存储路径LOGSTASH_HOME/data/

pipeline.workers输出通道的工作workers数据量(提升输出效率)cpu核数

pipeline.output.workers每个输出插件的工作wokers数量1

pipeline.batch.size每次input数量125

path.config过滤配置文件目录

config.reload.automatic自动重新加载被修改配置falseortrue

config.reload.interval配置文件检查时间

path.logs日志输出路径

http.host绑定主机地址,用户指标收集“127.0.0.1”

http.port绑定端口5000-9700

log.level日志输出级别,如果config.debug开启,这里一定要是debug日志info

log.format日志格式* plain*

path.plugins自定义插件目录


startup.options

参数用途

JAVACMD=/usr/bin/java本地jdk

LS_HOME=/opt/logstashlogstash所在目录

LS_SETTINGS_DIR="${LS_HOME}/config"默认logstash配置文件目录

LS_OPTS="–path.settings ${LS_SETTINGS_DIR}"logstash启动命令参数 指定配置文件目录

LS_JAVA_OPTS=""指定jdk目录

LS_PIDFILE=/var/run/logstash.pidlogstash.pid所在目录

LS_USER=logstashlogstash启动用户

LS_GROUP=logstashlogstash启动组

LS_GC_LOG_FILE=/var/log/logstash/gc.loglogstash jvm gc日志路径

LS_OPEN_FILES=65534logstash最多打开监控文件数量


启动  bin/logstash -f config/logstash.conf 

logstash 日志过滤

https://segmentfault.com/a/1190000018642947

#grok

https://blog.csdn.net/qq_39211866/article/details/84453004

printLootLog

ttp://grokdebug.herokuapp.com/ 

语法链接

https://blog.csdn.net/cai750415222/article/details/86614854

http://www.ttlsa.com/elk/elk-logstash-configuration-syntax/

.*$任意匹配直到结尾

grok正则表达式:(?(.*)(?=>Report)/?) 获取Report之前的字符

grok正则表达式:(?(?<=Report)(.*)/?) 获取Report之后的字符

grok{

        match => {

        #截取之前的字符作为temMsg字段的值

        "message" => "(?(.*)(?=Report)/?)"

        }

}

————————————————

版权声明:本文为CSDN博主「cai750415222」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/cai750415222/article/details/86614854

[2020-03-03 15:10:09.419] [Handler-4] INFO info : ItemChangeLog|2020-03-03 15:10:09|100004|35|11|农场收获(农田)|[4]|100002#82#80

[2020-03-03 15:10:09.419] [Handler-4] INFO  info : ExpChangeLog|2020-03-03 15:10:09|100004|35|29894|1|11|农场收获(农田)|[4]

[2020-03-03 15:08:01.107] [Handler-4] INFO info : ItemChangeLog|2020-03-03 15:08:01|100004|35|12|农场种植||110001#92#93


liunx yum 安装 jdk

参考文档 https://segmentfault.com/a/1190000015389941

yum search java
yum install java-1.8.0-openjdk-devel.x86_64

curl -XGET ‘http://127.0.0.1:9200/_template/logstash

查看java路径 whereis java

打印java路径 echo $JAVA_HOME

全局变量立即生效 source /etc/profile


查看端口占用 lsof -i:5601


Kibana 

中文官方文档 https://www.elastic.co/guide/cn/kibana/current/settings.html

查看未注释配置

grep -Ev '^[#;]|^$' config/kibana.yml

-> kibana Discover 数据展示 时间时区差8小时 

解决方案:setting ->  General -> Timezone for date formatting -> dateFormat:tz  设置对应的时区





参考文档

https://www.infvie.com/ops-notes/elkstack-beats.html

配置管理工具  Puppet,Chef,Ansible 

你可能感兴趣的:(ElasticStack(搭建游戏日志系统框架))