设为首页 收藏本站
查看: 1538|回复: 0

[经验分享] elk分析nginx日志和tomcat日志

[复制链接]

尚未签到

发表于 2018-11-12 10:15:00 | 显示全部楼层 |阅读模式
  一、介绍
  Elasticsearch + Logstash + Kibana(ELK)是一套开源的日志管理方案。
  Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
  kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
  ELK官网:https://www.elastic.co/
  ELK官网文档:https://www.elastic.co/guide/index.html
  ELK中文手册:http://kibana.logstash.es/content/elasticsearch/monitor/logging.html
  二、本次试验环境说明
  系统:centos6.5_x86_64
  软件:elasticsearch-6.1.2、kibana-6.1.2-linux-x86_64、logstash-6.1.2、redis-3.2.6、jdk1.8
  1、服务端(所有软件全部安装)
  ip:10.10.123.201
  公网ip:123.206.57.23
  hostname:VM_123_201_centos
  2、客户端(安装jdk和logstash)
  ip:10.10.30.86
  hostname:VM_30_86_centos
  三、服务端安装配置
  1、安装redis
#!/bin/bash  
yum -y install make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel patch perl tcl
  
cd /var/ftp/
  
tar xf redis-3.2.6.tar.gz
  
mv redis-3.2.6 /usr/local/redis
  
cd /usr/local/redis
  
make && make test && make install
  
if [ ! -d  "/usr/local/bin" ];
  
then
  
    mkdir -p /usr/local/bin
  
fi
  
ln -s  /usr/local/redis/redis.conf  /etc/redis.conf
  
sed -i '/^daemonize no/cdaemonize yes' /etc/redis.conf
  
redis-server /etc/redis.conf         #启动redis服务
  
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
  
sysctl -p
  
cat> /etc/init.d/redis  "123.206.57.23"
  key => "tomcat"
  data_type => 'list'
  port => "6379"
  db => "6"
  }
  redis {
  type => "nginx-10.10.30.86"
  host => "123.206.57.23"
  key => "nginx"
  data_type => 'list'
  port => "6379"
  db => "6"
  }
  filter {
  if [type] == "nginx-10.10.30.86"{
  geoip {
  source => "clientip"
  target => "geoip"
  database => "/usr/deploy/elk/GeoLite2-City.mmdb"
  add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
  add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}"  ]
  }
  }
  }
  output {
  if [type] == "tomcat-10.10.30.86" {
  elasticsearch {
  hosts => ["123.206.57.23:9200"]
  index => "logstash-tomcat-10.10.30.86-%{+YYYY.MM.dd}"
  }
  }
  if [type] == "nginx-10.10.30.86" {
  elasticsearch {
  hosts => ["123.206.57.23:9200"]
  index => "logstash-nginx-10.10.30.86-%{+YYYY.MM.dd}"
  }
  }
  }
# cd /usr/deploy/elk/  
# wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz          #地图的库
  
# gzip -d GeoLite2-City.mmdb.gz
  
# logstash-plugin install logstash-filter-geoip
  
# /data/elk/logstash-6.1.2/bin/logstash -f  /data/elk/logstash-6.1.2/config/input.conf       #启动logstash服务
  4、安装kibana
  # cd /data/elk/
  # tar zxvf  kibana-6.1.2-linux-x86_64.tar.gz
  # vim /usr/deploy/elk/kibana-6.1.2-linux-x86_64/config/kibana.yml
  server.port: 5601
  server.host: "0.0.0.0"
  elasticsearch.url: http://10.10.123.201:9200
  kibana.index: ".kibana"
  tilemap.url: http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}          #地图显示链接
  # /data/elk/kibana-6.1.2-linux-x86_64/bin/kibana &                             #后台运行kibana服务
  四、客户端安装配置
  # cd /data/elk/
  # tar zxf jdk-8u162-linux-x64.tar.gz
  # mv  jdk-8u162-linux-x64  /opt/jdk1.8
  # vim /etc/profile
  export JAVA_HOME=/opt/jdk1.8
  export  PATH=$JAVA_HOME/bin:$PATH
  # source /etc/profile
  # tar zxvf logstash-6.1.2.tar.gz
  # vim /data/elk/logstash-6.1.2/config/output.conf
  input {
  file {
  path => "/usr/deploy/server/tomcat/tomcat1/logs/catalina*"
  type => "tomcat-10.10.30.86"
  start_position => "beginning"
  codec => multiline {
  pattern => "^\["
  negate => true
  what => "previous"
  }
  }
  file {
  path => "/usr/deploy/server/openresty/nginx/logs/access_json.log"
  codec => json
  type => "nginx-10.10.30.86"
  start_position => "beginning"
  }
  }
  output {
  if [type] == "tomcat-10.10.30.86" {
  redis {
  host => "123.206.57.23"
  key => "tomcat"
  data_type => 'list'
  port => "6379"
  db => "6"
  }
  }
  if [type] == "nginx-10.10.30.86" {
  redis {
  host => "123.206.57.23"
  key => "nginx"
  data_type => 'list'
  port => "6379"
  db => "6"
  }
  }
  }
  客户端nginx日志设置为json格式的日志,方便显示地图分布图
  log_format json '{"@timestamp":"$time_iso8601",'
  '"host":"$server_addr",'
  '"clientip":"$remote_addr",'
  '"size":$body_bytes_sent,'
  '"responsetime":$request_time,'
  '"upstreamtime":"$upstream_response_time",'
  '"upstreamhost":"$upstream_addr",'
  '"http_host":"$host",'
  '"url":"$uri",'
  '"domain":"$host",'
  '"xff":"$http_x_forwarded_for",'
  '"referer":"$http_referer",'
  '"agent":"$http_user_agent",'
  '"status":"$status"}';
  access_log /usr/deploy/server/openresty/nginx/logs/access_json.log  json;
  # /data/elk/logstash-6.1.2/bin/logstash -f  /data/elk/logstash-6.1.2/config/input.conf       #启动logstash服务
  在浏览器访问:
  http://123.206.57.23:5601
  五、常用浏览器分析设置
  1、显示top10 的ip地址条形统计图
DSC0000.jpg

DSC0001.jpg

  2、在地图上显示访问ip的分布
DSC0002.jpg

DSC0003.jpg

  3、饼状图显示各个时间段的访问数量
DSC0004.jpg

DSC0005.jpg

  4、可以下载到本地的ip统计数据
DSC0006.jpg

DSC0007.jpg

  图形定义完成后保存,在Dashboard面板添加定义好的图形,就显示一组我们需要的图形了。
  Dashboard显示如下图:
DSC0008.jpg






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-634020-1-1.html 上篇帖子: 2.Nginx学习-The HTTP Core module 下篇帖子: Nginx 的编译安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表