Logstash: 启动监控及集中管理
在本篇文章里,我将详细介绍如果启动Logstash的监控及集中管理。
前提条件
安装好Logstash,设置Elasticsearch及Kibana的安全密码。
如何监控Logstash?
我们安装如下的步骤来实现监控Logstash的目的:
Step 1: 在Kibana中启动监控:
然后,我们可以看到如下的画面:
Step 2:配置Logstash
如果我们在没有配置Logstash的情况下直接运行Logstash,我们会发现如下的错误:
liuxg-2:logstash-7.5.0 liuxg$ ./bin/logstash
Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.headius.backport9.modules.Modules (file:/Users/liuxg/elastic5/logstash-7.5.0/logstash-core/lib/jars/jruby-complete-9.2.8.0.jar) to field java.io.FileDescriptor.fd
WARNING: Please consider reporting this to the maintainers of com.headius.backport9.modules.Modules
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Thread.exclusive is deprecated, use Thread::Mutex
Sending Logstash logs to /Users/liuxg/elastic5/logstash-7.5.0/logs which is now configured via log4j2.properties
ERROR: Pipelines YAML file is empty. Location: /Users/liuxg/elastic5/logstash-7.5.0/config/pipelines.yml
usage:
bin/logstash -f CONFIG_PATH [-t] [-r] [] [-w COUNT] [-l LOG]
bin/logstash --modules MODULE_NAME [-M "MODULE_NAME.var.PLUGIN_TYPE.PLUGIN_NAME.VARIABLE_NAME=VALUE"] [-t] [-w COUNT] [-l LOG]
bin/logstash -e CONFIG_STR [-t] [--log.level fatal|error|warn|info|debug|trace] [-w COUNT] [-l LOG]
bin/logstash -i SHELL [--log.level fatal|error|warn|info|debug|trace]
bin/logstash -V [--log.level fatal|error|warn|info|debug|trace]
bin/logstash --help
[2019-12-30T15:32:49,899][ERROR][org.logstash.Logstash ] java.lang.IllegalStateException: Logstash stopped processing because of an error: (SystemExit) exit
首先在Logstash的安装目录中找到logstash的配置文件logstash.yml:
我们可以在Logstash的根目录下运行一下的命令:
./bin/logstash-keystore create
上面的命令将创建一个Created Logstash keystore:
我们可以利用如下的命令来创建一些key: ES_HOST及ES_PWD。
./bin/logstash-keystore add ES_HOST
当我们运行时,可以把我们的Elasticsearch的host地址粘贴过来:
比如针对我们的情况,我们粘贴的地址是http://localhost:9200/。按照同样的方法,我们可以创建另外一个ES_PWD key:
./bin/logstash-keystore add ES_PWD
这些key可以在logstash的配置文件中所使用。这样我们可以不暴露我们的密码给别人看到。
我们打开logstash.yml文件,并同时使用如下的配置:
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: "${ES_PWD}"
xpack.monitoring.elasticsearch.hosts: ["${ES_HOST}"]
这里,我们打开monitoring的开关,并同时使用我们在创建安全账户已经创建好的用户名logstash_system:
现在我们下载一个我之前做个的一个练习:
git clone https://github.com/liu-xiao-guo/logstash_multi-pipeline
我们可以下载到我们指定的目录里。但是记得修改在apache.conf中的path路径,否则我们会错的。
apache.conf
input {
file {
path => "/Users/liuxg/data/multi-pipeline/apache.log"
start_position => "beginning"
sincedb_path => "/dev/null"
# ignore_older => 100000
type => "apache"
}
}
filter {
grok {
match => {
"message" => '%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response:int} (?:-|%{NUMBER:bytes:int}) %{QS:referrer} %{QS:agent}'
}
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => ["${ES_HOST}"]
user => "elastic"
password => "${ES_PWD}"
index => "apache_log"
template => "/Users/liuxg/data/multi-pipeline/apache_template.json"
template_name => "apache_elastic_example"
template_overwrite => true
}
}
同时,我们需要添加hosts, user及password的定义。这是因为我们现在我们是需要有用户名及密码才可以连接到Elasticsearch。这个和之前的练习是不一样的。同时我们可以创建自己的用户名及密码。我们可以参考“Elasticsearch:用户安全设置”来创建自己喜欢的账号。在这里,为了方便,我们使用elastic账号。在这里,我们是用${ES_HOST}
及${ES_PWD}
来代表我们的Elasticsearch地址及密码。这样的好处是我们不暴露我们的密码在配置文件中。
一旦上面的配置已经做好了,我们可以使用如下的命令来把我们的apache log文件上传到Elasticsearch之中:
sudo ./bin/logstash -f ~/data/multi-pipeline/apache.conf
Step3:打开Stack Monitoring UI
我们安装如下的步骤来查看Logstash的monitoring:
我们会发现在Logstash运行的情况下,有一个Logstash的类别出现了。这在之前是没有的。我们点击Nodes 1:
我们看到一个Logstash的运行实例。它显示了目前CPU的使用情况和Load Average及JVM head的使用情况。点击上面的超链接:
我们可以看到更加详细的使用情况。我们也可以查看pipeline的状况:
Logstash集中管理
首先我们来创建一个叫做logstash_writer的role:
点击“Create role”来创建我们的role。
首先让我们来创建一个具有logstash_user的用户账号:
点击上面的“Create user”按钮来创建一个用户:
点击“Create user”来创建一个叫做logstash_user的账号。它具有logstash_admin及logstash_system的权限。
为了启动集中管理,我们必须在logstash.yml文件里做相应的配置:
xpack.management.enabled: true
xpack.management.pipeline.id: ["main", "apache_logs", "my_apache_logs"]
xpack.management.elasticsearch.username: "logstash_user"
xpack.management.elasticsearch.password: "123456"
xpack.management.elasticsearch.hosts: ["${ES_HOST}"]
我们可以在链接https://www.elastic.co/guide/en/logstash/current/logstash-centralized-pipeline-management.html
找到更多的描述。在这里,我们启动logstash的管理,同时也把我们刚才创建的logstash_user的账号填入进来,并同时取了一个叫做my_apache_logs的pipeline id。
一旦启动了logstash的集中管理,我们就可以直接启动logstash,而不用跟任何的参数:
sudo ./bin/logstash
这样我们的logstash已经被成功运行起来了。我们接下来可以在Kibana中创建自己的pipeline。
点击上面的“Create pipeline”按钮,我们可以看到如下的画面:
接下来我们点击“Create and Deploy”按钮:
这样我们的my_apache_logs就被创建好了,而且已经被成功执行了。我们可以在Kibana中创建一个叫apache_log的index pattern,然后打开Discover,你可以看到刚刚被Logstash导入的数据:
好了到此,我们关于如何启动Logstash的监控及集中管理讲完了。
示例文件下载地址:https://files.cnblogs.com/files/sanduzxcvbnm/logstash_multi-pipeline-master.zip
————————————————
版权声明:本文为CSDN博主「Elastic 中国社区官方博客」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/UbuntuTouch/article/details/103767088
Logstash: 启动监控及集中管理的更多相关文章
- Logstash: 启动监控及集中管理-总结
Logstash: 启动监控 配置文件:logstash.yml xpack.monitoring.enabled: true xpack.monitoring.elasticsearch.usern ...
- ELK logstash 启动慢的解决方法
最近开始测试部署ELK, 在部署logstash的时候出现一个故障: logstash在第一次安装完成以后启动正常, 但是之后启动时间越来越长, 5分钟以上甚至10多分钟.以至于怀疑程序错误, 在重装 ...
- logstash 启动报找不主类或无法加载 java
logstash 启动报无法找到主类解决方案 Zparkle 关注 2018.03.08 22:04* 字数 2051 阅读 1评论 0喜欢 0 当logstash启动时,首先要注意正确配置java ...
- 2018.10.9 logstash启动慢的问题解决
问题描述: 线上部署logstash 启动非常缓慢,达到了10分钟 问题解决 忍无可忍 网上资料基本都是熵过低导致jruby启动缓慢的问题,需要安装haveged 参考https://www.jian ...
- logstash启动时找不到自定义的JAVA_HOME环境变量
logstash java 版本问题 配置logstash收集应用日志时出现报错,说是找不到JAVA_HOME环境变量,但是明明已经设置了 logstash要求java 1.8以上,查看生产环境: [ ...
- logstash启动失败的问题追查
在实验中logstash是作为日志过滤器的作用,日志收集使用的则是filebeat组件.redis作为缓存器,logstash从redis中拉取数据进行过滤并传给elasticsearch组件. 但是 ...
- 解决logstash启动缓慢问题
在部署logstash时,头几次启动时长还可以,最后高达半小时以上启动启动不了,上网查资料说,系统的“熵”过低,导致jruby启动缓慢.需要安装haveged.但是我安装完后还是慢 https://h ...
- 关于spring boot启动监控端点的方法(spring-boot-starter-actuator)
前言: 在spring boot的旧版本中,监控端点(如/env)是默认开启的,所以只要项目正常启动,就能通过url获取信息.可是在2.0版本以后,由于安全性考虑,除了/health和/info的端点 ...
- LogStash启动报错:<Redis::CommandError: ERR unknown command 'script'>与batch_count 的 配置
环境条件: 系统版本:centos 6.8 logstash版本:6.3.2 redis版本:2.4 logstash input配置: input { redis { host => &qu ...
随机推荐
- SpringBoot配置文件读取过程分析
整体流程分析 SpringBoot的配置文件有两种 ,一种是 properties文件,一种是yml文件.在SpringBoot启动过程中会对这些文件进行解析加载.在SpringBoot启动的过程中, ...
- 日志审计与分析实验三(rsyslog服务器端和客户端配置)(Linux日志收集)
Linux日志收集 一.实验目的: 1.掌握rsyslog配置方法 2.配置rsyslog服务收集其他Linux服务器日志: C/S架构:客户端将其日志上传到服务器端,通过对服务器端日志的查询,来实现 ...
- AtCoder Beginner Contest 261E // 按位思考 + dp
题目链接:E - Many Operations (atcoder.jp) 题意: 给定一个数x,以及n个操作(ti,ai): 当 t = 1 时,将 x & a 当 t = 2 时,将 x ...
- mysql导出导入数据库和表学习笔记
一.mysql导出数据库和表 1.导出单个数据库 mysqldump [-h Host] -u Username -p [PASSWORD] db_name > db_name.sql 2.导出 ...
- 浩若烟海事半功倍|利用Docker容器技术构建自动化分布式web测试集群Selenium Grid
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_195 "世界上有那么多城市,城市里有那么多的酒馆,可她,却偏偏走进了我的-",这是电影<卡萨布拉卡> ...
- Python 阿里云盾滑块验证
本文仅供学习交流使用,如侵立删! 记一次阿里云盾滑块验证分析并通过 操作环境 win10 . mac Python3.9 selenium.pyautogui 分析 最近在做中国庭审公开网数据分析的时 ...
- [算法1-排序](.NET源码学习)& LINQ & Lambda
[算法1-排序](.NET源码学习)& LINQ & Lambda 说起排序算法,在日常实际开发中我们基本不在意这些事情,有API不用不是没事找事嘛.但必要的基础还是需要了解掌握. 排 ...
- Rider调试ASP.NET Core时报thread not gc-safe的解决方法
新建了一个ASP.NET Core 5.0的Web API项目,当使用断点调试Host.CreateDefaultBuilder(args)时,进入该函数后查看中间变量的值,报错Evaluatio ...
- 创新能力加速产业发展,SphereEx 荣获“中关村银行杯”『大数据与云计算』领域 TOP1
8 月 9 日下午,2022 中关村国际前沿科技创新大赛"中关村银行杯"大数据与云计算领域决赛在北京市门头沟区中关村(京西)人工智能科技园·智能文创园落下了帷幕.SphereEx ...
- 用 Windows Server 2019 搭建求生之路服务器
准备工作 要搭建一台 Windows Server 的求生之路服务器需要做以下几点前置工作: 购买一台云服务器,如腾讯云: 下载 SteamCMD: 安装 SourceMod.MateMod.L4dT ...