elk只能elk收集openstack日志一台服务器的日志么

使用集中日志服务器收集softether日志,并用ELK (elasticsearch + logstash + kibana)_redis学习_ThinkSAAS
使用集中日志服务器收集softether日志,并用ELK (elasticsearch + logstash + kibana)
使用集中日志服务器收集softether日志,并用ELK (elasticsearch + logstash + kibana)
内容来源: 网络
启用远程syslog: 使用rsyslog或者logstash作为syslog serverELK Server:1. disable firewall and selinuxyum -y install gcc tcl2. wget http://download.redis.io/redis-stable.tar.gztar zxf redis-stable.tar.gzcd redis-stable/ make lua hiredis linenoisecd ..; make installmkdir -p /etc/redis /var/redis/6379cp utils/redis_init_script /etc/init.d/redisvi /etc/init.d/redis# add before REDISPORT=6379 line# chkconfig:
# description:
Redis is a persistent key-value databasechmod 755 /etc/init.d/rediscp redis.conf /etc/redis/6379.confvi /etc/redis/6379.confdaemonize yespidfile /var/run/redis_6379.pidlogfile "/var/log/redis_6379.log"dir /var/redis/6379chkconfig -- service redis startredis-cli ping3. rpm -ivh jdk-7u67-linux-x64.rpm rpm -ivh elasticsearch-1.3.4.noarch.rpmchkconfig -- service elasticsearch startvi /etc/security/limits.confelasticsearch
32000elasticsearch
32000reboot to take effectElasticsearch clster monitoring tools:a). /usr/share/elasticsearch/bin/plugin -install karmi/elasticsearch-paramedicb). /usr/share/elasticsearch/bin/plugin -install lukas-vlcek/bigdeskChecking Elasticsearch Cluster status:curl -XGET &Checking Elasticsearch nodes status:curl -XGET &Indexes location:/var/lib/elasticsearch/elasticsearch/nodes/Optimizing all indexes:curl -XPOST &http://localhost:9200/_optimize&Getting the size of an index:curl &other useful tools:4. mkdir /etc/logstashcd /opttar zxf logstash-1.4.2.tar.gz mv logstash-1.4.2 logstashvi /etc/logstash/indexer.confinput {# input local log files to elasticsearch
type =& "syslog"
path =& [ "/centrallog/hosts/*/syslog.log", "/var/log/messages" ]
}# input log files from redis server to elasticsearch
host =& "redis-server-ip"
data_type =& "list"
key =& "logstash"
}# setup local syslog server and send log files to elasticsearch
type =& syslog
port =& 5514
}}output {
elasticsearch {
bind_host =& "elasticsearch-server-ip"
stdout { codec =& rubydebug }}5. nohup /opt/logstash/bin/logstash agent -f /etc/logstash/indexer.conf
& /dev/null 2&&1 &6. yum -y install httpdcd /var/www/htmltar zxf kibana-3.1.1.tar.gzmv kibana-3.1.1 kibanamv kibana/app/dashboards/default.json kibana/app/dashboards/default.json.bakmv kibana/app/dashboards/logstash.json kibana/app/dashboards/default.json
chkconfig httpd onhttp://server-ip/kibanaClient:1. disable firewall and selinux2. rpm -ivh jdk-7u67-linux-x64.rpm mkdir /etc/logstashcd /opttar zxf logstash-1.4.2.tar.gz mv logstash-1.4.2 logstashvi /etc/logstash/shipper.confinput {# input local log files to redis server
path =& [ "/var/log/messages" ]
type =& "syslog"
}}output {
host =& "redis-server-ip"
data_type =& "list"
key =& "logstash"
stdout { codec =& rubydebug }}3. nohup /opt/logstash/bin/logstash agent -f /etc/logstash/shipper.conf & /dev/null 2&&1 &HA for ELK:Client: logstash shippervi /etc/logstash/shipper.confoutput {
host =& [ "redis-server1-ip", "redis-server2-ip" ]
shuffle_hosts =& true
data_type =& "list"
key =& "logstash"
codec =& json
}}Logstash indexer:vi /etc/logstash/indexer.confinput {redis {
host =& "redis-server1-ip"
data_type =& "list"
key =& "logstash"
codec =& json
host =& "redis-server2-ip"
data_type =& "list"
key =& "logstash"
codec =& json
}}output {
elasticsearch {
bind_host =& [ "elasticsearch-server1-ip", "elasticsearch-server2-ip" ]
cluster =& "logstash"
stdout { codec =& rubydebug }}Elasticsearch cluster:elasticsearch-server1:vi /etc/elasticsearch/elasticsearch.ymlcluster.name: logstashnode.name: "elasticsearch-server1"node.master: truenode.data: falseelasticsearch-server2:vi /etc/elasticsearch/elasticsearch.ymlcluster.name: logstashnode.name: "elasticsearch-server2"node.master: falsenode.data: true方法二:On CentOS 6.5 syslog server:vi /etc/rsyslog.conf# Provides UDP syslog reception$ModLoad imudp$UDPServerRun 514#*.mail.authpriv.cron.none
/var/log/messages# add before ### begin forwarding rule ### line$template RemoteHost,"/centrallog/hosts/%fromhost-ip%/syslog.log"*.mail.authpriv.cron.none
?RemoteHost&~optional:vi /etc/logrotate.d/syslog# add below line/centrallog/hosts/*/syslog.logservice rsyslog restartfor each vpnserver:/vpn/vpnserver/vpncmd localhost:443 /SERVER /PASSWORD:yourpassword /CMD:SyslogEnable 3 /HOST:syslog-server-ip本文出自 “” 博客,请务必保留此出处
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信用ELK搭建简单的日志收集分析系统
用ELK搭建简单的日志收集分析系统
在微服务开发过程中,一般都会利用多台服务器做分布式部署,如何能够把分散在各个服务器中的日志归集起来做分析处理,是一个微服务服务需要考虑的一个因素。
搭建一个日志系统
搭建一个日志系统需要考虑一下一些因素:
利用什么技术,是自己实现还利用现成的组件
日志需要定义统一的格式
日志需要拥有一个锚点来进行全局跟踪
第一个问题,针对我们小公司来说,基本没有自己的研发能力,绝对是选用第三方开源的组件了。ELK配置比较简单,有现成的UI界面,容易检索日志信息,是首选。
第二个问题,利用log4j2定义好统一的日志格式,利用logstash过滤日志内容。
第三个问题,全局跟踪的ID有几种生产方式,一种是利用UUID或者生成随机数,一种是利用数据库来生成sequence number,还可以通过自定义一个id生成服务来获取。考虑到自身服务的需要,这里选用生成随机数来实现。
日志系统架构
从左边看起,每一台webserver上都会部署一个logstash-agent,它的作用是用类似tailf的方式监听日志文件,然后把新添加的日志发送到redis队列里面,logstash-indexer负责从redis相应的队列里面取出日志,对日志进进行加工后输出到elasticsearch中,elasticsearch会根据要求对日志进行索引归集,最后用户可以通过kibana来查看和分析日志。
开始搭建日志系统
安装Redis2.8
这里不涉及怎样安装JDK和Redis,请自行查阅资料
使用logstash2.3.1, elasticsearch2.3.1, kibana2.3.1
首先去ELK官网下载相应的压缩包
在webserver上安装logstash-agent
1.解压 tar -zxvf logstash2.3.1
2.检验安装是否成功 bin/logstash -e "input{stdin{}}output{stdout{}}",然后在终端输入hello,看看有没有内容返回
3.编写配置文件logstash_agent.conf
在logstash安装目录下新建conf文件夹,在里面新建配置文件logstash_agent.conf
type =& "customer_service"
path =& ["/home/java/logs/cust/customer-service-*.log"]
tags =& ["customer-service", "log4j2"]
codec =& multiline {
pattern =& "^%{TIMESTAMP_ISO8601}"
negate =& true
what =& "previous"
host =& "192.168.235.195"
data_type =& "list"
key =& "logstash:redis:customer"
4.后台启动
nohup ./bin/logstash -f conf/logstash_agent.conf &
1.解压tar -zxvf elasticsearch-2.3.1.tar.gz
2.修改安装目录下的配置文件config/elasticsearch.yml
把network.host字段给反注释掉,把地址改为0.0.0.0(官方并没明确说要去改这配置,默认配置应该就可以了,不过实测的时候发现如果不做这修改,elasticsearch访问不了)
3.后台启动elasticsearch
nohup ./bin/elasticsearch &
在日志server上安装logstash-indexer
与在webserver上安装logstash-agent一节基本相同,只是配置文件不一样,这里使用logstash-indexer.conf
host =& "localhost"
data_type =& "list"
key =& "logstash:redis:customer"
type =& "redis-input"
match =& {
"message" =& "%{TIMESTAMP_ISO8601:date} \[(?&thread_name&.+?)\] (?&log_level&\w+)\s*(?&content&.*)"
match =& ["timestamp", "dd/MMM/YYYY:HH:mm:ss Z"]
if[type] == "customer_service" {
elasticsearch {
hosts =& "localhost:9200"
index =& "customer-%{+YYYY.MM.dd}"
}else if[type] == "其他类型" {
elasticsearch {
hosts =& "localhost:9200"
index =& "其他类型索引名字-%{+YYYY.MM.dd}"
启动logstash-indexer
nohup ./bin/logstash -f conf/logstash-indexer.conf &
在日志server上安装kibana
1.解压tar -zxvf kibana-4.5.0-linux-x64.gz
2.后台启动kibana nohup ./bin/kibana &
这里没有特别去配置kibana要访问的elasticsearch地址,默认它会找本地的,如果需要,可以到conf/kibana.yml修改
配置log4j2的日志格式
&PatternLayout pattern="%d{ISO8601} %t %level %msg%n"/&
访问kibana主页
1.打开kibana主页
2.输入索引customer-*,并点击create
3.在Discover页面观察日志
需要了解elasticsearch日志存放在哪里,定期清理日志
索引放久了需要清理,清理所以可以使用Elasticsearch的API。
例如我需要删除某个索引2016年5月份的所有索引,可以使用下面的命令:
curl -XDELETE 'http://localhost:9200/customer-2016.05.*'
更多API可以查阅Elastic官网
我的热门文章
即使是一小步也想与你分享如何使用ELK栈工具来管理系统日志
日期:作者:
【TechTarget中国原创】 我们曾经介绍过如何跨越多种设备搭建一个开源的监控设备日志的环境。接下来,下一步是要搭建云服务器来发送系统日志到中央的ELK服务器,在那里日志会被收集起来并用来分析与系统相关的新信息。 应用和守护进程过去常常会将日志信息写到在.log文件来通知系统管理员有某些问题或行为发生。这里最主要的问题是日志格式的不规范,从而导致了效率低下,难以管理的日志解析与分析。当系统日志出现后,这其中的很多问题都得到了解决,但安全的问题依旧被忽略了,系统日志仍然没有被集中管理。 现在,有一些云服务可以集中管理所有的单独系统里的系统日志。一名对云系统有访问权限的攻击者可以篡改系统日志来隐藏他的存在。为了防止这种可能性,我们可以使用一个集中管理的云日志服务器,在那里所有其他云服务器的日志都可以用来分析可能的恶意行为。 在这篇的例子里,我们将使用一个ELK栈来提供一个用于集中管理和系统日志分析的环境。ELK栈是由三部分组成:即,Elasticsearch用于存储和索引日志,Logstash用于解析日志,以及Kibana做为搜索和分析系统日志的界面。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
TechTarget中国
查看更多评论
敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。
Protean Security
SSH的安全性可能遭受各种各样攻击的威胁,但企业也同样可以采取几个步骤来防止这一切。专家Dejan Lukan对此给出了详解。
随着云计算甚嚣尘上,很多组织机构开始为了将应用迁移到云端而进行云用例评估。很多组织机构正在分析哪一种用例最有意义。
公共云最具吸引力的方面之一就是简化了在几天后或几周后“关闭”虚拟服务器的功能。一般情况下,当一台云服务器没有运行时,你只需象征性地为服务器镜像所占据的那部分磁盘存储资源支付一点费用。
有谁不喜欢云服务器的吗?部署云服务器意味着再也不用购买硬件了,可以根据自身的需求选择最佳的服务器规模,按照所使用的服务器付费。那么,还会有哪些问题呢?
很多供应商都称可以提供私有云或公共云产品。但却少有供应商表示能够提供混合云计算。尽管现在很多人呼吁使用混合云,但是一些IT管理者关心的还是把所有的生产应用移交给第三方是否会损失本地基础架构的实质投入。在这样的案例中,混合环境可以利用公有云和私有云的好处。
现在说云开发正在增长是一个陈述句。正如云作为另一个行业热词已经降温,兴趣却在飙升,企业开始在应用开发中使用。《云开发文摘》第一期中主要为IT和开发经理提供云开发中的趋势、战略和最佳实践的话题。
云服务帮助企业解决了构建IT基础设施和应用的难题,但是企业如何提高云服务的性能?如何高效地使用云服务?本手册介绍云服务性能和标准以及评估云服务的相关技巧法则。
下一代数据中心交换网络:云计算虚拟化交换网络。在云计算漫漫之旅上,虚拟化将是我们建设架构即服务云不得不跨越的一道坎,而大规模部署虚拟化更是给传统数据中心管理模式、服务器、存储和网络架构规划管理带来巨大的挑战。
TechTarget
企业级IT网站群
TechTarget中国 版权所有
All Rights Reserved, Copyright
TechTarget中国 版权所有
All Rights Reserved, Copyright
【TechTarget中国原创】 我们曾经介绍过如何跨越多种设备搭建一个开源的监控设备日志的环境。接下来,下一步是要搭建云服务器来发送系统日志到中央的ELK服务器,在那里日志会被收集起来并用来分析与系统相关的新信息。 应用和守护进程过去常常会将日志信息写到在.log文件来通知系统管理员有某些问题或行为发生。这里最主要的问题是日志格式的不规范,从而导致了效率低下,难以管理的日志解析与分析。当系统日志出现后,这其中的很多问题都得到了解决,但安全的问题依旧被忽略了,系统日志仍然没有被集中管理。 现在,有一些云服务可以集中管理所有的单独系统里的系统日志。一名对云系统有访问权限的攻击者可以篡改系统日志来隐藏他的存在。为了防止这种可能性,我们可以使用一个集中管理的云日志服务器,在那里所有其他云服务器的日志都可以用来分析可能的恶意行为。 在这篇的例子里,我们将使用一个ELK栈来提供一个用于集中管理和系统日志分析的环境。ELK栈是由三部分组成:即,Elasticsearch用于存储和索引日志,Logstash用于解析日志,以及Kibana做为搜索和分析系统日志的界面。 环境介绍 该环境可以使用Docker容器来搭建,在这个例子中是使用由Protean Security所提供的Docker容器。使用Docker run命令来下载proteansec/elk镜像并forward几个端口。Logstash监听在TCP/UDP的5514端口上,负责接受和分析系统日志消息。Elasticsearch则监听端口,但这些端口不需要对外曝露,因为只有Logstash和Kibana会直接使用Elasticsearch。Kibana的Web界面跑在TCP的5601端口上,可用于搜索和分析日志。 在建立环境之后,通过Docker镜像的主机IP地址加端口5601连接到Kibana的Web界面,以搜索和分析所有收集到的日志。 要在一个集中管理的Docker容器中收集日志,配置每台云服务器发送日志到暴露的5514端口上。这可以通过在云服务器上安装rsyslog并在rsyslog.d目录中添加另一个配置文件,指明从每个系统日志子系统发送的每条消息都应该被发送到一个Docker容器的5514端口上。你需要创建另一个文件/etc/rsyslog.d/10-logstash.conf,具体内容为:“*.* @@docker:5514”,其中Docker是一个DNS可解析的容器主机名。 如果有好几个云系统都可以经由SSH访问,那么我们可以通过引入一个简单的Python库来自动化该过程。我们可以通过SSH发送命令来自动化部署和管理任务,进而能够在远程系统上运行指令。 重要事件的检测 OpenVPN应用会在用户认证成功后生成日志。在渗透测试和安全评估中,我们偶然的发现了有各种用于VPN服务器验证的证书和凭证。借由获得所有的必要文件,攻击者可以建立连到公司网络的VPN连接,并访问内部资源,这是特别危险的。为了检测这种行为,搭建一个ELK栈监控连接到服务器的VPN连接来识别用户,以及用户连接来源的IP地址。当一个用户从某个遥远的国家的未知IP连接过来,这类的事件可以被检测到并通报给一个安全专业人士,其可以验证该连接是否是恶意的。 当用户在服务器上认证成功时,OpenVPN服务器会产生以下事件:[plain]&29&Aug 21 15:01:32 openvpn[9739]: 1.2.3.4:39236 [name.surname] Peer Connection Initiated with [AF_INET]1.2.3.4:39236[/plain] 该日志消息已经被推送到ELK栈,在那里Logstash会解析它,但目前还没有相应的规则来从中提取出用户名和IP地址。要编写适当的规则,使用Grok Debugger服务,该服务接受系统日志和规则,并根据规则来解析消息。 下面显示的是一条适当的规则将如何解析消息,其中用户名被存储在“vpnuser”变量中,主机名存在“vpnhost”变量中:
在Kibana界面中,经过解析的消息包含了字段vpnhost(远程用户的IP地址),vpnport,或远程用户端口,以及vpnuser(授权用户的ID),如下图所示:
要在消息中增加地理信息,可以在Logstash中启用GeoIP。这会自动在每一条包含vpnhost IP地址的消息中添加经纬度。一些额外的地理信息字段将被加到适当的消息中,用以识别VPN会话建立的国家。 我们还可以很容易地新建一个地图来显示所有连接的VPN用户的IP地址,并在Kibana中呈现出来。下图显示了一个来自斯洛文尼亚的IP,在该图中任何新增加的VPN会话的IP会很容易分辨出来:
集中控制的日志管理系统:企业安全必备 在任何时候,每个系统都会生成一些事件来反应当前正在进行的操作的一些信息。系统日志用于将某些相关操作的信息传达给系统管理员。 妥善处理用户认证时生成的OpenVPN系统日志信息很重要。需要写入适当的Logstash规则来解析消息以提取敏感信息-例如用户名,以及用户连接来源的IP地址。IP地址可进一步用于检测VPN连接建立的来源国。 如果事件发生时员工是在另一个国家,安全警报会被触发通知安全专业人士这是一次可能的攻击。这样的事件可能发生在两种情况下。第一种用例是,用户从一次会议或在度假时连接到VPN,这不应该被视为安全问题。第二种情况涉及到黑客获得该用户的私钥和密码凭证连接到企业VPN服务器,这对公司来说可能是毁灭性的,因为它难以检测,但用上述的工具和技术则有可能做到。 为了将所有的系统日志都存放到一个地方,拥有一个集中控制的日志管理系统对于每一个现代企业来说是必须的。这对于发现可能的异常和威胁是必要的,否则这些异常和威胁可能几周甚至几个月都不会有人注意到。我的ELK搭建笔记(以服务方式运Logstash)
(window.slotbydup=window.slotbydup || []).push({
id: '2611110',
container: s,
size: '240,200',
display: 'inlay-fix'
您当前位置: &
[ 所属分类
| 时间 2017 |
作者 红领巾 ]
我的ELK搭建笔记
以服务方式运Logstash
1、准备服务安装文件
2、运行服务安装脚本
3、启动Logstash服务
4、查看服务运行日志
5、这个地方有陷阱
在HELLO WORLD项目中,logstash是以命令行方式运行的。这种方式适合调试,不适合在生产环境自动化运行,如果你和我一样,希望能以服务的方式允许logstash,让每次系统启动都能自动运行logstash,那么这篇笔记可供参考。
1、准备服务安装文件
假定Logasth主目录在用户elk-test:
/home/elk-test/elk-install/logstash-5.1.2文件夹下
首先修改服务安装配置文件:
/home/elk-test/elk-install/logstash-5.1.2/config/startup.options
如果您有自定义的grok patterns,请统一放在Logstash主目录下的patterns文件夹。
示例的syslog-min.conf如下:
2、运行服务安装脚本
在logstash主目录下,以root身份执行命令bin/system-install安装服务。
3、启动Logstash服务
启动Logstash服务
设置服务自启动:systemctl enable logstash
启动服务:systemctl start logstash
停止服务:systemctl stop logstash
重启服务:systemctl restart logstash
查看服务状态:systemctl status logstash
4、查看服务运行日志
/var/log/messages
/home/elk-test/elk-install/logstash-5.1.2/logs/logstash-plain.log
5、这个地方有陷阱
以服务方式运行后,logstash会加载mappings目录下所有的配置文件,并且会合并。因此,如果日志解析出现问题,记得查看下这些配置文件有没有冲突的?我自己曾在这个目录放了syslog和jdbc两个配置文件,结果导致输入冲突。
如果你希望在同一台服务器上部署多个服务,最好是把logstash主目录多复制几份,安装在不同的来启动吧。
上期:我的ELK搭建笔记( 日志收集)
【本文原文:我的ELK搭建笔记(以服务方式运Logstash)由唯品会安全应急响应中心入驻安全脉搏账号发布 转载请注明来自安全脉】
本文web安全相关术语:黑盒测试方法 黑盒测试和白盒测试 网站安全检测 360网站安全检测 网络安全知识 网络安全技术 网络信息安全 网络安全工程师
转载请注明本文标题:本站链接:
分享请点击:
1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
CodeSecTeam微信公众号
慎思之!缓行之!徐图之!
手机客户端logstash日志收集系统性能问题(ELK)?
&& 目前我正在用ELK做统一日志收集系统。
&&& 官网上介绍时都强调了一般都用redis作为缓冲中间件,也就是:
&&& input:file -& output:redis&&&&&&&&&&&&&&&&(这个logstash shipper是装在日志服务器上的)
&&&&input:redis -& output:elasticsearch&&& (单独的logstash,可以做集群,多个logstash都从redis从取)
&&& 不知道添加一个redis是为了提高性能吗?
&&& 我按照这种架构来部署时,发现logstash仅能处理每秒不到2000条日志,大部分的日志都积压在redis侧。
&&&&如果直接从input:file -output:elasticsearch 是不是更快些呢?
不要相信elasticsearch入库速度,直接打入这里,可能由于打入过快导致内存暴增
& & host =& '127.0.0.1'
& & data_type =& 'list'
& & key =& 'logstash:redis'
& &&threads =& 10
& & #batch_count =& 1000
& elasticsearch {
& & #embedded =& true
& & host =& localhost
& &&workers =& 10
大概每S可2W
因为elasticsearch写的速度肯定没有直接读取log的速度快,用redis做缓存,redis写入速度要大于elasticsearch速度
我们用zmq做队列。你应该开启多个线程,甚至可以用多个进程进行处理,一秒钟上万条,应该没有问题的
我配置过logstash在output到elasticsearch时的worker数量,redis中目前无排队的数据。 不知道是不是这个参数可以改善
redis机器给的内存够多吗?
--- 共有 2 条评论 ---
: 你的问题解决了吗?我最近也遇到相同的问题。
给redis设置的最大内存为16g.
不过这个跟redis应该没有关系吧,redis只是做数据队列的,主要是logstash indexer取的很慢}

我要回帖

更多关于 elk收集多tomcat日志 的文章

更多推荐

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

点击添加站长微信