Linux下如何安装Logstash

 更新时间:2023年06月19日 15:01:36   作者:我高考零分!  
这篇文章主要介绍了Linux下如何安装Logstash问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

一、安装Logstash

1.解压tar包

cd /data/app/elk/elk-6.8.5
tar zxvf logstash-6.8.5.tar.gz

2.配置config目录下的logstash.conf

# 数据输入部分
input {
    # 读取nginx访问日志
    file {
		#path:监听文件的路径,绝对路径
        path => "/data/app/nginx/logs/access.log" #为Nginx的access.log路径
		# 格式:json
        codec => "json"
		#start_position:监听文件的起始位置,beginning:从文件的头开始读取
        start_position => "beginning"
		#type:自定义类型
        type => "nginx-access-log"
    }
    # 读取nginx异常日志
    file {
        path => "/data/app/nginx/logs/error.log" #为Nginx的error.log路径
        # 格式:plain,输入的是字符串,输出把全部内容放到message字段
        codec => "plain"
        start_position => "beginning"
        type => "nginx-error-log"
    }
	#filebeats方式	
	beats {
		port => 5044
        type => "beats_log"
	}
	#自定义端口,一个项目可对应一个自定义tcp端口接收数据
	tcp {
		mode => "server"
		host => "192.168.X.X" #IP地址
		port => 21022
		codec => json
		type => "application-log" #application一般为项目名称
	}
}
# 数据处理部分
filter{
	if[type] == "application-log"{
		mutate {
			rename => {"host" => "hostname"}
		}
	}
}
# 数据输出部分
output {
    # beat监控信息
	if [type] == "beats_log"{
		elasticsearch {
            hosts => ["192.168.X.X:9200"]
			manage_template => false
			index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
            user => "elastic"
            password => "elastic2021"
        }
	}
    # nginx访问日志
    if[type] == "nginx-access-log" {
        elasticsearch {
            hosts => ["192.168.X.X:9200"]
            index => "nginx-access-log-%{+YYYY.MM.dd}" 
			# elasticsearch的用户名、密码
            user => "elastic"
            password => "elastic2021"
        }
    }
    # nginx异常日志
    if[type] == "nginx-error-log"{
        elasticsearch{
            hosts => ["192.168.X.X:9200"]
            index => "nginx-error-log-%{+YYYY.MM.dd}"
            user => "elastic"
            password => "elastic2021"
        }
    }
	# 应用系统日志
	if[type] == "application-log"{
		elasticsearch {
			hosts => ["192.168.X.X:9200"]   
			index => "application-log-%{+YYYY.MM.dd}"
			user => "elastic"
			password => "elastic2021"
		}
	}
}

3.启动命令

cd /data/app/elk/elk-6.8.5/logstash-6.8.5
nohup ./bin/logstash -f config/logstash.conf &

4.查看Logstash是否启动成功

ps -ef | grep logstash

 二、配置应用项目的logback环境

1.在pom.xml中添加Logstash依赖

<!-- logstash 6.2 -->
<dependency>
   <groupId>net.logstash.logback</groupId>
   <artifactId>logstash-logback-encoder</artifactId>
   <version>6.2</version>
</dependency>

2.在resouces目录下添加logback-spring.xml

<?xml version="1.0" encoding="UTF-8" ?>
<configuration debug="false">
	<!-- 为logstash输出的JSON格式的Appender -->
	<appender name="logstash_dev"
			  class="net.logstash.logback.appender.LogstashTcpSocketAppender">
		<destination>192.168.X.X:21021</destination>
		<!-- 日志输出编码 -->
		<encoder
				class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
			<providers>
				<timestamp>
					<timeZone>UTC</timeZone>
				</timestamp>
				<pattern>
					<pattern>
						{
						"severity": "%level",
						"service": "${APP_NAME:-}",
						"trace": "%X{X-B3-TraceId:-}",
						"span": "%X{X-B3-SpanId:-}",
						"parent": "%X{X-B3-ParentSpanId:-}",
						"exportable": "%X{X-Span-Export:-}",
						"pid": "${PID:-}",
						"thread": "%thread",
						"class": "%logger",
						"rest": "%message"
						}
					</pattern>
				</pattern>
			</providers>
		</encoder>
	</appender>
	<!-- 开发环境 -->
    <springProfile name="develop">
        <!--设置根日志级别-->
        <root level="INFO">
            <appender-ref ref="logstash_dev"/>
        </root>
    </springProfile>
</configuration>

三、在kibana界面查看数据

浏览器访问192.168.X.X:5601

1.查看索引管理

2.配置索引模式

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 通过yum升级CentOS/RHEL最小化安装的方法

    通过yum升级CentOS/RHEL最小化安装的方法

    下面小编就为大家带来一篇通过yum升级CentOS/RHEL最小化安装的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Linux文件服务器实战详解(匿名用户)

    Linux文件服务器实战详解(匿名用户)

    这篇文章主要介绍了Linux文件服务器实战(匿名用户),非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • 解决linux系统中运行node进程却无法杀死进程的问题

    解决linux系统中运行node进程却无法杀死进程的问题

    这篇文章主要介绍了linux系统中运行node进程无法杀死进程的问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Ubuntu20.04修改ip地址的方法示例

    Ubuntu20.04修改ip地址的方法示例

    这篇文章主要介绍了Ubuntu20.04修改ip地址的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Linux使用crontab实现定时拆分日志与清理过期文件

    Linux使用crontab实现定时拆分日志与清理过期文件

    crontab是一个用于管理定时任务的工具,可以让在特定的时间间隔内自动运行脚本或命令,本文将使用crontab实现定时拆分日志与清理过期文件,需要的可以参考下
    2024-04-04
  • Linux系统设置开机自动运行脚本的方法实例

    Linux系统设置开机自动运行脚本的方法实例

    这篇文章主要给大家介绍了关于Linux系统设置开机自动运行脚本的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Linux系统具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-06-06
  • Ubuntu 18.04 Server 设置静态IP 的方法

    Ubuntu 18.04 Server 设置静态IP 的方法

    Netplan是Ubuntu 17.10中引入的一种新的命令行网络配置实用程序,用于在Ubuntu系统中轻松管理和配置网络设置。这篇文章主要介绍了Ubuntu 18.04 Server 设置静态IP 的方法,需要的朋友可以参考下
    2018-11-11
  • CentOS7下GitLab跨大版本升级的方法

    CentOS7下GitLab跨大版本升级的方法

    这篇文章主要介绍了CentOS7下GitLab跨大版本升级的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Nginx+PHP+MySQL双机互备、全自动切换方案

    Nginx+PHP+MySQL双机互备、全自动切换方案

    在生产应用中,某台“Nginx+PHP+MySQL”接口数据服务器,扮演的角色十分重要,如果服务器硬件或Nginx、MySQL发生故障,而短时间内无法恢复,后果将非常严重。为了避免单点故障,我设计了此套方案,编写了failover.sh脚本,实现了双机互备、全自动切换,故障转移时间只需几十秒。
    2008-12-12
  • Squid集群做CDN全网加速配置分享

    Squid集群做CDN全网加速配置分享

    主服务器群,然后在利用Squid逆向缓存web80端口来加速自己的网站.各大门户网站象163,sina,chinaitlab之类基本都是使用的这种技术,好处是大大的有.比如加速了网络和可以防黑客(因为他们见到的都是CDN的主机)
    2013-04-04

最新评论