什么是elk?
e指 elasticsearch,用于存储数据,搜索
l 指 logstash,用于数据处理,input,fifter,output
Logstash 是一个开源数据收集引擎,具有实时流水线功能。 Logstash 可以动态统一来自不同来源的数据,并将数据规范化为您选择的目的地。
收集是通过许多可配置的输入插件完成的,包括原始套接字/数据包通信、文件拖尾和几个消息总线客户端。 一旦输入插件收集了数据,它就可以被任意数量的过滤器处理,这些过滤器修改和注释事件数据。 最后,事件被路由到输出插件,这些插件可以将事件转发到各种外部程序,包括 Elasticsearch、本地文件和几个消息总线实现。
准备工作
- docker 相关知识
- liunx环境,jdk环境
安装方式
使用dokcer run 逐个拉起
安装步骤
1.1 安装es
# 安装esdocker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.3.1--name表示镜像启动后的容器名称-d: 后台运行容器,并返回容器ID;-e: 指定容器内的环境变量-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
1.2 安装kibana
# 启动kibanadocker run --link 20ddcfe0a1ad:elasticsearch --name kibana -p -d 5601:5601 kibana:7.6.2
1.3 安装logstash
# 需要创建三个文件[root@lyp config]# lsjvm.options logstash.conf logstash.yml[root@lyp config]# cat jvm.options-Xmx128m-Xms128m[root@lyp config]# cat logstash.confinput {beats {port => 5044}}output {elasticsearch { hosts => ["127.0.0.1::9200"] }index => "logstash-%{+YYYY.MM.dd}"}stdout { codec => rubydebug }}[root@lyp config]# cat logstash.ymlnode.name: logstash-203# 日志文件目录配置path.logs: /usr/share/logstash/logs# 验证配置文件及存在性config.test_and_exit: false# 配置文件改变时是否自动加载config.reload.automatic: false# 重新加载配置文件间隔config.reload.interval: 60s# debug模式 开启后会打印解析后的配置文件 包括密码等信息 慎用# 需要同时配置日志等级为debugconfig.debug: truelog.level: debug# The bind address for the metrics REST endpoint.http.host: 0.0.0.0# 日志格式 json/plainlog.format: json# 启动logstashdocker run -d --name logstash --log-opt max-size=100m --log-opt max-file=2 -p 5044:5044 --link 20ddcfe0a1ad:es-log -v /data/elk/logstach/config/logstash.yml:/usr/share/logstash/config/logstash.yml -v /data/elk/logstach/config/logstash.conf:/usr/share/logstash/config/logstash.conf -v /data/elk/logstach/config/jvm.options:/usr/share/logstash/config/jvm.options logstash:7.6.2# 报错了,没有足够的大小,如果没有设置JVM 参数就会报错内存不够用[root@lyp config]# docker logs -f --tail=400 b618244d6c73OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Not enough space' (errno=12)# 查看logstash.yml[root@lyp config]# cat logstash.ymlinput {beats {port => 5044}}output {elasticsearch { hosts => ["127.0.0.1::9200"] }stdout { codec => rubydebug }}[root@lyp config]# docker start 49d6d914ecce49d6d914ecce// 报错了 yal 格式不对[root@lyp config]# docker logs -f --tail=200 49d6d914ecce2021/06/15 01:31:30 error: yaml: unmarshal errors:line 1: cannot unmarshal !!str `input {...` into map[string]interface {}2021/06/15 01:41:58 error: yaml: unmarshal errors:line 1: cannot unmarshal !!str `input {...` into map[string]interface {}2021/06/15 01:46:59 error: yaml: unmarshal errors:line 1: cannot unmarshal !!str `input {...` into map[string]interface {}2021/06/15 01:47:36 error: yaml: unmarshal errors:line 1: cannot unmarshal !!str `input {...` into map[string]interface {}2021/06/17 03:29:13 error: yaml: unmarshal errors:line 1: cannot unmarshal !!str `input {...` into map[string]interface {}# 安装结束[root@lyp config]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES5625dbe291e2 logstash:7.6.2 "/usr/local/bin/dock…" 6 minutes ago Up 6 minutes 0.0.0.0:5044->5044/tcp, 9600/tcp logstash00f985052fc7 kibana:7.6.2 "/usr/local/bin/dumb…" 13 days ago Up About an hour 0.0.0.0:5601->5601/tcp kibana20ddcfe0a1ad elasticsearch:7.6.2 "/usr/local/bin/dock…" 11 months ago Up About an hour 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp elasticsearch01
安装小结
# docker 手册docker run #运行--rm #退出删除-it #后台运行-v /etc/logstash/conf.d/logstash.conf:/usr/share/logstash/pipeline/logstash.conf#挂载日志收集配置文件-v /etc/logstash/conf.d/logstash.yml:/usr/share/logstash/config/logstash.yml#挂载logstash配置文件默认主机是elasticsearchdocker.elastic.co/logstash/logstash:6.6.2#使用的镜像
使用docker compones 脚本拉起
安装步骤
结果验证
[root@lyp config]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES00f985052fc7 kibana:7.6.2 "/usr/local/bin/dumb…" 13 days ago Up 10 days 0.0.0.0:5601->5601/tcp kibana20ddcfe0a1ad elasticsearch:7.6.2 "/usr/local/bin/dock…" 11 months ago Up 13 days 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp elasticsearch01
