ELK对业务日志进行收集
下载httpd
进到文件设置收集httpd的文件进行 设置
编辑内容 用于收集日志的内容 将日志的内容发送到实例当中
input {file{path => /etc/httpd/logs/access_logtype => "access"start_position => "beginning"}file{path => /etc/httpd/logs/access_logtype => "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}"}}
启动文件
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即可
要注释掉的
文件名是对方的主机地址
这里的端口和上面自己设置的是一样的
这里是指定往哪里发送
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}"}}
这个配置文件里的service_name就是之前在[root@sysql1 filebeat]# vim filebeat.yml
[root@sysql1 filebeat]# pwd
/usr/local/filebeat这个目录下设置的_nginx
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 日志存放路径
- type: logenabled: truepaths:- /var/log/nginx/access.log- /var/log/nginx/error.logtags: ["nginx"]fields:service_name: 20.0.0.40_nginxlog_type: nginxfrom: 20.0.0.40- type: logenabled: truepaths:- /var/log/httpd/access_log- /var/log/httpd/error_logtags: ["httpd"]fields:service_name: 20.0.0.40_httpdlog_type: httpdfrom: 20.0.0.40- type: logenabled: truepaths:- /usr/local/mysql/data/mysql_general.logtags: ["mysqld"]fields:service_name: 20.0.0.40_mysqldlog_type: mysqlfrom: 20.0.0.40
脚本修改名字
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}"}}}
nohup ./filebeat -e -c filebeat.yml > filebeat.out &
[1] 20372
[root@sysql1 filebeat]# nohup: 忽略输入重定向错误到标准输出端
logstash -f nmh_40.conf --path.data /opt/test7 &
页面访问
kiabana上边就已经可以展示了