关于elk集群搭建请查看:https://blog.51cto.com/linyingyong/2084284

先上一个我最后弄出来的图形:

简单举例通过Kibana给运维展示直观精美的图形_第1张图片

环境 :

     nginx服务器  安装filebeat

配置:

    1.nginx配置

        nginx配置日志格式为json,修改nginx配置文件:


vim /usr/local/nginx/conf/nginx.conf 
在http标签下添加: 
log_format  logstash_json  '{ "@timestamp": "$time_local", '
                                '"@fields": { '
                                '"remote_addr": "$remote_addr", '
                                '"remote_user": "$remote_user", '
                                '"body_bytes_sent": "$body_bytes_sent", '                                
                                '"request_time": "$request_time", '                                
                                '"status": "$status", '                                
                                '"request": "$request", '                                
                                '"request_method": "$request_method", '                                
                                '"http_referrer": "$http_referer", '                                
                                '"body_bytes_sent":"$body_bytes_sent", '                                
                                '"http_x_forwarded_for": "$http_x_forwarded_for", '                                
                                '"http_user_agent": "$http_user_agent" } }';         
在需要收集日志server添加以下         access_log  logs/www.access.log  logstash_json;  # logstash_json需要和上面定义名字相同

           nginx从新加载,加载,就能看到新生成的日志就是json格式

/usr/local/nginx/sbin/nginx -t 
/usr/local/nginx/sbin/nginx -s reload

        生成后日志截图

简单举例通过Kibana给运维展示直观精美的图形_第2张图片

   2.安装配置filebeat



wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.2-x86_64.rpm 
rpm -ivh filebeat-6.2.2-x86_64.rpm 
编辑filebeat配置文件 
vim /etc/filebeat/filebeat.yml 
注释原来的: 

#- type: log 
#  paths:    
#    - /var/log/*.log 

在注释下面添加自己的定义的log 
- input_type: log  
  paths:      
    - /usr/local/nginx/logs/xxx.access.log   
  json.keys_under_root: true  #收集json格式   
  json.overwrite_keys: true   #收集json格式   
  fields:                   #当我们需要收集多个log并且分开命名需要     
    log_source: zhiliao-www          
  
#-------------------------- Elasticsearch output -------------------------- 
#配置输出 
setup.template.name: "zhiliao-nginx-01" 
setup.template.pattern: "zhiliao-nginx-01-*" 
output.elasticsearch:      
  hosts: ["192.168.10.63:9200"]      
  index: "zhiliao-nginx-01-%{+yyyy.MM.dd}" 
 
启动filebeat: /etc/init.d/filebeat start

    3. kinaba添加索引      



        输入zhiliao-nginx*自动匹配到了目前的索引,点击next step添加

简单举例通过Kibana给运维展示直观精美的图形_第3张图片简单举例通过Kibana给运维展示直观精美的图形_第4张图片



        4.自定义kinaba可视化显示


             网站状态码占比举例

简单举例通过Kibana给运维展示直观精美的图形_第5张图片


选择pie饼状图



简单举例通过Kibana给运维展示直观精美的图形_第6张图片

                选择刚才添加的nginx索引


简单举例通过Kibana给运维展示直观精美的图形_第7张图片

                 选择Split Slies

简单举例通过Kibana给运维展示直观精美的图形_第8张图片             


                Aggregation 选择 Terms

                Field字段选择 json传递过来后的字段,可以在首页查看到状态码是@fields.status

                Order By选择count

                Order :Descendi  个数8(这个显示多少自己定义,状态码显示8个够了)

                Custom Label:状态码:  (这个是在鼠标放在对应区域显示)

                然后点击三角箭头就可以预览




简单举例通过Kibana给运维展示直观精美的图形_第9张图片

                保存自定义的图表




简单举例通过Kibana给运维展示直观精美的图形_第10张图片

                

新建一个 Dashboard  加载我们添加的Visualization



简单举例通过Kibana给运维展示直观精美的图形_第11张图片简单举例通过Kibana给运维展示直观精美的图形_第12张图片简单举例通过Kibana给运维展示直观精美的图形_第13张图片简单举例通过Kibana给运维展示直观精美的图形_第14张图片