当前位置:   article > 正文

安装部署ELK收集nginx日志

elk收集nginx日志

一.安装部署ELK

1.1环境准备

主机名 :node1

IP地址192.168.121.147
角色es01,redis01

主机名 :node2

IP地址192.168.121.148
角色es02,redis02

主机名 :node3

IP地址118.190.146.109
角色es03,tomcat,nginx

三台机器都是CentOS 7.6,内存>=3G

1、设置主机名和hosts解析

cat >> /etc/hosts << EOF
192.168.121.147 node1 
192.168.121.148 node2 
118.190.146.109 node3
EOF
  • 1
  • 2
  • 3
  • 4
  • 5

2、时间同步
3、部署jdk
三台机器都部署jdk,建议内存3G以上

 rpm -ivh jdk-8u144-linux-x64.rpm
 java -version
  • 1
  • 2

在这里插入图片描述

1.2 部署ElasticSearch集群环境
1.2.1 安装Elasticsearch
# vim /etc/yum.repos.d/elk.repo
[elk] name=elk 7.x 
baseurl=https://mirrors.tuna.tsinghua.edu.cn/elasticstack/yum/elastic-7.x/
gpgcheck=0
  • 1
  • 2
  • 3
  • 4

这里我是用的都是离线rpm包
安装:# yum install -y elasticsearch-7.2.0
如果缺少epel源

yum -y install epel-release
  • 1
1.2.2 配置Elasticsearch集群

node1节点的配置

# 备份
cp /etc/elasticsearch/elasticsearch.yml{,.bak}
grep '^[a-Z]' /etc/elasticsearch/elasticsearch.yml

#修改主节点相关配置
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-elk 
node.name: node1
path.data: /var/lib/elasticsearch 
path.logs: /var/log/elasticsearch
network.host: 192.168.121.147 http.port: 9200 
discovery.seed_hosts: ["node1", "node2", "node3"] 
cluster.initial_master_nodes: ["node1"]

#行末添加

node.master: true 
node.data: false 
node.ingest: false node.ml: false 
cluster.remote.connect: false
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

在这里插入图片描述

(1)安装head插件

 yum install -y nodejs npm
  • 1

(2)下载head插件

cd /var/lib/elasticsearch/

wget https://github.com/mobz/elasticsearch-head/archive/master.zip

#解压
yum install unzip
unzip master.zip
(3)安装依赖包

yum install openssl bzip2 unzip -y
下载运行head必要的文件(放置在文件夹/tmp下)
cd /tmp 
wget https://npm.taobao.org/mirrors/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

用以下命令把下载到的包添加到npm cache目录中 
npm cache add phantomjs

开始安装依赖:
cd -
cd elasticsearch-head-master/

# 直接使用npm安装时间久,依赖网络,替换我淘宝的cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

# 安装依赖
cnpm install
  • 1
  • 2

在这里插入图片描述

(4)修改配置文件

vim Gruntfile.js
#找到并修改
options: {
				port: 9100, 
				base: '.', 
				keepalive: true,
				 hostname: '*' 
		 }
## 注意:true后面有逗号
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述
修改elasticsearch-head默认连接地址,将localhost改为本机IP

 vim _site/app.js
 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || 	"http:192.168.121.148:9200";
  • 1
  • 2

在这里插入图片描述
(5)修改elasticSearch配置文件并启动ElasticSearch
修改elasticsearch的配置文件elasticsearch.yml,以允许跨域访问,在文末追加如下代码即可

http.cors.enabled: true 
http.cors.allow-origin: "*"
  • 1
  • 2

重启:

systemctl restart elasticsearch
启动插件:
# cd /var/lib/elasticsearch/elasticsearch-head-master/
# nohup ./node_modules/grunt/bin/grunt server &
访问IP:9100就能看到我们集群信息
在这里插入图片描述

二.部署Kibana及nginx代理访问环境

1、kibana安装配置

yum install -y https://mirrors.tuna.tsinghua.edu.cn/elasticstack/yum/elastic-7.x/7.2.0/kibana-7.2.0-x86_64.rpm
  • 1

可以配置多个端口的kibana,每个系统单独开一个kibana端口号,比如财务系统kibana使用5601端
口、租赁系统kibana使用5602,然后nginx做代理访问配置。

[root@elk-node03 ~]# cp -r /etc/kibana/ /etc/cw-5601-kibana
[root@elk-node03 ~]# cp -r /etc/kibana/ /etc/zl-5602-kibana
vim /etc/cw-5601-kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
kibana.index: ".cw-kibana"
elasticsearch.hosts: ["http://192.168.121.147:9200"]
vim /etc/zl-5602-kibana/kibana.yml
server.port: 5602
server.host: "0.0.0.0"
kibana.index: ".zl-kibana"
elasticsearch.hosts: ["http://192.168.121.147:9200"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

提供服务脚本:

cp -a /etc/systemd/system/kibana.service /etc/systemd/system/kibana_cw.service
修改:
ExecStart=/usr/share/kibana/bin/kibana "-c /etc/cw-5601-kibana/kibana.yml"
cp -a /etc/systemd/system/kibana.service /etc/systemd/system/kibana_zl.service
修改:
ExecStart=/usr/share/kibana/bin/kibana "-c /etc/zl-5602-kibana/kibana.yml"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
启动服务:

systemctl daemon-reload
systemctl start kibana_cw.service kibana_zl.service
systemctl enable kibana_cw.service kibana_zl.service
  • 1
  • 2
  • 3

查看:

 lsof -i:5601
 lsof -i:5601
  • 1
  • 2

在这里插入图片描述
访问IP:5601

在这里插入图片描述
配置访问验证

# cat /etc/nginx/conf.d/cw_kibana.conf
server {
listen 15601;
server_name localhost;
location / {
proxy_pass http://192.168.150.13:5601/;
auth_basic "Access Authorized";
auth_basic_user_file /etc/nginx/conf.d/cw_auth_password;
}
}

# cat /etc/nginx/conf.d/zl_kibana.conf
server {
listen 15602;
server_name localhost;
location / {
proxy_pass http://192.168.150.13:5602/;
auth_basic "Access Authorized";
auth_basic_user_file /etc/nginx/conf.d/zl_auth_password;
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

在这里插入图片描述

#下载工具
yum install httpd-tools
htpasswd -c /etc/nginx/conf.d/cw_auth_password cwlog
htpasswd -c /etc/nginx/conf.d/zl_auth_password zllog
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

启动nginx

# nginx -t
# systemctl restart nginx
# systemctl enable nginx
  • 1
  • 2
  • 3

访问IP:15601
在这里插入图片描述
在这里插入图片描述

三.ELK日志收集

3.1 客户机日志收集操作(Logstash
3.1.1 logstash 介绍

LogStash由JRuby语言编写,基于消息(message-based)的简单架构,并运行在Java虚拟机
(JVM)上。不同于分离的代理端(agent)或主机端(server),LogStash可配置单一的代理端
(agent)与其它开源软件结合,以实现不同的功能。
logStash的四大组件

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/579128
推荐阅读
相关标签