ELK7.x日志系统搭建 1. elk基础搭建

简介: ELK7.x日志系统搭建 1. elk基础搭建

ELK7.x日志系统搭建 1. elk基础搭建

基本介绍

什么是 ELK ? 通俗来讲, ELK 是由 ElasticsearchLogstashKibana 三个开源软件组成的一个组合体,这三个软件当中,每个软件用于完成不同的功能,他们组成了一套完整的日志系统的解决方案。

  • Logstash 对各个服务的日志进行采集、过滤、推送。
  • Elasticsearch 存储 Logstash 传送的结构化数据,提供给 Kibana
  • Kibana 提供用户 UIweb 页面进行,数据展示和分析形成图表等。

环境介绍

暂时是准备了两个节点,版本均为7.6JDK是系统的 openJDK,系统为 ubuntu18.04

机器 安装程序
192.168.179.123 Es Logstash
192.168.179.124 Es Kibana Logstash

Elasticsearch集群配置

下载地址:https://mirrors.huaweicloud.com/elasticsearch/7.6.0/elasticsearch-7.6.0-linux-x86_64.tar.gz

修改配置

  • elasticsearch.yml
cluster.name: elk-application  #ELK的集群名称,名称相同即属于是同一个集群
node.name: node-5 #本机在集群内的节点名称 要在集群中唯一
path.data: /elk/data #数据存放目录
path.logs: /elk/logs #日志保存目录
network.host: 192.168.179.123 #监听的IP地址
http.port: 9200 #服务监听的端口
discovery.seed_hosts: ["192.168.179.124", "192.168.179.123"] # 提供集群中符合主机要求的节点的列表 服务发现种子主机
cluster.initial_master_nodes: ["192.168.179.124", "192.168.179.123"] # 可以成为master节点的机器 初始主节点
#开启 xpack 功能,如果要禁止使用密码,请将以下内容注释,直接启动不需要设置密码
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

各节点修改 config/jvm.options 文件的 -Xms4g-Xmx4g 为服务器的内存一半,我的服务器时 4G 内存,所以这里改成了 2G 。当然,这个值最大不要超过 32G 。因为没有意义,具体查阅文档

  • 创建es账号
useradd elastic
passwd elastic
mkdir -p /elk/{data,logs}
chown elasticsearch.elasticsearch /elk/ -R
chown elastic elasticsearch-7.6.0 -R

生成TLS 和身份验证

bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""

生成 TLS 和身份验证,将会在config下生成elastic-certificates.p12文件,将此文件传到其他节点的config目录,注意文件权限

启动集群,es 集群不启动,下面的添加密码操作执行不了。每个节点执行(我是在root用户下指定适用 elastic 用户启动的,如果是在elastic 用户下执行,请直接启动)

su - elastic -c "/elasticsearch-7.6.0/bin/elasticsearch -d"

创建 Elasticsearch 集群密码,有两种方式,使用第二种。在主节点上执行,我所有的密码都设置成了 123456

第一种: bin/elasticsearch-setup-passwords auto 各用户生成随机密码。

第二种: bin/elasticsearch-setup-passwords interactive 手动定义密码,可以设置如下图所示的用户密码。

bin/elasticsearch-setup-passwords interactive

设置密码后通过浏览器去流量就需要输入账号密码了,但是在修改集群密码的过程中有可能失败,错误如下:

Unexpected response code [503] from calling PUT http://192.168.179.124:19200/_security/user/apm_system/_password?pretty
Cause: Cluster state has not been recovered yet, cannot write to the [null] index
Possible next steps:
* Try running this tool again.
* Try running with the --verbose parameter for additional messages.
* Check the elasticsearch logs for additional error details.
* Use the change password API manually. 
ERROR: Failed to set password for user [apm_system].

解决:集群中的两台服务器需要同时设置,并全部重新启动

Kibana 配置

下载地址:https://mirrors.huaweicloud.com/kibana/7.6.0/kibana-7.6.0-linux-x86_64.tar.gz

  • vim config/kibana.yml
server.port: 5601
server.host: "192.168.179.124"
elasticsearch.hosts: ["192.168.179.124:9200"]
elasticsearch.username: "elastic"
elasticsearch.password: "123456"
  • 启动
sudo nohup ./bin/kibana --allow-root

使用我们的账号密码进行登录


在控制台查看集群状态


Logstash 配置

下载地址:https://mirrors.huaweicloud.com/logstash/7.6.0/logstash-7.6.0.tar.gz

配置kibana监控logstash

我们的 es 是开启了密码验证的,要想将数据推到 es 里面,需要进行配置,密码尽量不使用明文

./bin/logstash-keystore create

上面的命令将创建一个 Created Logstash keystore

我们可以利用如下的命令来创建一些key: ES_HOSTES_PWD

./bin/logstash-keystore add ES_HOST   # http://192.168.179.124:9200/
./bin/logstash-keystore add ES_PWD    # 123456
  • logstash.yml
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: "${ES_PWD}"
xpack.monitoring.elasticsearch.hosts: ["${ES_HOST}"]
mkdir conf.d
vi system-log.conf
######  配置文件  ######
input {
    file {
        path => "/var/log/syslog.1"    #日志路径
        type => "systemlog"            #类型,自定义,在进行多个日志收集存储时可以通过该项进行判断输出
        start_position => "beginning"        #logstash 从什么位置开始读取文件数据,默认是结束位置,也就是说 logstash 进程会以类似 tail -F 的形式运行。如果你是要导入原有
数据,把这个设定改成 "beginning",logstash 进程就从头开始读取,类似 less +F 的形式运行。
        stat_interval => "2"    #logstash 每隔多久检查一次被监听文件状态(是否有更新),默认是 1 秒
    }
}
output {
    elasticsearch {
        hosts => ["192.168.179.124:9200"]        #elasticsearch服务器地址
        user => "elastic"
        password => "${ES_PWD}"
        index => "logstash-%{type}-%{+YYYY.MM.dd}"    #索引名称
    }
}

同时,我们需要添加 hosts , userpassword 的定义。这是因为我们现在我们是需要有用户名及密码才可以连接到 Elasticsearch 。同时我们可以创建自己的用户名及密码。我们可以参考“Elasticsearch:用户安全设置”来创建自己喜欢的账号。在这里,为了方便,我们使用elastic账号。在这里,我们是用${ES_HOST}${ES_PWD}来代表我们的Elasticsearch地址及密码。这样的好处是我们不暴露我们的密码在配置文件中。

./bin/logstash -f conf.d/system-log.conf


启动后会每两秒去收集系统日志到 es ,然后监控里面也能看见 logstash


在kibana中查看收集到的数据

默认的话,我们只能看见 es 的集群和 kibana 的信息,我们为了方便可以把 logstash 也添加进来


测试的话:echo test-logstash >> /var/log/syslog.1,然后间隔一会就能看见命中次数改变了

现在我们完成了基本的数据收集,我们的预期是做一个高效率的日志系统,收集我们应用中的各种日志,方便我们查看和分析,例如:mysqlredisnginx框架日志集群日志系统日志等等,我们现在完成了第一步,算是搭建了一个基础的日志系统,在接下来我们慢慢完善这个系统。现在系统主要是利用 logstash 进行日志收集,但是 logstash 消耗较大,每台安装进行收集的话成本会比较高,我们后面可以引用一些 队列 或其他 收集程序 进行优化。

参考资料

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
WGLOG日志管理系统是怎么收集日志的
WGLOG通过部署Agent客户端采集日志,Agent持续收集指定日志文件并上报Server,Server负责展示与分析。Agent与Server需保持相同版本。官网下载地址:www.wgstart.com
|
6月前
|
Prometheus 监控 Cloud Native
基于docker搭建监控系统&日志收集
Prometheus 是一款由 SoundCloud 开发的开源监控报警系统及时序数据库(TSDB),支持多维数据模型和灵活查询语言,适用于大规模集群监控。它通过 HTTP 拉取数据,支持服务发现、多种图表展示(如 Grafana),并可结合 Loki 实现日志聚合。本文介绍其架构、部署及与 Docker 集成的监控方案。
602 122
基于docker搭建监控系统&日志收集
|
6月前
|
消息中间件 Java Kafka
搭建ELK日志收集,保姆级教程
本文介绍了分布式日志采集的背景及ELK与Kafka的整合应用。传统多服务器环境下,日志查询效率低下,因此需要集中化日志管理。ELK(Elasticsearch、Logstash、Kibana)应运而生,但单独使用ELK在性能上存在瓶颈,故结合Kafka实现高效的日志采集与处理。文章还详细讲解了基于Docker Compose构建ELK+Kafka环境的方法、验证步骤,以及如何在Spring Boot项目中整合ELK+Kafka,并通过Logback配置实现日志的采集与展示。
1145 64
搭建ELK日志收集,保姆级教程
|
9月前
|
监控 API 开发工具
HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
本文深入解析HarmonyOS Next的HiLog日志系统,涵盖日志级别、核心API、隐私保护与高级回调功能,助你从入门到精通掌握这一重要开发工具。
|
6月前
|
Ubuntu
在Ubuntu系统上设置syslog日志轮替与大小限制
请注意,在修改任何系统级别配置之前,请务必备份相应得原始档案并理解每项变更可能带来得影响。
781 2
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
877 90
|
存储 前端开发 数据可视化
Grafana Loki,轻量级日志系统
本文介绍了基于Grafana、Loki和Alloy构建的轻量级日志系统。Loki是一个由Grafana Labs开发的日志聚合系统,具备高可用性和多租户支持,专注于日志而非指标,通过标签索引而非内容索引实现高效存储。Alloy则是用于收集和转发日志至Loki的强大工具。文章详细描述了系统的架构、组件及其工作流程,并提供了快速搭建指南,包括准备步骤、部署命令及验证方法。此外,还展示了如何使用Grafana查看日志,以及一些基本的LogQL查询示例。最后,作者探讨了Loki架构的独特之处,提出了“巨型单体模块化”的概念,即一个应用既可单体部署也可分布式部署,整体协同实现全部功能。
4960 69
Grafana Loki,轻量级日志系统
|
8月前
|
存储
WGLOG日志管理系统可以采集网络设备的日志吗
WGLOG日志审计系统提供开放接口,支持外部获取日志内容后发送至该接口,实现日志的存储与分析。详情请访问:https://www.wgstart.com/wglog/docs9.html
|
存储 消息中间件 缓存
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
基于阿里云SelectDB,MiniMax构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数PB,日均新增日志写入量达数百TB。系统在P95分位查询场景下的响应时间小于3秒,峰值时刻实现了超过10GB/s的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax在优化性能的同时显著降低了建设成本,计算资源用量降低40%,热数据存储用量降低50%,为未来业务的高速发展和技术演进奠定了坚实基础。
547 1
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
|
网络安全
window系统下安装elk
本文介绍了Elasticsearch、Logstash和Kibana(统称ELK栈)8.17.3版本的安装与配置流程。主要内容包括: - **Elasticsearch**:详细描述了从下载到启动服务的步骤,以及`elasticsearch.yml`的关键配置项,并提供了Postman操作示例及常见问题解决方案。 - **Logstash**:涵盖了插件安装、配置文件`logstash.conf`编写及其启动命令。 - **Kibana**:讲解了下载、配置`kibana.yml`和启动过程,确保与Elasticsearch正确连接。