ELK对业务日志进行收集
下载httpd
进到文件设置收集httpd的文件进行 设置
编辑内容 用于收集日志的内容 将日志的内容发送到实例当中
bash
input {
file{
path => /etc/httpd/logs/access_log
type => "access"
start_position => "beginning"
}
file{
path => /etc/httpd/logs/access_log
type => "error"
start_position => "beginning"
}
}
output {
if [type] == "access" {
elasticsearch {
hosts => ["20.0.0.13:9200","20.0.0.14:9200"]
index => "apache_access-%{+YYYY.MM.dd}"
}
}
if [type] == "error" {
elasticsearch {
hosts => ["20.0.0.13:9200","20.0.0.14:9200"]
index => "apache_error-%{+YYYY.MM.dd}"
}
}
启动文件
bash
logstash -f http.conf --path.data /opt/test5 &
API接口:
软件内部代码之间通信的接口,代码的连接点
端口是对外提供访问程序的内容接口
页面访问httpd刷新
查看创建索引
filebeat安装 移动
filebeat:
1、可以在本机收集日志
2、也可以远程收集日志
3、轻量级的日志收集系统,可以再非java环境下运行
logstash是在jvm环境中运行,资源消耗很好,启动一个logstash要消耗500M左右的内存
filebeat只消耗十M左右的内存
打开文件 。yml
开启日志收集,以及确定日志文件的路径,指定标签和发送到目标主机的logstash
指定的是es展示的ip+端口 IP不是指定的只要是logstash主机上没有被占用的端口都可以使用,大于1024即可
要注释掉的
文件名是对方的主机地址
这里的端口和上面自己设置的是一样的
这里是指定往哪里发送
bash
input {
beats { port => "5045" }
}
output {
if "nginx" in [tags] {
elasticsearch {
hosts => ["20.0.0.13:9200","20.0.0.14:9200"]
index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
}
}
bash
这个配置文件里的service_name就是之前在
[root@sysql1 filebeat]# vim filebeat.yml
[root@sysql1 filebeat]# pwd
/usr/local/filebeat
这个目录下设置的_nginx
bash
nohup ./filebeat -e -c filebeat.yml > filebeat.out &
-e:输出到标准输出
-c:指定配置文件
nohup:在系统的后台运行,不会因为终端的关闭导致后台停止运行
> : 可以把运行的日志文件保存到指定的文件
启动设置好的配置文件
如果页面访问不了 刷新一下
如果还不行就进入虚拟机启动脚本并将他放入后台运行
mysql
nginx
httpd
通过远程收集发送到 logstash
ip +_mysql-*
ip +_nginx-*
ip +_httpd-*
mysql的日志文件 用于二进制收集文件的路径
修改端口nginx的端口 不然两个服务端口冲突 可修改任意 然后页面访问查看
nginx nginx的日志存放路径
httpd 日志存放路径
mysql 日志存放路径
bash
- type: log
enabled: true
paths:
- /var/log/nginx/access.log
- /var/log/nginx/error.log
tags: ["nginx"]
fields:
service_name: 20.0.0.40_nginx
log_type: nginx
from: 20.0.0.40
- type: log
enabled: true
paths:
- /var/log/httpd/access_log
- /var/log/httpd/error_log
tags: ["httpd"]
fields:
service_name: 20.0.0.40_httpd
log_type: httpd
from: 20.0.0.40
- type: log
enabled: true
paths:
- /usr/local/mysql/data/mysql_general.log
tags: ["mysqld"]
fields:
service_name: 20.0.0.40_mysqld
log_type: mysql
from: 20.0.0.40
脚本修改名字
bash
input {
beats { port => "5050" }
}
output {
if "nginx" in [tags] {
elasticsearch {
hosts => ["20.0.0.13:9200","20.0.0.14:9200"]
index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
}
}
if "httpd" in [tags] {
elasticsearch {
hosts => ["20.0.0.13:9200","20.0.0.14:9200"]
index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
}
}
if "mysqld" in [tags] {
elasticsearch {
hosts => ["20.0.0.13:9200","20.0.0.14:9200"]
index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
}
}
}
bash
nohup ./filebeat -e -c filebeat.yml > filebeat.out &
[1] 20372
[root@sysql1 filebeat]# nohup: 忽略输入重定向错误到标准输出端
bash
logstash -f nmh_40.conf --path.data /opt/test7 &
页面访问
kiabana上边就已经可以展示了