搭建ELK日志分析系统

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 下载ELK地址:https://www.elastic.co/downloads命令:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz解压:tar -zxvf elasticsearch-6.4.3.tar.gz有的需要使用unzip解压,需要使用: yum install unzip 下载安装unzip工具版权声明:本文为CSDN博主「负债程序猿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

下载ELK

地址:https://www.elastic.co/downloads

命令:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz

解压:tar -zxvf elasticsearch-6.4.3.tar.gz

有的需要使用unzip解压,需要使用: yum install unzip 下载安装unzip工具


//

20210129175523144.png

elasticsearch配置启动

安装jdk1.8:yum install tomcat就行,会自动安装好tomcat和jdk1.8

解压后进入config目录:cd elasticsearch-6.4.2/config,vim elasticsearch.yml 修改配置文件,在最下面加入如下几行:


network.host: 0.0.0.0

http.port: 9200

http.cors.enabled: true

http.cors.allow-origin: “*”


注意,root用户是不能直接启动elasticsearch的,需要新建用户,然后切换用户去启动elasticsearch,如下:


创建elsearch用户组及elsearch用户

1、groupadd elsearch

2、useradd elsearch -g elsearch -p elasticsearch

更改elasticsearch-6.4.2文件夹及内部文件的所属用户及组为elsearch:elsearch

1、cd切换到elasticsearch-6.4.2的父路径下

2、chown -R elsearch:elsearch elasticsearch-6.4.2

切换到elsearch用户再启动

1、su elsearch

2、cd elasticsearch-6.4.2/bin

3、sh elasticsearch &


elasticsearch配置启动完毕,可以在浏览器输入url: 服务器外网ip:9200 查看是否成功启动:

20210129175821608.png

kibana配置启动

按照上面的操作,可以先切回root用户了:su root 需要输入root密码


然后cd kibana-6.4.2-linux-x86_64/config/ 进入kibana的配置文件夹,


vim kibana.yml 编辑配置文件,在最后面加上如下配置就行:


server.port: 5601

server.host: “0.0.0.0”

elasticsearch.hosts: “http://localhost:9200”

kibana.index: “.kibana”


cd命令进入bin目录,


sh kibana & 启动kibana


启动完毕,可以浏览器输入url: 服务器外网ip:5601 查看是否成功启动:


/

202101291759347.png

logstash配置启动

现在可以配置logstash了

cd logstash-6.4.2/bin/进入bin目录

新建文件 vim logstash1.conf ,写入内容(监听tomcat的日志):

input {
    file {
        path => "/usr/share/tomcat/logs/*.log"
        start_position => “beginning”
    }
}
filter {
}
output {
    elasticsearch {
    hosts => "localhost:9200"
    }
}

启动logstash:sh logstash -f logstash1.conf &


如果提示–path.data的问题,则需要指定path.data的路径,随便找个路径就行,


我的是这样启动:sh logstash -f logstash1.conf --path.data=/home/elk/logstash-6.4.2/logs &


完了可以看到kibana上面有logstash推送过去的日志了


logstash配置mysql数据同步到elasticsearch:我参考的(https://blog.csdn.net/hatlonely/article/details/79945539)


获取 jdbc mysql 驱动:


wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.46.zip

unzip mysql-connector-java-5.1.46.zip


可以把解压后的mysql-connector-java-5.1.46-bin.jar复制到bin目录,方便启动


在bin目录新建配置文件 vim mysql-logstash.cnf ,写入:

input {
  jdbc {
    jdbc_driver_library => "mysql-connector-java-5.1.46-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://ip:3306/db_name"
    jdbc_user => "jdbc_user"
    jdbc_password => "jdbc_password"
    schedule => "* * * * *"
    statement => "SELECT * FROM table WHERE 时间字段 >= :sql_last_value"
    use_column_value => true
    tracking_column_type => "timestamp"
    tracking_column => "时间字段"
    last_run_metadata_path => "syncpoint_table"
  }
}
output {
  elasticsearch {
    hosts => "localhost:9200"
    index => "索引名称"
    document_id => "%{主键字段}"
  }
}

需要先把logstash停了,在重启

netstat -ntlp 命令查看端口为9600的进程,

然后kill 线程id,我的是 kill 25437

20210129180138634.png

用命令 sh logstash -f mysql-logstash.cnf --path.data=/home/elk/logstash-6.4.2/logs &

启动logstash

完了在kibana可以看到同步过去的数据,我的是这样的:

20210129180211795.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
3月前
|
存储 数据采集 数据处理
【Flume拓扑揭秘】掌握Flume的四大常用结构,构建强大的日志收集系统!
【8月更文挑战第24天】Apache Flume是一个强大的工具,专为大规模日志数据的收集、聚合及传输设计。其核心架构包括源(Source)、通道(Channel)与接收器(Sink)。Flume支持多样化的拓扑结构以适应不同需求,包括单层、扇入(Fan-in)、扇出(Fan-out)及复杂多层拓扑。单层拓扑简单直观,适用于单一数据流场景;扇入结构集中处理多源头数据;扇出结构则实现数据多目的地分发;复杂多层拓扑提供高度灵活性,适合多层次数据处理。通过灵活配置,Flume能够高效构建各种规模的数据收集系统。
55 0
|
7天前
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
23 1
|
14天前
|
监控 网络协议 安全
Linux系统日志管理
Linux系统日志管理
31 3
|
19天前
|
监控 应用服务中间件 网络安全
#637481#基于django和neo4j的日志分析系统
#637481#基于django和neo4j的日志分析系统
31 4
|
25天前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
47 0
|
25天前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
34 0
|
3月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
115 1
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
2月前
|
JSON 缓存 fastjson
一行日志引发的系统异常
本文记录了一行日志引发的系统异常以及作者解决问题的思路。
|
2月前
使用装饰器实现自动化日志系统
使用装饰器实现自动化日志系统
18 0