前因: 相信大家好多人也被生产环境莫名的bug所诟病过,本地环境跑起来没有问题的代码,发布到生产环境就会出现各种情况的问题,导致出问题只能上生产看日志(小公司体系不全),而生产环境只有规定的人有权限,艾玛反正就是各种蛋疼,改个bug各种困难
最近碰巧看到ELK,感觉很强大,于是各种百度搭建了个环境,这里记录下以便后续深入学习
ELK由elasticsearch,logstash, kibana三个开源项目组成,关于对三个项目这里不作过多介绍了,网上也都有
ELK stack运行环境依赖jdk环境 推荐使用jdk8
环境准备:
vm虚拟机
ubuntu 14:04
1.安装JDK
①下载 http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html
②通过tar zxvf jdk-8u111-Linux-x64.tar.gz -C /usr/lib/jvm/java-8-oracle解压到相应目录
③配置环境变量 通过命令 vim /etc/profile 添加
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
④退出当前用户 重新登录 通过java -version 验证是否安装成功
2.elasticsearch
①下载 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.tar.gz (ps:建议使用迅雷下载,当然也可以直接通过wget命令下载)
②通过命令 tar zxvf elasticsearch-5.1.1.tar.gz -C /home/wangpeng/elk 解压到相应目录
③通过vim config/elasticsearch.yml 命令 找到network 修改为相应IP
network.host: localhost
④启动elasticsearch ./bin/elasticsearch
⑤验证安装成功 通过curl 'localhost:9200'
{
"name" : "GPqj9SZ",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "9R3KCjbwTUqvRIsh-QVLiQ",
"version" : {
"number" : "5.1.1",
"build_hash" : "5395e21",
"build_date" : "2016-12-06T12:36:15.409Z",
"build_snapshot" : false,
"lucene_version" : "6.3.0"
},
"tagline" : "You Know, for Search"
}
出现以下内容说明安装成功,当然也可以直接通过浏览器 访问 http://localhost:9200
3.logstash
①下载 https://artifacts.elastic.co/downloads/logstash/logstash-5.1.1.tar.gz
②通过命令 tar zxvf logstash-5.1.1.tar.gz -C /home/wangpeng/elk解压到相应目录
③解压完成后 通过 ./logstash -e 'input {stdin{}} output{stdout{}}'命令验证安装是否成功
④添加配置文件 vim logstash-test.conf 添加内容
input{
file{
path => ["/home/test/test.log"]
add_field => {"appName" => "test"}
type => "test"
}
beats{
port => 5044
}
}
filter{
grok{
match => {"message" => ""}
}
}
output{
elasticsearch{hosts => ["localhost:9200"]}
stdout{codec => rubydebug}
}
input中 file 用来指定输入文件 path 对应文件目录 beats 是提供给 FileBeat使用的端口号
filter 过滤 配置grok插件 对message信息进行匹配处理
output当然就是输出 elasticsearch hosts 输出到对应的elasticsearch服务器 stdout控制台输出
然后可以向test.log中添加日志数据来测试模拟
4.kibana
①下载 https://artifacts.elastic.co/downloads/kibana/kibana-5.1.1-linux-x86_64.tar.gz
②解压到相应目录 tar zxvf kibana-5.1.1-linux-x86_64.tar.gz -C /home/wangpeng/elk
③修改配置文件 vim kibana.yml 添加内容
server.host: "localhost"
④验证安装是否成功 通过浏览器 访问 http://localhost:5601
到处基础环境搭建完成 ,当然elk能完成更复杂的功能,自己也是刚开始学,就不误导他人了
5.nginx
直接通过命令 apt-get install nginx apache2-utils 来安装nginx
安装完成后 在/ect/nginx目录下
添加对kibana代理的配置文件
vim /etc/nginx/conf.d/kibana.conf
server{
listen 80;
server_name localhost;
location /{
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
几个基本的nginx命令 nginx -c /etc/nginx/nginx.conf 通过配置文件启动nginx服务 nginx -s quit停止服务