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

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 &
相关推荐
运维&陈同学12 小时前
【Beats01】企业级日志分析系统ELK之Metricbeat与Heartbeat 监控
运维·elk·elasticsearch·云原生·kibana·heartbeat·metricbeat
幽弥千月4 天前
【ELK】ES单节点升级为集群并开启https【亲测可用】
elk·elasticsearch·https
IT猿手4 天前
基于PWLCM混沌映射的麋鹿群优化算法(Elk herd optimizer,EHO)的多无人机协同路径规划,MATLAB代码
算法·elk·机器学习·matlab·无人机·聚类·强化学习
流穿4 天前
ELK系列-(六)Redis也能作为消息队列?(下)
数据库·redis·ubuntu·elk·docker·容器
流穿4 天前
ELK系列-(五)指标收集-MetricBeat(下)
linux·运维·ubuntu·elk·docker·容器
流穿6 天前
ELK系列-(五)指标收集-MetricBeat(上)
ubuntu·elk·elasticsearch·docker
高hongyuan6 天前
Linux环境下 搭建ELk项目 -单机版练习
大数据·运维·服务器·elk·elasticsearch·搜索引擎
运维&陈同学7 天前
【Elasticsearch04】企业级日志分析系统ELK之Elasticsearch 插件
大数据·运维·后端·elk·elasticsearch·搜索引擎·全文检索·哈希算法
幽弥千月8 天前
【ELK】Filebeat采集Docker容器日志
elk·docker·容器
运维&陈同学9 天前
【Elasticsearch03】企业级日志分析系统ELK之Elasticsearch访问与优化
大数据·elk·elasticsearch·搜索引擎·云原生·全文检索·高可用