多服务器模式的管理日志和数据系统,功能更强大
优采云 发布时间: 2021-04-25 18:23多服务器模式的管理日志和数据系统,功能更强大
日志监视和分析在确保业务稳定运行中起着非常重要的作用。但是,通常,日志分散在各种生产服务器上,并且开发人员无法登录到生产服务器。此时,需要集中式日志。采集设备监视日志中的关键字,在触发异常时发出警报,并且开发人员可以查看相关日志。 logstash + elasticsearch + kibana3是一个实现此功能的系统,功能更强大。
logstash:是用于管理日志和事件的工具。您可以采集它们,对其进行解析,然后将其存储以供以后使用(例如日志搜索)。 Logstash具有内置的Web界面,可搜索您的所有日志。 Logstash在部署期间有两种操作模式:独立和集中式:
*独立:``独立意味着所有内容都在一台服务器上运行,包括日志采集,日志索引和前端WEB界面都部署在一台计算机上。
*集中式:这是一种多服务器模式,从该模式将日志从许多服务器传送到集合日志(采集器)服务器以进行索引和搜索。
应该注意的是,logstash本身没有诸如托运人和索引器之类的术语,因为运输日志的过程和采集总日志的过程都运行相同的程序,但是所使用的配置文件是不同的。
elasticsearch:
基于Lucene的开源搜索引擎是一个分布式搜索分析系统,具有以下主要功能:实时数据,实时分析,分布式,高可用性,多租户,全文搜索,面向文档,冲突管理,无模式,宁静的api等。
kibana3:
作为Web前端的可视日志和数据系统可以轻松地与Elasticsearch系统集成。 kibana的版本2和版本3之间有区别。版本2是用ruby编写的,部署起来很麻烦。它需要安装许多ruby依赖包(当前此版本已部署在Internet上),而版本3是用纯html + css编写的,因此已部署。非常方便。减压后即可使用。已经是kibana4了。我建议您使用最新版本。
出于性能和可伸缩性方面的考虑,我们必须在实际应用程序中使用集中式的logstash模式。最基本的*敏*感*词*如下:
1、安装redis,安装过程很简单,在此不再赘述。
2、安装ElasticSearch(当前版本为1. 4)
wget 'https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.7.tar.gz'
tar zxvf elasticsearch-0.90.7.tar.gz
cd elasticsearch-0.90.7/bin
#可以在logstash agent启动后再启动
./elasticsearch -f
3、启动logstash shipper,定义配置文件logstash.conf,根据实际情况定义,以下主要定义输入源为文件,输出到redis,启动logstash shipper,例如:
input {
file {
type => "api_log"
path => "/home/jws/app/nginxserver/logs/apiaccess.log"
debug => true
}
file {
type => "cas_log"
path => "/home/jws/app/nginxserver/logs/casaccess.log"
debug => true
}
file {
type => "id_log"
path => "/home/jws/app/nginxserver/logs/idaccess.log"
debug => true
}
file {
type => "login_log"
path => "/home/jws/app/nginxserver/logs/loginaccess.log"
debug => true
}
file {
type => "proxy_log"
path => "/home/jws/app/nginxserver/logs/proxyaccess.log"
debug => true
}
}
output {
redis {
host => "10.20.164.121"
data_type => "list"
key => "logstash:redis"
}
redis {
host => "10.20.164.122"
data_type => "list"
key => "logstash:uop_file"
}
}
开始托运人:
java -jar /home/jws/htdocs/logstash/lib/logstash.jar代理-f /home/jws/htdocs/logstash/conf/logstash.conf -l / home / jws / htdocs / logstash / logs / logstash.log
4、启动logstash索引器
logstash的配置文件非常简单,收录三个主要部分:输入,过滤器和输出。配置文件中事件的发生是连续的。在输入,输出和过滤器中,允许您设置配置插件。配置插件由插件名称和紧随其后的插件配置代码块组成。插件中的值可以是布尔值,字符串,数字,哈希,数组等,并支持条件判断(如果...否则)。
例如,配置以下索引器并启动索引器:
input {
file {
path => "/home/rsyslog/asaserver/*/*/*/proxy.log.*"
exclude => "*.bz2"
type => "proxy"
}
}
filter {
grok {
match => [ "message", "%{APIPROXY}" ]
patterns_dir => ["/home/jws/app/logstash/patterns"]
}
if [request_uripath_orig]{
grok {
match => [ "request_uripath_orig", "%{NSSS}" ]
patterns_dir => ["/home/jws/app/logstash/patterns"]
}
}
}
output {
#stdout { codec =>"rubydebug"}
elasticsearch_http {
host => "10.20.161.36"
flush_size => 500
idle_flush_time => 3
index => "logstash_pf_proxy-%{+YYYY.MM.dd.HH}"
template => "/home/jws/app/logstash/template/t.json"
template_overwrite => true
}
}
5、安装并启动kibana3。安装过程与普通软件安装没有什么不同。可以与nginx一起安装。这里没有描述。请注意,您需要在kibana config.js中配置elasticSearch的地址和端口。
请注意红色框中的内容。这只是kibana3的默认界面。我们需要将default.json接口替换为logstash.json,该接口位于特定目录的源目录下的app / dashboard中。
例如,在一个项目的示例中,图表是根据要求制作的(类似于饼图,条形图,折线图等)。在作者的实际项目中,从日志中分析数据以实现系统稳定性,并且在kibana中显示了响应时间,请求量,业务响应代码,HTTP状态代码等;
此外,elasticsearch的目的远非如此。它可以用作搜索数据源。 ES提供了一个编程接口。您可以使用编程来获取ES中的数据,以自定义监视程序的开发,这是灵活而强大的。
正式文件(现已全部合并):
logstash:
elasticsearch:
木乃伊: