当前位置: 首页 > news >正文

集中管理和分析日志:使用 ELK 套件构建强大的日志管理平台

集中管理和分析日志:使用 ELK 套件构建强大的日志管理平台

日志是监控和调试应用程序和系统的重要工具。集中管理和分析日志可以帮助你快速定位问题、了解系统运行状况和性能,并提高你的日志管理效率。ELK 是一个流行的日志管理解决方案,由 Elasticsearch、Logstash 和 Kibana 组成。Elasticsearch 是一个分布式搜索和分析引擎,Logstash 是一个日志收集和解析工具,而 Kibana 是一个可视化界面,用于查看和分析日志数据。

1. 安装 ELK 套件

ELK 套件的安装过程因操作系统而异。以下是在 Ubuntu 和 CentOS 上安装 ELK 套件的步骤。

1.1 在 Ubuntu 上安装 ELK

首先,添加 Elasticsearch 的 APT 仓库:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list

更新包列表并安装 Elasticsearch:

sudo apt update
sudo apt install elasticsearch

启动 Elasticsearch 服务:

sudo systemctl start elasticsearch.service

安装 Logstash:

sudo apt update
sudo apt install logstash

安装 Kibana:

sudo apt update
sudo apt install kibana

1.2 在 CentOS 上安装 ELK

首先,添加 Elasticsearch 的 YUM 仓库:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo sh -c 'echo "[elasticsearch-7.x]" > /etc/yum.repos.d/elastic.repo'
sudo sh -c 'echo "name=Elasticsearch repository for 7.x packages" >> /etc/yum.repos.d/elastic.repo'
sudo sh -c 'echo "baseurl=https://artifacts.elastic.co/packages/7.x/yum" >> /etc/yum.repos.d/elastic.repo'
sudo sh -c 'echo "gpgcheck=1" >> /etc/yum.repos.d/elastic.repo'
sudo sh -c 'echo "gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch" >> /etc/yum.repos.d/elastic.repo'
sudo sh -c 'echo "enabled=1" >> /etc/yum.repos.d/elastic.repo'
sudo sh -c 'echo "autorefresh=1" >> /etc/yum.repos.d/elastic.repo'
sudo sh -c 'echo "type=rpm-md" >> /etc/yum.repos.d/elastic.repo'

安装 Elasticsearch:

sudo yum install elasticsearch

启动 Elasticsearch 服务:

sudo systemctl start elasticsearch.service

安装 Logstash:

sudo yum install logstash

安装 Kibana:

sudo yum install kibana

2. 配置 ELK 套件

2.1 配置 Elasticsearch

Elasticsearch 的配置文件位于 /etc/elasticsearch/elasticsearch.yml。编辑此文件以配置 Elasticsearch:

cluster.name: my-cluster
node.name: my-nodenetwork.host: 192.168.1.10
http.port: 9200discovery.seed_hosts: ["192.168.1.10"]
cluster.initial_master_nodes: ["my-node"]

重新加载 Elasticsearch 配置:

sudo systemctl reload elasticsearch.service

2.2 配置 Logstash

Logstash 的配置文件位于 /etc/logstash/logstash.yml。编辑此文件以配置 Logstash:

input {file {path => "/var/log/syslog"start_position => "beginning"}
}filter {grok {match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }}date {match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]}
}output {elasticsearch {hosts => ["192.168.1.10:9200"]index => "syslog-%{+YYYY.MM.dd}"}
}

启动 Logstash 服务:

sudo systemctl start logstash.service

2.3 配置 Kibana

Kibana 的配置文件位于 /etc/kibana/kibana.yml。编辑此文件以配置 Kibana:

server.port: 5601
server.host: "192.168.1.10"
elasticsearch.hosts: ["http://192.168.1.10:9200"]

启动 Kibana 服务:

sudo systemctl start kibana.service

3. 使用 Kibana 分析日志

在浏览器中访问 Kibana 的 Web 界面:http://<Kibana主机IP>:5601。你可以使用 Kibana 的可视化工具和搜索功能来查看和分析日志数据。

例如,你可以创建一个可视化来显示来自特定日志文件的消息数量:

  1. 在 Kibana 中,进入 “Visualize” 部分。
  2. 点击 “Create visualization”。
  3. 选择 “Area” 类型。
  4. 在 “Index pattern” 字段中,选择 “syslog-*”。
  5. 在 “Metrics” 部分,添加一个 “Count” 指标。
  6. 在 “Buckets” 部分,添加一个 “Date” 桶,并将其设置为 “Auto”。
  7. 点击 “Save” 保存可视化。

现在,你可以在 Kibana 中查看来自特定日志文件的日志消息数量随时间的变化。

4. 使用 Logstash 收集日志

Logstash 可以从各种来源收集日志数据,例如文件、syslog 和网络套接字。以下是一个示例 Logstash 配置,它将收集来自 /var/log/syslog 的日志数据,并将其发送到 Elasticsearch:

input {file {path => "/var/log/syslog"start_position => "beginning"}
}filter {grok {match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }}date {match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]}
}output {elasticsearch {hosts => ["192.168.1.10:9200"]index => "syslog-%{+YYYY.MM.dd}"}
}

你可以根据需要修改 Logstash 配置,例如添加其他过滤器来解析特定格式的日志数据。

5. 总结

通过安装和配置 ELK 套件,你可以构建一个强大的日志管理平台,用于集中管理和分析日志数据。这将帮助你快速定位问题、了解系统运行状况和性能,并提高你的日志管理效率。

http://www.lryc.cn/news/392745.html

相关文章:

  • 深度学习 - 模型的保存与部署方式汇总
  • 人工智能对网络安全有何影响?
  • Oracle的RECYCLEBIN回收站:轻松恢复误删对象
  • Android 内存原理详解以及优化(二)
  • Shell学习——Shell变量
  • Java中的持续集成与持续部署(CI/CD)
  • 极狐GitLab 将亮相2024空天信息大会暨数字地球生态峰会,携手中科星图赋能空天行业开发者
  • Beats:使用 Filebeat 从 Python 应用程序中提取日志
  • 51单片机第23步_定时器1工作在模式0(13位定时器)
  • linux的服务管理
  • 动手学深度学习(Pytorch版)代码实践 -循环神经网络-53语言模型和数据集
  • Python 学习之自动化运维技术(八)
  • 【python】PyQt5可视化开发,如何设计鼠标显示的形状?
  • 利用大模型知识库,优化智能客服问答效果 | 创新场景
  • 物联网协议都包含哪些协议?
  • 面试专区|【52道微服务架构高频题整理(附答案背诵版)】
  • 数据结构之算法的时间复杂度
  • unity中物体被激活自动执行挂载代码
  • Pandas数据可视化详解:大案例解析(第27天)
  • Redis基础教程(七):redis列表(List)
  • 鸿蒙开发:Universal Keystore Kit(密钥管理服务)【生成密钥(C/C++)】
  • ssm“落雪”动漫网站-计算机毕业设计源码81664
  • 【面试题】Reactor模型
  • RedHat9 | kickstart无人值守批量安装
  • k8s-第五节-StatefulSet
  • ai机器狗
  • 数据库关键字执行顺序
  • Linux 永久挂载磁盘
  • windows启动Docker闪退Docker desktop stopped
  • 探索Redis GEOMETRY数据结构:地理空间索引与查询(基于Redis GEO和Java实现附近商户查找功能)