怎么把系统的日志打印到kibana 系统日志

云计算&大数据
WEB开发设计
Object Storage
Conceptual
Product Documentation
ZoneMinder
Kubernetes
Text Editors
DigitalOcean Cloud Firewalls
如何使用Logstash和Kibana集中日志在CentOS 7
在本教程中,我们将讨论在CentOS 7上安装Logstash 1.4.2和Kibana 3,以及如何配置它们以在集中位置收集和可视化系统的syslog。
Logstash是一个用于收集,解析和存储日志以供将来使用的开源工具。
Kibana 3是一个Web界面,可用于搜索和查看Logstash索引的日志。 这两个工具都基于Elasticsearch。
Elasticsearch,Logstash和Kibana在一起使用时称为ELK。
集中日志记录在尝试识别服务器或应用程序的问题时非常有用,因为它允许您在单个位置搜索所有日志。 它也很有用,因为它允许您通过在特定时间范围内关联其日志来识别跨多个服务器的问题。
可以使用Logstash收集所有类型的日志,但我们将本教程的范围限制为syslog收集。
注意:本指南的更新版本可以在这里找到:
我们的目标
本教程的目标是设置Logstash以收集多个服务器的syslog,并设置Kibana以可视化收集的日志。
我们的Logstash / Kibana设置有四个主要组件:
Logstash:用于处理传入的日志Logstash的服务器组件
Elasticsearch:存储所有的日志
Kibana:Web界面,用于搜索和可视化日志
Logstash转发器 :安装在将派出自己的日志Logstash服务器,Logstash货代作为一个利用樵夫网络协议与Logstash通信的日志转发代理
我们将一台服务器,其中,我们将参照作为我们Logstash服务器上安装的前三个分量。 该Logstash转发器将被安装在所有我们要收集原木,我们将把统称为我们的服务器的服务器。
要完成本教程,您需要root用户访问CentOS 7 VPS。 说明设置,最多可以在这里找到(第3步和4):
Logstash服务器将需要的CPU,RAM和存储量取决于您要收集的日志的量。 在本教程中,我们将使用具有以下规格的VPS用于Logstash服务器:
操作系统:CentOS 7
除了您的Logstash服务器,您将需要有一些其他服务器,您将收集日志。
让我们开始设置我们的Logstash服务器!
安装Java 7
Elasticsearch和Logstash需要Java 7,所以我们现在就安装它。 我们将安装OpenJDK 7。
使用此命令安装最新稳定版本的OpenJDK 7: sudo yum -y install java-1.7.0-openjdk
现在安装了Java 7,让我们安装ElasticSearch。
注 :Logstash 1.4.2建议Elasticsearch 1.1.1。
运行以下命令将Elasticsearch公共GPG密钥导入rpm: sudo rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch
为Elasticsearch创建和编辑新的yum存储库文件: sudo vi /etc/yum.repos.d/elasticsearch.repo
添加以下存储库配置: [elasticsearch-1.1]
name=Elasticsearch repository for 1.1.x packages
baseurl=http://packages.elasticsearch.org/elasticsearch/1.1/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
保存并退出。
使用此命令安装Elasticsearch 1.1.1: sudo yum -y install elasticsearch-1.1.1
Elasticsearch现已安装。 让我们编辑配置: sudo vi /etc/elasticsearch/elasticsearch.yml
在文件中的某处添加以下行,以禁用动态脚本: script.disable_dynamic: true
您还将要限制对Elasticsearch实例的外部访问,因此外部人员无法读取您的数据或通过HTTP API关闭Elasticseach集群。 查找指定的行network.host ,所以它看起来像这样取消其注释: network.host: localhost
然后通过寻找禁用组播discovery.zen.ping.multicast.enabled项目,并取消注释,所以它看起来是这样的: discovery.zen.ping.multicast.enabled: false
保存并退出elasticsearch.yml 。
现在启动Elasticsearch: sudo systemctl start elasticsearch.service
然后运行以下命令在启动时启动Elasticsearch: sudo systemctl enable elasticsearch.service
现在Elasticsearch启动并运行,让我们安装Kibana。
安装Kibana
注 :Logstash 1.4.2建议Kibana 3.0.1。
使用以下命令将Kibana下载到您的主目录: cd ~; curl -O https://download.elasticsearch.org/kibana/kibana/kibana-3.0.1.tar.gz
使用tar提取Kibana存档: tar xvf kibana-3.0.1.tar.gz
打开Kibana配置文件进行编辑: vi ~/kibana-3.0.1/config.js
在Kibana配置文件,找到指定行elasticsearch服务器URL,并与取代的端口号(9200默认) 80 :
elasticsearch: "http://"+window.location.hostname+":80",
(也就是因为我们对80端口访问Kibana规划这是必要的 )。
我们将使用Apache来服务我们的Kibana安装,所以让我们将文件移动到适当的位置。 使用以下命令创建目录: sudo mkdir -p /var/www/kibana3
现在将Kibana文件复制到新创建的目录中: sudo cp -R ~/kibana-3.0.1/* /var/www/kibana3/
在我们可以使用Kibana Web界面之前,我们必须安装Apache。 让我们现在做吧。
安装Apache HTTP
使用Yum安装Apache HTTP: sudo yum -y install httpd
由于Kibana将用户与Elasticsearch接口(用户需要能够直接访问Elasticsearch),我们需要配置Apache以代理端口80请求到端口9200(Elasticsearch默认监听的端口)。 我们将提供一个示例VirtualHost文件开始。
下载示例VirtualHost配置: cd ~; wget https://assets.digitalocean.com/articles/logstash/kibana3.conf
打开示例配置文件进行编辑: vi kibana3.conf
查找和更改的突出显示的值VirtualHost和ServerName到你的FQDN(或本地主机,如果你没有使用域名)和root的地方,我们安装了Kibana,让它们看起来像下面的条目: &VirtualHost FQDN:80&
ServerName FQDN
保存并退出。 现在将其复制到您的Apache配置配置: sudo cp ~/kibana3.conf /etc/httpd/conf.d/
然后生成将用于访问Kibana的登录名(替换您自己的用户名): sudo htpasswd -c /etc/httpd/conf.d/kibana-htpasswd user
然后输入密码并验证。 刚刚创建的htpasswd文件在您最近配置的Apache配置中引用。
现在启动Apache,使我们的更改生效: sudo systemctl start httpd.service
另外,配置Apache在启动时启动: sudo systemctl enable httpd.service
Kibana现在是通过您的FQDN或Logstash服务器即公网IP地址访问 。 如果您在网络浏览器中访问,您应该看到一个Kibana欢迎页面,它将允许您查看仪表板,但没有日志要查看,因为Logstash尚未设置。 让我们现在做吧。
安装Logstash
Logstash包与Elasticsearch共享相同的GPG密钥,并且我们已经安装了该公钥,因此让我们为Logstash创建和编辑新的Yum存储库文件: sudo vi /etc/yum.repos.d/logstash.repo
添加以下存储库配置: [logstash-1.4]
name=logstash repository for 1.4.x packages
baseurl=http://packages.elasticsearch.org/logstash/1.4/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
保存并退出。
使用此命令安装Logstash 1.4.2: sudo yum -y install logstash-1.4.2
已安装Logstash,但尚未配置。
生成SSL证书
由于我们要使用Logstash转发器将日志从我们的服务器发送到我们的Logstash服务器,我们需要创建一个SSL证书和密钥对。
Logstash转发器使用该证书来验证Logstash服务器的身份。
现在,您有两个选项用于生成SSL证书。 如果你有一个DNS设置,让您的客户端服务器解析Logstash服务器的IP地址,使用选项2,否则, 选项1将允许您使用IP地址。
选项1:IP地址
如果没有DNS设置,这将让你的服务器,你会收集日志从,解决您Logstash的服务器的IP地址,你将有你的Logstash服务器的私有IP地址添加到subjectAltName (SAN)字段,我们将要生成的SSL证书。 为此,请打开OpenSSL配置文件: sudo vi /etc/pki/tls/openssl.cnf
找到[ v3_ca ]文件中的部分,并根据它(代在Logstash服务器的私有IP地址)添加这一行: subjectAltName = IP: logstash_server_private_ip
保存并退出。
现在使用以下命令在适当的位置(/ etc / pki / tls /)中生成SSL证书和私钥: cd /etc/pki/tls
sudo openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
该logstash-forwarder.crt文件将被复制到所有将日志发送到Logstash的服务器,但我们会做到这一点稍晚。 让我们完成我们的Logstash配置。 如果您使用此选项去了,跳过选项2并移动到配置Logstash。
选项2:FQDN(DNS)
如果您使用专用网络进行DNS设置,则应创建一个包含Logstash服务器的私有IP地址(将在下一个命令中使用此域名)的A记录,以生成SSL证书。 或者,您可以使用指向服务器的公共IP地址的记录。 只需确保您的服务器(您将收集日志的服务器)将能够将域名解析到Logstash服务器。
现在使用以下命令(在Logstash服务器的FQDN中替换)在适当的位置(/ etc / pki / tls / ...)中生成SSL证书和私钥: cd /etc/pki/tls
sudo openssl req -subj '/CN=&^&logstash_server_fqdn/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
该logstash-forwarder.crt文件将被复制到所有将日志发送到Logstash的服务器,但我们会做到这一点稍晚。 让我们完成我们的Logstash配置。
配置Logstash
Logstash配置文件采用JSON格式,位于/etc/logstash/conf.d中。 该配置由三个部分组成:输入,滤波器和输出。
让我们创建一个名为的配置文件01-lumberjack-input.conf ,并成立了“伐木工人”输入(即Logstash代理使用的协议): sudo vi /etc/logstash/conf.d/01-lumberjack-input.conf
插入下面的输入配置: input {
lumberjack {
port =& 5000
type =& "logs"
ssl_certificate =& "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key =& "/etc/pki/tls/private/logstash-forwarder.key"
保存并退出。 这指定了一个lumberjack的输入,将监听TCP端口5000 ,它将使用我们前面创建的SSL证书和私钥。
现在,让我们创建一个配置文件名为10-syslog.conf ,在这里我们将添加一个过滤系统日志消息: sudo vi /etc/logstash/conf.d/10-syslog.conf
插入下面的系统日志过滤器配置: filter {
if [type] == "syslog" {
match =& { "message" =& "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field =& [ "received_at", "%{@timestamp}" ]
add_field =& [ "received_from", "%{host}" ]
syslog_pri { }
match =& [ "syslog_timestamp", "MMM
d HH:mm:ss", "MMM dd HH:mm:ss" ]
保存并退出。 此过滤器将查找标记为“syslog”类型(由Logstash转发器)的日志,并且将尝试使用“grok”解析传入的syslog日志以使其结构化和可查询。
最后,我们将创建一个配置文件名为30-lumberjack-output.conf : sudo vi /etc/logstash/conf.d/30-lumberjack-output.conf
插入下面的输出配置: output {
elasticsearch { host =& localhost }
stdout { codec =& rubydebug }
保存并退出。 此输出基本上配置Logstash以将日志存储在Elasticsearch中。
使用此配置,Logstash也将接受与过滤器不匹配的日志,但数据不会被结构化(例如,未过滤的Nginx或Apache日志将显示为平面消息,而不是通过HTTP响应代码,源IP地址,已提供文件,等等)。
如果要为使用Logstash转发器输入的其他应用程序添加过滤器,请确保对文件命名,以便在输入和输出配置之间进行排序(即在01和30之间)。
重新启动Logstash以使配置更改生效: sudo service logstash restart
现在我们的Logstash服务器准备就绪,让我们继续设置Logstash转发器。
设置Logstash转发器
注意 :做这些步骤要日志发送到您的Logstash服务器每个服务器。 有关在基于Debian的Linux发行版(如Ubuntu的,Debian的,等等)安装Logstash代理的说明,请参阅 。
复制SSL证书和Logstash转发程序包
在Logstash服务器 ,SSL证书复制到服务器 (替代用自己的登录): scp /etc/pki/tls/certs/logstash-forwarder.crt user@server_private_IP:/tmp
安装Logstash转发程序包
在服务器 ,下载Logstash转发RPM到你的主目录: cd ~; curl -O http://download.elasticsearch.org/logstash-forwarder/packages/logstash-forwarder-0.3.1-1.x86_64.rpm
然后安装Logstash转发程序包: sudo rpm -ivh ~/logstash-forwarder-0.3.1-1.x86_64.rpm
接下来,您将要安装Logstash Forwarder init脚本,因此它在启动时启动。 我们将使用由logstashbook.com提供的init脚本: cd /etc/init.d/; sudo curl -o logstash-forwarder http://logstashbook.com/code/4/logstash_forwarder_redhat_init
sudo chmod +x logstash-forwarder
初始化脚本依赖于一个名为/etc/sysconfig/logstash-forwarder 。 可以下载示例文件: sudo curl -o /etc/sysconfig/logstash-forwarder http://logstashbook.com/code/4/logstash_forwarder_redhat_sysconfig
打开它进行编辑: sudo vi /etc/sysconfig/logstash-forwarder
并修改LOGSTASH_FORWARDER_OPTIONS值,所以它看起来像如下: LOGSTASH_FORWARDER_OPTIONS="-config /etc/logstash-forwarder -spool-size 100"
保存并退出。
现在将SSL证书复制到适当的位置(/ etc / pki / tls / certs): sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/
配置Logstash转发器
在服务器 ,创建和编辑Logstash转发器配置文件,该文件是JSON格式: sudo vi /etc/logstash-forwarder
现在,添加以下行到该文件中,在你Logstash服务器的专用IP地址替换logstash_server_private_IP : {
"network": {
"servers": [ "logstash_server_private_IP:5000" ],
"timeout": 15,
"ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt"
"files": [
"paths": [
"/var/log/messages",
"/var/log/secure"
"fields": { "type": "syslog" }
保存并退出。 这将Logstash转发器配置为在端口5000(我们为之前指定的输入端口)连接到Logstash服务器,并使用我们之前创建的SSL证书。
路径部分指定哪些日志文件发送(这里我们指定的信息和安全 ), 类型节指定这些日志型“的syslog *(这是我们的过滤器正在寻找的类型)。
请注意,这里将添加更多文件/类型以将Logstash转发器配置为其他日志文件到5000端口上的Logstash。
现在我们将要与chkconfig的添加Logstash代理服务: sudo chkconfig --add logstash-forwarder
现在启动Logstash转发器将我们的更改: sudo service logstash-forwarder start
现在Logstash转发器发送消息和auth.log您Logstash服务器! 对您希望收集日志的所有其他服务器重复此过程。
连接到Kibana
当您在要收集日志的所有服务器上完成Logstash Forwarder的设置后,让我们看看我们之前安装的Web界面Kibana。
在Web浏览器中,转到Logstash服务器的FQDN或公共IP地址。 您将需要输入您创建的登录(在Apache设置期间),然后您应该看到Kibana欢迎页面。
点击Logstash仪表板转到预制仪表板。 您应该看到一个带有日志事件的直方图,以及以下日志消息(如果没有看到任何事件或消息,那么您的四个Logstash组件之一未正确配置)。
在这里,您可以搜索和浏览您的日志。 您还可以自定义信息中心。 这是您的Kibana实例可能是什么样子的示例:
尝试以下事项:
搜索“root”以查看是否有人尝试以root身份登录到您的服务器
搜索特定的主机名
通过在直方图上或从上面的菜单中选择一个区域来更改时间范围
点击直方图下面的消息,查看数据是如何过滤的
Kibana有许多其他功能,如图形和过滤,所以随便捅!
现在,您的系统日志通过Logstash集中,并且您能够使用Kibana可视化它们,您应该有一个良好的开始,集中所有重要的日志。 记住,你可以发送几乎任何类型的日志到Logstash,但数据变得更有用,如果它被解析和结构与grok。
请注意,任何可以访问您的服务器的人都可以访问您的Kibana仪表板,因此您需要使用类似htaccess的安全保护。
文章分类 10
howtoing.com是一个运维教程站,开始于2012年5月。这里提供如何简单的学习引导Linux/Windows系统管理员的目标。我们一直在努力提供简单易学高质量的文章。
(C)2018 Howtoing运维教程 京ICP备号-1尊敬的极客用户,您好!
感谢您一直关注并使用极客头条,为了给您带来良好的体验效果及性能,极客头条将于日关闭,您可以在
中继续使用发布文章功能并看到已经发布成功的文章。
主题信息(必填)
主题描述(最多限制在50个字符)
申请人信息(必填)
申请信息已提交审核,请注意查收邮件,我们会尽快给您反馈。
如有疑问,请联系
CSDN &《程序员》研发主编,投稿&纠错等事宜请致邮
你只管努力,剩下的交给时光!
如今的编程是一场程序员和上帝的竞赛,程序员要开发出更大更好、傻瓜都会用到软件。而上帝在努力创造出更大更傻的傻瓜。目前为止,上帝是赢的。个人网站:www.xttblog.com。个人QQ群:、
个人大数据技术博客:https://www.iteblog.com-------------
新增文件夹...
新增文件夹
(多个标签用逗号分隔)
logstash+kibana+elasticsearch+log4j日志查询管理系统.doc
实现逻辑:通过log4j搭建一个日志服务器,将客户端的log发送到服务端,并存放到指定的文件中,使用logstash对其进行监控,通过elasticsearch对其创建索引.
实现逻辑:通过log4j搭建一个日志服务器,将客户端的log发送到服务端,并存放到指定的文件中,使用logstash对其进行监控,通过elasticsearch对其创建索引.&&
加载中...!
如果长时间没有加载,请点击
来安装或允许flash插件运行!
下载本文档需要登录,并付出相应积分()。
文件大小:50.00 KB
所需积分:& 2
相关资讯  — 
相关讨论话题  — 
浏览:0次&& 下载:4次
上传时间: 15:03:46
同类热门文档
12603次浏览 &8次下载
0次浏览 &6次下载
0次浏览 &4次下载
0次浏览 &3次下载
4803次浏览 &0次下载
0次浏览 &0次下载
相关经验 -
& 0人评&10页
& 0人评&3页
& 0人评&150页
& 0人评&17页
& 0人评&90页
OPEN-OPEN, all rights reserved.阅读(2216)
自动化运维之日志系统ES+Kibana展示(二)
很喜欢这篇文章,打赏犒劳下作者,以此激励作者创作更多!
(点击"打赏按钮",文章界面会变灰,往上翻阅可看见微信二维码)
您的支持将鼓励我们继续创作!
用 [微信] 扫描二维码打赏
您可能也喜欢:
自动化运维之日志系统上线规范(十)
自动化运维之日志系统Logstash实践ES(九)
自动化运维之日志系统Logstash解耦实践(八)
还没有人抢沙发呢~
您也可以使用第三方帐号快捷登录大家都是如何收集系统日志并进行分析的? - 知乎177被浏览<strong class="NumberBoard-itemValue" title="3分享邀请回答try
log.error("......")
这个一定要避免,不管你用那种语言,错误的处理,都是可以通过全局进行统一的处理,错误日志也要通过全局统一收集。管理日志每个开发人员对日志的收集,都是非常熟悉的,基本都是将日志按照日期的方式进行保存,日常使用日志的时候,也是有一些要求:1. 单个文件的大小要控制因为大家都是通过日期方式保存的,但是因为有的人不重视日志,经常会看到有的系统单个日志文件上百M,有的甚至是几G,而实际大家处理问题关注的都是最近的日志,所以控制单个日志文件的大小,对日志的性能以及后期的运维都是非常便利的。2. 日志要便于浏览日志文件小才便于浏览,日志最好能通过网址直接访问到,而不需要一波三折登录服务器,花10分钟下载下来,再来分析。3. 日志的安全性要得到保障日志内容有时会包含敏感信息,特别是error日志,直接把系统的具体错误抛出来,所以日志除了查看方便,还需要确保日志文件的安全。如果是日志文件是html或者txt,请一定记得把你的日志文件权限修改下,特定用户才能访问,不要随便开放,所有人都能访问。4. 日志要定期清理日志是非常占用存储的空间,日志太大对存储的性能也有一定的影响,所有日志要定期进行清理。空间充足可以保留半年空间不足最少也要保留3个月当然,这个也不是一定的,根据每个系统的情况去制定清理计划就可以了。如果大家是小型网站,一个系统一台服务器,日志管理就简单了。如果系统是做了高可用,后端用了均衡负载,那么,日志存在当前服务器是不太明智的做法,日志一定要统一存储,因为均衡负载随时都可能会切换服务器,当出现故障,你需要去找日志究竟存在哪个服务器,也是件很浪费时间的事情。日志文件也可以通过:共享虚拟目录来存储定时进行文件同步来存储日志存储也是对性能有一定影响的,文件同步虽然看起来麻烦一定,但是比共享虚拟目录的方式来说,性能会好,推荐使用这种方式。说到日志的同步,就不得不提Logstash这个日志组件。Logstash是现在应用最广的日志收集组件,基于java平台。其实很多java平台的组件,是不用去了解java开发的,只要简单的配置就能使用。Logstash支持文件同步,也可以结合rsyslog进行文件同步,当然,也支持通过tcp协议,与第三方对接,好伙伴当然是Elasticsearch。Elasticsearch下文也会做简单的介绍。Logstash中文手册:分析日志日志的分析也是一个很大的概念,可能对于运维和安全人员关注的是系统的所有日志,包括访问日志、系统监测的日志等,但是开发人员对于日志更多的是:监控系统运行错误,并获取错误时的相关数据包记录重要的信息,某些时候便于后期检查所以,开发人员对日志的需求相对而言简单一点,但是处理不当也会面临挑战。如果要根据某些关键字找日志,没有一个靠谱的系统处理,那么大家只能一直在ctrl+f 或者 find 命令中来回查找自己需要的信息,使用过的人都知道,这绝对不是一个很好的体验。那么是否有很好的工具来处理呢?有,这里就介绍另外的两个工具:Elasticsearch——一个基于lucene的搜索引擎工具,解决日志的搜索问题。当然,也能解决系统的搜索问题,而且是分布式的哦。Kibana——一个可视化的日志操作引擎,结合Elasticsearch可以达到更好的效果。Kibana 界面预览 Elasticsearch+Logstash+Kibana 就是传说中的ELK了,应该是现在最流行的日志处理平台。Elasticsearch中文文档: ELK中文文档:尾声这里简单说明一下,自己心目中的日志管理系统。 整体流程如图:推荐的几个工具虽然是java平台的工具,但是日志处理的思路不管是哪个平台都是一样的。ELK如果只是作为日志管理的工具,也可以应用到.net平台,无需再进行二次开发就可以很好的使用。ELK的使用是有一定的学习成本的,如有时间可以另起一文探讨,但是,这个学习成本是可以忽略语言之间的差异。当然,如果大家愿意使用脚本同步或者rsyn文件同步进行日志处理也是可以的。欢迎大家关注我的公众号交流、学习、第一时间获取最新的文章。微信号:itmifen (二维码自动识别)202 条评论分享收藏感谢收起0添加评论分享收藏感谢收起}

我要回帖

更多关于 kibana怎么查看日志 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信