ELK实现nginx、mysql、http的日志可视化实验

avatar
作者
猴君
阅读量:0

API接口:

软件内部代码之间通信的接口 代码的连接点

端口是对外提供访问程序的内容接口

filebeat:

1、可以在本机收集日志

2、也可以远程收集日志

3、轻量级的日志收集系统,可以在非java环境运行

logstash是在jvm环境中运行,资源消耗很好,启动一个logstash要消耗500M左右的内存

filebeat只消耗10M左右的内存

5044 是logstash默认的端口

只要是logstash主机上没有被占用的端口都可以使用。大于1024都可以。

 nohup ./filebeat -e -c filebeat.yml > filebeat.out &

-e:输出到标准输出

-c:指定配置文件

nohup:在系统的后台运行,不会因为中端的关闭导致程序停止运行

可以把运行的日志保存到指定文件夹

apach日志可视化的操作:

yum -y install httpd [root@apache conf.d]# cd /etc/logstash/conf.d/ [root@apache conf.d]# vim httd.conf input {         file{                 path => "/etc/httpd/logs/access_log"                 type => "access"                 start_position => "beginning"         }         file{                 path => "/etc/httpd/logs/error_log"                 type => "error"                 start_position => "beginning"         } } output {         if [type] == "access" {                 elasticsearch {                         hosts => ["192.168.60.82:9200","192.168.60.83:9200"]                         index => "apache_access.%{+YYYY.MM.dd}"         }         }         if [type] == "error" {                 elasticsearch {                         hosts => ["192.168.60.82:9200","192.168.60.83:9200"]                         index => "apache_error.%{+YYYY.MM.dd}"         }         } ​ } [root@apache conf.d]# logstash -f http.conf --path.data /opt/test3 &

nginx日志可视化的操作:

[root@test3 opt]# rz -E rz waiting to receive. #将这个filebeat-6.7.2-linux-x86_64.tar.gz放到nginx的opt目录下 [root@test3 opt]# tar -xf filebeat-6.7.2-linux-x86_64.tar.gz  [root@test3 opt]# mv filebeat-6.7.2-linux-x86_64 /usr/local/filebeat [root@test3 filebeat]# cp filebeat.yml filebeat.yml.bak [root@test3 filebeat]# vim filebeat.yml  21 - type: log  22   enabled: true  23   paths:  24     - /usr/local/nginx/logs/access.log  25     - /usr/local/nginx/logs/error.log  26 #开启日志收集,以及确定日志文本的路径,指定标签和发送到目标主机的logstash  27   tags: ["nginx"]  28   fields:  29      service_name: 192.168.60.30_nginx  30      log_type: nginx  31      from: 192.168.60.30 151 #output.elasticsearch:          #将151行注释 153  # hosts: ["localhost:9200"]    #将153行注释 164 output.logstash:                #将164行取消注释 166   hosts: ["localhost:5045"]     #将166行取消注释 #进入Apach主机下的conf,d目录下 [root@apache conf.d]# vim nginx_30.conf  input {         beats { port => "5045"} } output {         if "nginx" in [tags] {                 elasticsearch {                 hosts => ["192.168.60.82:9200","192.168.60.83:9200"]                 index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"         }         } } [root@test3 filebeat]# nohup ./filebeat -e -c filebeat.yml > filebeat.out &     #先去nginx起 [root@apache ~]# logstash -f nginx_30.conf --path.data /opt/test4 &         

mysql+nginx+http的日志可视化操作:

[root@mysql1 ~]# vim /etc/my.cnf        #将mysql的日志文件打开 general_log=ON general_log_file=/usr/local/mysql/data/mysql_general.log [root@mysql1 ~]# yum -y install httpd nginx [root@mysql1 ~]# vim /etc/nginx/nginx.conf  39         listen       82;            #将39行的端口更改,防止端口冲突  40 #        listen       [::]:80;      #将40行注释 [root@mysql1 ~]# systemctl restart mysqld       #将3个服务起来 [root@mysql1 ~]# systemctl restart nginx [root@mysql1 ~]# systemctl restart httpd [root@mysql1 ~]# cd /opt/ [root@mysql1 opt]# rz -E rz waiting to receive. [root@mysql1 opt]# ls filebeat-6.7.2-linux-x86_64.tar.gz   [root@mysql1 opt]# tar -xf filebeat-6.7.2-linux-x86_64.tar.gz  [root@mysql1 opt]# mv filebeat-6.7.2-linux-x86_64 filebeat [root@mysql1 opt]# cd filebeat/ [root@mysql1 filebeat]# cp filebeat.yml filebeat.yml.bak [root@mysql1 filebeat]# vim filebeat.yml  21 - type: log  22   enabled: true  23   paths:  24     - /var/log/nginx/access.log  25     - /var/log/nginx/error.log  26 tags: ["nginx"]  27 fields:  28    service_name: 192.168.60.91_nginx  29    log_type: nginx  30    from: 192.168.60.91  31   32 - type: log  33   enabled: true  34   paths:  35     - /var/log/httpd/access_log  36     - /var/log/httpd/error_log  37 tags: ["httpd"]  38 fields:  39    service_name: 192.168.60.91_httpd  40    log_type: httpd  41    from: 192.168.60.91  42   43 - type: log  44   enabled: true  45   paths:  46     - /usr/local/mysql/data/mysql_general.log  47 tags: ["mysqld"]  48 fields:  49    service_name: 192.168.60.91_mysqld  50    log_type: mysqld  51    from: 192.168.60.91 171 #output.elasticsearch:              #将171行注释 173  # hosts: ["localhost:9200"]        #将173行注释 184 output.logstash:                    #将184行取消注释 186   hosts: ["192.168.60.91:5044"] [root@apache conf.d]# cd /etc/logstash/conf.d [root@apache conf.d]# vim nmh.conf input {          beats { port => "5047"} } output {         if "nginx" in [tags] {                 elasticsearch {                 hosts => ["192.168.60.82:9200","192.168.60.83:9200"]                 index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"         }         }                  if "mysqld" in [tags] {                 elasticsearch {                 hosts => ["192.168.60.82:9200","192.168.60.83:9200"]                 index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"         }         }                  if "httpd" in [tags] {                 elasticsearch {                 hosts => ["192.168.60.82:9200","192.168.60.83:9200"]                 index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"         }         } ​ } [root@mysql1 filebeat]# nohup ./filebeat -e -c filebeat.yml > filebeat.out & [root@apache conf.d]# logstash -f nmh.conf --path.data /opt/test7 &

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!