ELK-部署
ELK部署步骤:
1、ELK组件介绍:
Logstash :开源的服务器端数据处理管道,能够同时从多个来源采集数据、转换数据,然后将数据存储到数据库中,基于Java
Elasticsearch:搜索、分析和存储数据,基于Java。
Kibana:提供数据可视化Web界面,可以汇总、分析和搜索重要数据日志,基于nodeJs.
Beats :轻量型采集器的平台,从边缘机器向 Logstash 和 Elasticsearch 发送数据。包含: Packetbeat, Metricbeat, Winlogbeat, Filebeat.
Filebeat: 轻量型日志采集器,用于监控、收集服务器日志文件,其已取代 logstash forwarder,基于go语言开发。
官网:
https://www.elastic.co/cn
Kafka:一种高吞吐量的分布式发布订阅消息系统
2、日志系统架构
2.1、核心组件:
2.2、详细架构
elasticsearch-head:是一个为ES开发的一个页面客户端工具。
cmak:kafka的Web管理工具
zookeeper:分布式应用程序协调服务
zkui:zk的客户端工具
3、安装部署
3.1、Filebeat部署
3.1.1、下载软件包
# 1、下载软件包 mkdir ~/software cd ~/software wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.16.2-linux-x86_64.tar.gz # 解压压缩包,创建软连接 tar -xvf filebeat-7.16.2-linux-x86_64.tar.gz -C ~/ ln -s filebeat-7.16.2-linux-x86_64 filebeat
3.1.2、修改配置文件
# 修改配置文件 vim filebeat.yml
filebeat.inputs: - type: log enabled: true paths: - /home/5grmt/app/opt/logs/busi/send-info.log fields: logsource: 5grmt-aicas-send-prod parsers: - multiline: type: pattern pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} negate: true match: after max_lines: 100 - type: log enabled: true paths: - /home/5grmt/app-task/opt/logs/busi/send-tob-info.log fields: logsource: 5grmt-aicas-send-tob-prod parsers: - multiline: type: pattern pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2} negate: true match: after max_lines: 100 filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: false setup.template.settings: index.number_of_shards: 1 setup.kibana: output.kafka: enabled: true hosts: ["10.180.5.204:9092","10.180.5.205:9092","10.180.5.206:9092"] topic: "%{[fields.logsource]}" processors: - add_host_metadata: when.not.contains.tags: forwarded - add_cloud_metadata: ~ - add_docker_metadata: ~ - add_kubernetes_metadata: ~
3.1.3、启停命令
# 1、启动命令 cd /home/5grmt/filebeat/ nohup ./filebeat -c filebeat.yml & # 2、停止命令 ps –ef | grep filebeat #获得进程ID,如123 kill -15 123 #一般情况勿用kill -9 暴力关闭
3.2、Logstash安装部署
# 配置文件 ]$ cat from_beat.conf |grep -v "^$" #filebeat input { beats { codec => plain{ charset => "UTF-8" } port => 5044 } } filter { grok { #match => ["message", "%{LOGLEVEL:log_level} -\[%{TIMESTAMP_ISO8601:logdate}\]" ] match => ["message", "%{LOGLEVEL:log_level} -\[%{TIMESTAMP_ISO8601:logdate}\] :%{GREEDYDATA:content2}" ] } mutate { remove_field => ["host", "agent", "tags"] #add_field => {"log_level2" => "%{log_level}" } } } output { elasticsearch { codec => plain{ charset => "UTF-8" } hosts => ["http://10.180.5.22:9200", "http://10.180.5.23:9200", "http://10.180.5.213:9200"] manage_template => false index => "%{[fields][log_topics]}--%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } } # 2、启停命令 #启动命令 cd /home/5grmt/logstash-7.xx.xx nohup ./bin/logstash -f config/from_kafka.conf #停止命令 ps –ef | grep logstash #获得进程ID,如123 kill -15 123 #一般情况勿用kill -9 暴力关闭
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2021-05-30 Linux常用命令总结