文章目录
拓扑图
系统环境及软件版本
#centos7.4
#elasticsearch-6.1.3 :负责检索过滤,基于lucene的分布式搜索引擎,github是一个典例
#logstash-6.1.3 :负责搜集日志,并格式化输出到elasticsearch
#kibana-6.1.3 :一个用户友好的GUI控制界面,可从elasticsearch中读取数据并生成各种酷炫的图表
#jdk1.8支持 :安装jdk支持(建议选择对应的版本,尽量用新的)
#beats套件 :是一套轻量化的日志收集转发器,以agent的形式存在应用系统中并展开监视工作
filebeat :收集文本日志文件数据
#(这里选择filebeat-5.6.2,为什么不选6的版本,因为filebeat6版本的document_type字段到logstash无法识别为type)(可能换成了别的字段或则舍弃了)
packetbeat :收集网络流量
winlogbeat :搜集windows事件日志
安装jdk环境
#第一:安装openjdk1.8或者采用oracle-jdk1.8的二进制安装方式(不要使用jdk9,目前jdk9还是测试版)
yum install java-1.8.0-openjdk.x86_64
或则
去oracle官网wget最新的jdk.tar.gz包,然后解压,移到/根目录下,并重命名为jdk1.8
vim /etc/profile.d/java.sh
export JAVA_HOME=/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#第二:立即加载jdk环境
source /etc/profile
或则
. /etc/profile
#第三:验证jdk
java -version
ELK端配置Elasticsearch的环境
#由于新版本的安全考虑,不允许root用户运行Elasticsearch
useradd es -d /home/es
#(注意:如果直接以root运行,新版本可能会报错,因为elasticsearch考虑到会接收用户输入的脚本并执行,为了系统安全,需要创建一个单独的用户来运行elasticsearch)
mkdir /esdata
chown es:es /esdata
su - es
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.3.tar.gz
tar xf elasticsearch-6.1.3.tar.gz -C /home/es/
#编辑Elasticsearch的配置文件
vi elasticsearch-6.1.3/config/elasticsearch.yml
cluster.name: my-application #配置集群名称,无论是否计划建立集群,建议配置一个名称
#node.name: node-1 #该elasticsearch节点的名称,如果需要建立集群,该节点名称不可重复!!!
network.host: localhost #只允许本机访问
node.name: elk-server #本节点叫什么名字(若是集群才能体现价值)
path.data: /esdata #数据存放目录,运行elasticsearch的用户es需要对其有读写权限
#启动
/home/es/elasticsearch-6.1.3/bin/elasticsearch -d #注意是在普通用户下启动,在ELK中它要先于logstash启动 (直接运行就好,建议加-d后台运行 )
#验证
ss -tnl |grep 9200 #验证9200端口是否处于监听状态
[es@elk-server ~]$ curl localhost:9200
{
"name" : "elk-server",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "JfQt3JmRTBubVgcKYfWU3w",
"version" : {
"number" : "6.1.3",
"build_hash" : "af51318",
"build_date" : "2018-01-26T18:22:55.523Z",
"build_snapshot" : false,
"lucene_version" : "7.1.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
ELK端配置kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.1.3-linux-x86_64.tar.gz
tar xf kibana-6.1.3-linux-x86_64.tar.gz -C /home/es/
vi /home/es/kibana-6.1.3-linux-x86_64/config/kibana.yml
server.host: 192.168.1.40
#elasticsearch的地址,如果elasticsearch与kibana安装在不同服务器上,需要手动指定地址
elasticsearch.url: "http://localhost:9200"
#kibana服务器名称,如果有多个kibana节点,建议修改这个参数以便识别
#server.name: "your-hostname"
#kibana会在elasticsearch中创建一个索引用于存储kibana的设置,索引名称可以自定义。一般无需修改
#kibana.index: ".kibana"
#elasticsearch请求超时阈值,如果数据量及其庞大,可适当增加该值
#elasticsearch.requestTimeout: 30000
#启动
/home/es/kibana-6.1.3-linux-x86_64/bin/kibana &
ELK端配置Logstash
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.1.3.tar.gz
tar xf logstash-6.1.3.tar.gz -C /home/es
#测试logstash能否正常运行(:
A:原封不动的返回
/home/es/logstash-6.1.3/bin/logstash -e 'input {stdin {}} output {stdout{}}'
#等待一会儿,你在屏幕输入hello word看是否会有输出
B:以json的格式返回
/home/es/logstash-6.1.3/bin/logstash -e 'input{stdin{}}output{stdout{codec => rubydebug}}'
#等待一会儿,你在屏幕输入hello word看是否会有输出json格式
#为logstash创建conf.d目录,用于存放长久运行的配置文件(这个里面的配置文件名,建议使用数字开头,因为是按排序执行的)
mkdir /home/es/logstash-6.1.3/conf.d
logstash的配置文件完全不需要修改:
vi /home/es/logstash-6.1.3/config/logstash.yml
#logstash数据存储路径,保持默认即可
path.data: /var/lib/logstash
#logstash动态加载的配置文件,所有自定义的输入、输出和过滤配置都放置在这个目录中并以.conf结尾
path.config: /etc/logstash/conf.d/*.conf
#logstash日志文件路径,保持默认即可
path.logs: /var/log/logstash
logstash配置输入设置
vi /home/es/logstash-6.1.3/conf.d/filebeat.conf #创建配置文件
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
}
}
#启动
/home/es/logstash-6.1.3/bin/logstash -f /home/es/logstash-6.1.3/conf.d/filebeat.conf &
#一会儿后检查5044端口是否开启
ss -tnl |grep 5044
安装nginx和httpd-tools工具
#第一:将nginx.conf里面的server段删除(建议将文件先备份)
#第二:为nginx的web网页设置一个验证登录限制(通过htpasswd命令创建访问kibana的web账户验证)
sudo htpasswd -c /etc/nginx/htpasswd.users kibanaadmin
#密码我设置为123456
#第三:给nginx的conf.d目录下创建一个配置文件(为互联网上的client代理访问本机kvm-elk的5601端口)
vim /etc/nginx/conf.d/kibana.conf
server {
listen 80;
server_name kvm-elk;
auth_basic "please kibanaadmin's kou lin";
auth_basic_user_file /etc/nginx/htpasswd.users;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
#第四:检查测试nginx配置有无错误
nginx -t
#第五:检查无错误,便可以启动nginx
systemctl start nginx
#第六:通过访问nginx的80端口,就可访问kibana了
http://kvm-elk
下面是在应用服务器上部署日志搜集转发器
安装filebeat并为与logstash的通信
#在应用服务器上添加官方源
vi /etc/yum.repos.d/elk.repo
[elastic-5.x]
name=Elastic repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
#安装filebeat组件
yum install filebeat -y
#配置filebeat
vi /etc/filebeat/filebeat.yml
#------------input部分----------
filebeat.prospectors:
- type: log
paths:
- /var/log/nginx/access.log
tags: ["nginx-accesslog"]
document_type: nginx-access
#注意:filebeat在6版本里面,document_type字段好像不起作用
- type: log
paths:
- /var/log/nginx/error.log
tags: ["nginx-errorlog"]
document_type: nginx-error
#-------------output部分,将输出到Elasticsearch注释掉,开启输出到logstash----
output.logstash:
hosts: ["192.168.1.40:5044"]
#启动filebeat
systemctl start filebeat
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论