ELK(elasticsearch+logstash+kibana)搭建说明
一、介绍
日志主要包括系统日志、应用程序日志、访问日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误以及发生的原因。经常分析日志可以了解服务器的负荷、性能安全性,从而及时采取纠正措施。
通常,日志被分散存储在不同设备上。如果数十台上百台服务器,你还在登陆每台服务器,这样是不是感觉很繁琐和效率低下。当务之急我们集中化的日志管理,例如开源的syslog,将所有的服务器上的日志收集和汇总。
集中化管理日志后,日志的统计和检索又成为了一件比较麻烦的事情,一般我们使用grep、awk和wc等linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量使用这样的方法难免有点力不从心。
开源实时日志分析ELK平台能够完美的解决我们上述问题,ELK由elastaticSearch、logstash和kibana三个开源工具组成。官方网站Https://www.elastic.co/products。
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。
Kibana 也是一个开源和免费的工具,它可以为logstash和elasticsearch提供的日志分析友好的web界面,可以帮助您汇总、分析和搜索重要数据日志。
在需要收集日志的所有服务器上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到logstash indexer,logstash indexer将日志收集在一起交给全文搜索服务elasticsearch,可以用elasticSearch进行自定义搜索通过kiabana来结合自定义搜索进行页面展示。
二、准备工作
Logstash 1.5+推荐使用jre 7以上。Elasticsearch和logstash依赖jre。
1、安装jdk。jdk-7u65-linux-x64.tar.gz需要注册oracle账户,且依赖网络。http://www.oracle.com/technetwork/java/archive-139210.html。
2、安装logstash。logstash-1.5.1.tar.gz 版本,依赖网络,下载很慢。
3、安装ealsticsearch 。elasticsearch-2.2.0.tar.gz 版本,如上。
4、安装kibana 。kibana-3.1.0.zip,文件比较小,可以在网上下载。
5、安装 tomcat 。apache-tomcat-7.0.75.tar.gz,随便下。
6、此上5版本均验证可用。
三、配置说明
1、Jdk
tar -zxvf jdk-7u65-linux-x64.tar.gz -C
vi /etc/profile
source /etc/profile
shutdown -r now 重启Linux
开机后java -version
2、Logstash
解压同上
cd ./bin
3、Elasticsearch
解压同上
cd ./bin
cd ./config
修改 vi elasticsearch.yml
4、Kiabana
unzip kibana-3.1.0.zip
5、Tomcat
Tar -zxvf apache-tomcat-7.0.75.tar.gz
四、环境说明
1、在升级了最新的elasticsearch1.5之后,原来的kibana 3提示无法连接到elasticsearch的9200端口,“kibana 3 Could not contact Elasticsearch”
解决方法:在elasticsearch的配置文件config/elasticsearch.yml下添加配置说明中http相关内容。参考http://blog.csdn.net/fableboy/article/details/44775063
logstash解压目录下./bin vi start_logstash.conf
运行 ./logstash -f start_logstash.conf
2、elasticsearch
执行 ./bin/elasticsearch
结束ctrl+c或者kill掉pid
安装head插件
方法一、elasticsearch/bin/plugin -install mobz/elasticsearch-head
方法二、https://github.com/mobz/elasticsearch-head下载zip 解压,添加文件\plugins\head\_site,将解压的文件拷贝到此目录下。
启动后查看网站 http://localhost:9200/_plugin/head/ 界面如下。
3、Kibana
放到tomcat的webapps目录下
http://localhost:8080/kibana-3.1.0
4、查看端口
netstat -anp |grep :9200
5、防火墙,访问IP解决
systemctl start firewalld 启动
systemctl stop firewalld 停止
systemctl disable firewalld 禁用 禁用后,firewalld将不会再开机时自动启动。
systemctl enable firewalld 启用
systemctl status firewalld 检查防火墙是否在运行
6、拷贝文件
scp -r /home/wwwroot/www/charts/util root@192.168.1.65:/home/wwwroot/limesurvey_back/scp
7、elasticsearch以root用户运行命令
./elasticsearch -Des.insecure.allow.root=true
8、tomcat错误日志正则表达式
input {
file {
path => ["/sdb/deploy/apache-tomcat-mes-node1/webapps/mes/logs/trace-erp.log","/sdb/deploy/apache-tomcat-mes-node2/webapps/mes/logs/trace-erp.log"]
tags => "java-err"
start_position => "beginning"
codec => multiline {
pattern => "%{DATESTAMP}"
negate => true
what => "previous"
}
}
}
#filter for tomcat-error
filter {
grok {
add_field => [ "received_from", "172.16.211.238" ]
match => { "message" => "%{DATESTAMP:timestamp} \[(?<thread_name>.+?)\] %{LOGLEVEL:level} %{JAVACLASS:class}\s*(?<content>.*)"}
}
mutate {
remove_field => "content"
}
if [level] == "ERROR" {
throttle {
after_count => 2
key => "%{content}"
add_tag => "throttled"
}
}
if [level] != "ERROR" {
drop {}
}
}
###output to es
output {
elasticsearch{
host => "172.30.2.13"
protocol =>"http"
index => "java-err-%{+YYYY.MM.dd}"
}
stdout{
codec => json_lines
}
}
五、参考资料
1、linux下安装tomcat http://blog.csdn.net/zhuying_linux/article/details/6583096/
2、Elasticsearch 插件search安装 http://blog.csdn.net/july_2/article/details/24481935
3、kibana 3提示无法连接到elasticsearch的9200 http://blog.csdn.net/fableboy/article/details/44775063
4、Jdk/jre下载 http://www.oracle.com/technetwork/java/archive-139210.html
5、比较全面的ELK搭建参考 http://www.tuicool.com/articles/YR7RRr
6、同5 点,http://baidu.blog.51cto.com/71938/1676798
7、Logstash 参考网站 https://www.elastic.co/guide/en/logstash/1.5/introduction.html
8、用于grok表达式官网 http://grokdebug.herokuapp.com/
9、grok表达式参考 http://blog.csdn.net/liukuan73/article/details/52318243
10、安装jdk http://josh-persistence.iteye.com/blog/1908549
相关推荐
在7.6.2版本中,用户可以利用官方文档中的示例配置,快速搭建自己的日志处理系统。 **5. 整合Elastic生态** Logstash是Elastic Stack(又称ELK Stack,包括Elasticsearch、Logstash和Kibana)的关键组件,与...
ELK Stack的工作流程一般如下:首先,Logstash实时抓取日志数据,并进行数据的过滤和处理,然后将处理后的数据输入到Elasticsearch中进行索引和存储;其次,用户通过Kibana查询Elasticsearch中的数据,并进行数据...
即在Windows操作系统上搭建一个基础的ELK(Elasticsearch, Logstash, Kibana)堆栈,并利用Beats作为数据收集工具,特别是Winlogbeat,来读取系统日志,同时结合Jenkins的Logging插件进行日志管理和分析。...
同时,我们也会探讨如何使用Logstash这样的数据处理管道工具,它能方便地从各种来源收集数据,预处理后送入Elasticsearch。 在索引构建过程中,我们将学习如何定义映射(Mapping),这是Elasticsearch中用于定义...
- **Logstash**:属于Elasticsearch家族的一员,是一个强大的开源工具,用于收集、解析和转发日志数据。Logstash支持大量的插件来实现不同的数据采集方式,非常适合用于构建复杂的数据管道。 2. **存储系统**:...
- 使用日志监控工具跟踪爬虫运行情况,如Logstash和Elasticsearch。 3. 数据分析与报告 - 将抓取的数据导入数据分析工具(如Pandas、Excel或Tableau),进行统计分析。 - 生成可视化报告,提供决策支持。 通过...
还有许多辅助工具可以帮助我们管理和监控集群状态,比如JMeter进行压力测试,Nagios或Zabbix进行系统监控,以及Logstash和ELK Stack(Elasticsearch, Logstash, Kibana)用于日志收集和分析。这些工具的熟练运用能...
- 监控与日志:通过Prometheus、Grafana等工具监控系统性能,利用Logstash、ELK堆栈收集分析日志。 8. **持续集成/持续部署(CI/CD)** - Jenkins、GitLab CI/CD等工具,实现自动化测试、构建和部署,确保代码质量...
例如,使用Loguru和ELK(Elasticsearch、Logstash、Kibana)堆栈,可以方便地收集、分析系统运行日志,实时监控系统的健康状况。 最后,Python还可以结合Docker和Kubernetes进行容器化部署,提升电商平台的可扩展性...
- **日志与监控**:利用Logback, ELK Stack(Elasticsearch, Logstash, Kibana)等工具进行日志管理和系统监控。 综上所述,"cat-wiki-server"项目涵盖了服务器端开发、数据库管理、API设计、权限控制等多个方面的...