在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段
日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。
通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。
集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。
开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
本篇博文介绍elk的安装配置以及与log4j2结合的简单应用以下内容为原创
ubuntu 14.04
jdk版本 1.8.0_144
ElasticSearch6.1.1
Logstash6.1.1
kibana6.1.1
只做测试演示elk均部署在一台服务器上
ubuntu地址:10.32.23.253
通过apt-get install 方式安装需要先运行以下命令
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
sudo apt-get update
1.安装elasticsearch命令:sudo apt-get install elasticsearch
2.查看文件及配置文件路径whereis elasticsearch
配置文件路径/etc/elasticsearch
文件路径/usr/share/elasticsearch
修改配置文件elasticsearch.yml
3.命令:vi /etc/elasticsearch/elasticsearch.yml
文件末添加以下内容保存(只做演示故大部分配置使用默认值不做配置,详细配置见:常用配置说明)
#数据存放目录
path.data: /var/lib/elasticsearch
#日志目录
path.logs: /var/log/elasticsearch
#当前hostname或IP,我这里是本机ip 如填写localhost则外部无法访问只可本机调用
network.host: 10.32.23.253
4.运行:service elasticsearch start
常见异常:
运行命令返回:Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME
配置elasticsearch的JAVA_HOME
运行命令:vi /etc/init.d/elasticsearch 在文件头添加:JAVA_HOME="JDK目录" 本机为/home/jdk 故添加为 JAVA_HOME="/home/jdk"
如果上一步出现异常则修改配置后再次运行:service elasticsearch start 如提示Ok
* Starting Elasticsearch Server [ OK ]
5.运行:service elasticsearch status 查看运行状态
6.访问:服务器ip:9200 本次演示地址为:10.32.23.253:9200
命令:curl 10.32.23.253:9200
1.安装Logstash命令:sudo apt-get install logstash
2.查看文件及配置文件路径whereis elasticsearch
3.配置文件路径/etc/logstash
文件路径/usr/share/logstash
4.修改配置文件,运行命令:vi /etc/logstash/logstash.yml
文件末尾添加 或取消注释
path.data: /var/lib/logstash
path.config: /etc/logstash/*.conf
path.logs: /var/log/logstash
5.进入/usr/share/logstash目录,添加文件logstash-test.conf
vi /usr/share/logstash/logstash-test.conf
input {
stdin{}
}
filter {
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "10.32.23.253:9200"
}
}
运行命令:/usr/share/logstash/bin/./logstash -f /usr/share/logstash/logstash-test.conf,在控制台输入hello logstash,结果如下图则logstash配置成功
1.安装 Kibana命令:sudo apt-get install kibana
2.查看文件及配置文件路径whereis kibana
3.修改配置文件
运行命令:vi /etc/kibana.yml
添加如下内容
server.port: 5601
server.host: "10.32.23.253" (服务器IP)
4.运行启动命令:service kibana start
测试访问 10.32.23.253:5601
1.首先配置logstash
运行命令:vi /usr/share/logstah/logstash-tcp.conf
input {
tcp {
host => "10.32.23.253"
port => "4560"
mode => "server"
type => "microwiki"
add_field => {
"name" => "Routh"
}
}
}
filter {
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => "10.32.23.253:9200"
}
}
2.进入logstash根目录 /usr/share/logstash
运行命令:nohup ./bin/logstash -f logstash-tcp.conf &
3.在集成了log4j的项目中修改log4j2.xml,host为logstash服务器ip port为logstash设置的端口号
添加
<Socket name="Logstash" host="10.32.23.253" port="4560" protocol="TCP">
<PatternLayout>%d{HH:mm:ss,SSS} %-5level [%c{1.}] %C{1} %m%nPatternLayout>
Socket>
<Root level="info" includeLocation="true"> <AppenderRef ref="Logstash"/> Root>
4.正常部署运行到与logstash服务器网络通畅的服务器后即可接收其日志推送
5.进入kibana设置