上篇博文主要总结了一下elk、基于kafka的zookeeper集群搭建,以及系统日志通过zookeeper集群达到我们集群的整个过程。下面我们接着下面这个未完成的几个主题

4.Kibana部署;

5.Nginx负载均衡Kibana请求;

6.案例:nginx日志收集以及MySQL慢日志收集;

7.Kibana报表基本使用;

Kibana的部署;

Kibana的作用,想必大家都知道了就是一个展示工具,报表内容非常的丰富;

下面我们在两台es上面搭建两套kibana

1.获取kibana软件包

[root@es1 ~]# wget https://download.elastic.co/kibana/kibana/kibana-4.1.2-linux-x64.tar.gz
[root@es1 ~]# tar -xf kibana-4.2.0-linux-x64.tar.gz -C /usr/local/

2.修改配置文件

[root@es1 ~]# cd /usr/local/
[root@es1 local]# ln -sv kibana-4.1.2-linux-x64 kibana
`kibana' -> `kibana-4.2.0-linux-x64'
[root@es1 local]# cd kibana[root@es1 kibana]# vim config/kibana.yml
server.port: 5601      #默认端口可以修改的
server.host: "0.0.0.0" #kibana监听的ip
elasticsearch.url: "http://localhost:9200" #由于es在本地主机上面,所以这个选项打开注释即可

3.提供kibana服务管理脚本,我这里写了个相对简单的脚本

[root@es1 config]# cat /etc/init.d/kibana
#!/bin/bash
#chkconfig: 2345 55 24
#description: kibana service managerKIBBIN='/usr/local/kibana/bin/kibana'
LOCK='/usr/local/kibana/locks'START() {if [ -f $LOCK ];thenecho -e "kibana is already \033[32mrunning\033[0m, do nothing."elseecho -e "Start kibana service.\033[32mdone\033[m"cd  /usr/local/kibana/binnohup ./kibana & >/dev/nulltouch $LOCKfi
}STOP() {if [ ! -f $LOCK ];thenecho -e "kibana is already stop, do nothing."elseecho -e "Stop kibana serivce \033[32mdone\033[m"rm -rf $LOCKps -ef | grep kibana | grep -v "grep" | awk '{print $2}' | xargs kill -s 9 >/dev/nullfi
}STATUS() {Port=$(netstat -tunl | grep ":5602")if [ "$Port" != "" ] && [ -f $LOCK ];thenecho -e "kibana is: \033[32mrunning\033[0m..."elseecho -e "kibana is: \033[31mstopped\033[0m..."fi
}case "$1" instart)START;;stop)STOP;;status)STATUS;;restart)STOP sleep 2START;;*)echo "Usage: /etc/init.d/kibana (|start|stop|status|restart)";;
esac

4.启动kibana服务

[root@es1 config]# chkconfig --add kibana
[root@es1 config]# service kibana start
Start kibana service.done
[root@es1 config]#

5.服务检查

[root@es1 config]# ss -tunl | grep "5601"
tcp    LISTEN     0      511                    *:5601                  *:*
[root@es1 config]#

ok,此时我直接访问es1这台主机的5601端口

ok,能成功的访问5601端口,那我把es1这台的配置放到es2上面去然后启动,效果跟访问es1一样

Nginx负载均衡kibana的请求

1.在nginx-proxy上面yum安装nginx

yum install -y nignx

2.编写配置文件es.conf

[root@saltstack-node1 conf.d]# pwd
/etc/nginx/conf.d
[root@saltstack-node1 conf.d]# cat es.conf
upstream es {server 192.168.2.18:5601 max_fails=3 fail_timeout=30s;server 192.168.2.19:5601 max_fails=3 fail_timeout=30s;
}server {listen       80;server_name  localhost;location / {proxy_pass http://es/;index index.html index.htm;#authauth_basic "ELK Private";auth_basic_user_file /etc/nginx/.htpasswd;}}

3.创建认证

[root@saltstack-node1 conf.d]# htpasswd -cm /etc/nginx/.htpasswd elk
New password:
Re-type new password:
Adding password for user elk-user
[root@saltstack-node1 conf.d]# /etc/init.d/nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]
[root@saltstack-node1 conf.d]#

4.直接输入认证用户及密码就可访问啦http://192.168.2.21/

Nginx及MySQL慢日志收集

首先我们在webserver1上面都分别安装了nginx 及mysql.

1.为了方便nginx日志的统计搜索,这里设置nginx访问日志格式为json

(1)修改nginx主配置文件

说明:如果想实现日志的报表展示,最好将业务日志直接以json格式输出,这样可以极大减轻cpu负载,也省得运维需要写负载的filter过滤正则。

[root@webserver1 nginx]# vim nginx.conf
log_format json '{"@timestamp":"$time_iso8601",''"@version":"1",''"client":"$remote_addr",''"url":"$uri",''"status":"$status",''"domain":"$host",''"host":"$server_addr",''"size":$body_bytes_sent,''"responsetime":$request_time,''"referer": "$http_referer",''"ua": "$http_user_agent"''}';access_log  /var/log/access_json.log  json;

(2)收集nginx日志和MySQL日志到消息队列中;这个文件我们是定义在客户端,即生产服务器上面的Logstash文件哦.

注意:这里刚搭建完毕,没有什么数据,为了展示效果,我这里导入了线上的nginx和MySQL慢日志

input {file {             #从nginx日志读入type => "nginx-access"path => "/var/log/nginx/access.log"start_position => "beginning"codec => "json"  #这里指定 codec格式为json}file {  #从MySQL慢日志读入type => "slow-mysql"path => "/var/log/mysql/slow-mysql.log"start_position => "beginning"codec => multiline {         #这里用到了logstash的插件功能,将本来属于一行的多行日志条目整合在一起,让他属于一条   pattern => "^# User@Host"  #用到了正则去匹配negate => truewhat => "previous"}}
}output {
#  stdout { codec=> rubydebug }if [type] == "nginx-access" {    #通过判断input中定义的type,来让它在kafka集群中生成的主题名称kafka {                        #输出到kafka集群bootstrap_servers => "192.168.2.22:9092,192.168.2.23:9092,192.168.2.24:9092"  #生产者们topic_id => "nginx-access"   #主题名称compression_type => "snappy" #压缩类型}}if [type] == "slow-mysql" {kafka {bootstrap_servers => "192.168.2.22:9092,192.168.2.23:9092,192.168.2.24:9092"topic_id => "slow-mysql"compression_type => "snappy"}}
}

(3)Logstash 从kafka集群中读取日志存储到es中,这里的定义logstash文件是在三台kafka服务器上面的哦,并且要保持一致,你可以在一台上面修改测试好之后,拷贝至另外两台即可。

input {kafka {zk_connect => "192.168.2.22:2181,192.168.2.23:2181,192.168.2.24:2181"type => "nginx-access"topic_id => "nginx-access"codec => plainreset_beginning => falseconsumer_threads => 5decorate_events => true}kafka {zk_connect => "192.168.2.22:2181,192.168.2.23:2181,192.168.2.24:2181"type => "slow-mysql"topic_id => "slow-mysql"codec => plainreset_beginning => falseconsumer_threads => 5decorate_events => true}
}output {
#  stdout { codec=> rubydebug }if [type] == "nginx-access" {elasticsearch {hosts => ["192.168.2.18:9200","192.168.2.19:9200"]index => "nginx-access-%{+YYYY-MM}"}}if [type] == "slow-mysql" {elasticsearch {hosts => ["192.168.2.18:9200","192.168.2.19:9200"]index => "slow-mysql-%{+YYYY-MM}"}}
}

通过上图可以看到,nginx日志以及MySQL慢日志已经成功抵达es集群

然后我们在kibana上面创建索引就可以啦

(4)创建nginx-access 日志索引

此时就可以看到索引啦

(5)创建MySQL慢日志索引

p

MySQL的索引也出来啦

Kibana报表展示

kibana报表功能非常的强大,也就是可视化;可以制作出下面不同类型的图形

下面就是我简单的一些图形展示

由于篇幅问题,可以看官方介绍。

参考:

https://github.com/liquanzhou/ops_doc/tree/master/Service/kafka

http://www.lujinhong.com/kafka%E9%9B%86%E7%BE%A4%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97.html

http://www.it165.net/admin/html/201405/3192.html

http://blog.csdn.net/lizhitao/article/details/39499283

https://taoistwar.gitbooks.io/spark-operationand-maintenance-management/content/spark_relate_software/zookeeper_install.html

来源:http://blog.sctux.com/?p=451

ELK+Kafka 企业日志收集平台(二)这是原版相关推荐

  1. ELK+Kafka 企业日志收集平台(二)

    上篇博文主要总结了一下elk.基于kafka的zookeeper集群搭建,以及系统日志通过zookeeper集群达到我们集群的整个过程.下面我们接着下面这个未完成的几个主题 4.Kibana部署; 5 ...

  2. ELK+Kafka 企业日志收集平台(一)

    背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis ...

  3. 部署ELK+Kafka+Filebeat日志收集分析系统

    ELK+Kafka+Filebeat日志系统 文章目录 ELK+Kafka+Filebeat日志系统 1.环境规划 2.部署elasticsearch集群 2.1.配置es-1节点 2.2.配置es- ...

  4. 搭建elk+logstash+kafka+filebeat日志收集平台

    文章目录 前言 组件介绍 原理图 环境介绍 安装 日志收集与展示 前言 在日常的运维过程中,对系统日志和业务日志的处理比较重要,对于以后的数据分析.排查异常问题有很重的作用.今天就分享一个自己基于ka ...

  5. ELK+Kafka分布式日志收集系统环境搭建

    一.ES与kafka环境搭建 1.使用Docker搭建Elasticsearch Docker安装ES 2.使用Docker搭建Kafka,因为这里是演示,所以Kafka没有搭建集群. Docker安 ...

  6. 【Kafka】kafka日志收集平台搭建(二)

    继上一篇博文初步搭建好kafka+zookeeper+filebeat的集群平台后,这次我们继续给此集群添加功能并完善. 数据入库(python实现) 需求分析 需要nginx日志的ip,时间,带宽字 ...

  7. CentOS 6.8下ELK+filebeat+redis 日志分析平台

    转载来源 :ELK+filebeat+redis 日志分析平台 :https://www.jianshu.com/p/bf2793e85d18 一.简介 ELK Stack是软件集合Elasticse ...

  8. 网页版本的飞行日志分析平台是_一个轻便的实时日志收集平台wslog

    一个轻便的实时日志收集平台wslog wslog原理 利用github.com上无数的slack hook 日志工具sdk 遵循 slack hook API 规范 https://api.slack ...

  9. 实战:kafka实现日志收集系统

    实战:kafka实现日志收集系统 一.Kafka案例需求概述 1.1 需要收集的信息: 用户唯一标识 用户操作时间 具体用户操作 1.2 工作流程: 用户的操作会由Web服务器进行响应. 同时用户的操 ...

最新文章

  1. c# winform listview 删除
  2. 黑马程序员——OC语言基本语法知识(一)
  3. poj2318 TOYS
  4. mdkstc系列器件支持包下载_WPS Office 2019 For Linux(2020/10/21)更新-支持PDF编辑
  5. pthread_create函数 参数不匹配的问题
  6. 关于NSKeyedArchiver的编码格式
  7. inrange函数_掌握这些数学函数,你会在算法效率的分析时经常用到
  8. MyEclipse项目无法自动编译解决方案
  9. 冒泡排序(【CCF】NOI Online能力测试 提高组第二题)
  10. html贪吃蛇怎么加蛇尾,贪吃蛇制作移动+pc
  11. 06 is和==的区别 encode()编码 decode()解码
  12. oracle新建定时任务,Oracle创建定时任务
  13. 零信任在智慧城市典型场景中的融合应用
  14. JavaScript开发必备!这四款静态代码分析工具你了解吗
  15. MySQL 高可用MMM
  16. Android9 更改系统默认输入法
  17. 计算机显卡内存分布查看,Win10电脑查看显卡内存的详细教程
  18. 最终分化的SH-SY5Y细胞为研究多巴胺激动剂的神经保护作用提供了一个模型系统
  19. 微信支付-当前页面的URL未注册
  20. Y7000 2018版(I7-8650H 1050T)黑苹果安装攻略附带工具安装包

热门文章

  1. python3 exe_Windows10下python3和python2同时安装 python2.exe、python3.exe和pip2、pip3设置
  2. web展现mysql_web页面实现LED跑马灯效果(涉及web前端、原生JS、PHP、mysql)
  3. 43_pytorch nn.Module,模型的创建,构建子模块,API介绍,Sequential(序号),ModuleList,ParameterList,案例等(学习笔记)
  4. 22个激活函数,ReLU、RReLU、LeakyReLU、PReLU、Sofplus、ELU、CELU、SELU、GELU、ReLU6、Sigmoid、Tanh、Softsign、Hardtanh等
  5. 1.Android中解析json程序代码
  6. 2.QT中使用资源文件,程序打包
  7. DispatcherServlet代码分析及运行过程
  8. eclips mysql jndi_Eclipse +Tomcat配置JNDI数据源
  9. 初探AngularJs框架(三)
  10. 业务分析之--权限管理