前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS7安装elk,并监控Nginx的access.log日志

CentOS7安装elk,并监控Nginx的access.log日志

作者头像
院长技术
修改2020-08-21 15:09:05
9080
修改2020-08-21 15:09:05
举报
文章被收录于专栏:院长运维开发院长运维开发

请收藏院长技术站点,网址为:https://myit.icu

我写的这篇文档的时候,是临时安装的最新版本:7.8.1

kibana和es和被监控的nginx是三台机器

安装Elasticsearch

安装阿里源:

代码语言:javascript
复制
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && yum makecache

安装epel源:

代码语言:javascript
复制
yum -y install epel-release && yum clean all && yum makecache

安装常用软件:

代码语言:javascript
复制
yum install lrzsz screen -y

关闭防火墙:

代码语言:javascript
复制
systemctl stop firewalld && systemctl disable firewalld

关闭selinux:

代码语言:javascript
复制
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config && /usr/sbin/setenforce 0

安装elasticsearch的yum源的密钥:

代码语言:javascript
复制
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

修改vm.max_map_count的大小:

代码语言:javascript
复制
vim /etc/sysctl.conf
vm.max_map_count=655360

使之生效

代码语言:javascript
复制
sysctl -p

修改系统进程最大打开文件数:

代码语言:javascript
复制
vim /etc/security/limits.conf
添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 65535
* hard nproc 65535

更新时间:

代码语言:javascript
复制
[root@elk ~]# crontab -l
#update time
*/5 * * * * /usr/sbin/ntpdate  ntp1.aliyun.com >/dev/null 2>&1

elastic需要安装Java依赖

详细安装java参考https://www.cnblogs.com/sxdcgaq8080/p/7492426.html

最小化安装默认不自带java 可以直接安装

代码语言:javascript
复制
yum install java -y
yum install java-1.8.0-openjdk* -y

也可以rpm安装:

代码语言:javascript
复制
rpm -ivh jdk-8u231-linux-x64.rpm

查看版本:

代码语言:javascript
复制
java -version

安装ES7.8.1

代码语言:javascript
复制
rpm -ivh elasticsearch-7.8.1.rpm

生成es配置文件:

代码语言:javascript
复制
cat >/etc/elasticsearch/elasticsearch.yml <<EOF
#cluster.name : my-application  #这里不需要开启
node.name: node-1
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 你的es地址,127.0.0.1
http.port: 9200
http.cors.enabled: true 
http.cors.allow-origin: "*"
cluster.initial_master_nodes: ["node-1"]
EOF

参数解析:

代码语言:javascript
复制
第17行: 17 #cluster.name : my-application         #集群名称
第23行: 23 #node.name : node-1                    #节点名称
第33行: 33 #path.data :                           #数据存放路径
第37行: 37 #path.logs :                           #日志存放路径
第55行: 55 #network.host :                        #这个地址要修改为elasticsearch所在的地址
第59行: 59 #http.port : 9200                      #通信端口

创建es数据目录:

代码语言:javascript
复制
mkdir -p /data/elasticsearch

修改es数据目录所属组和所属用户:

代码语言:javascript
复制
chown -R elasticsearch.elasticsearch /data/elasticsearch

适当调整指定jvm内存:机器内存大,数据大,可以给4G

代码语言:javascript
复制
sed -i "s/\-Xms1g/\-Xms2g/g" /etc/elasticsearch/jvm.options
sed -i "s/\-Xmx1g/\-Xmx2g/g" /etc/elasticsearch/jvm.options

创建es服务配置目录:

代码语言:javascript
复制
mkdir /etc/systemd/system/elasticsearch.service.d

禁用交换分区:

Ps:可以用curl -X GET "localhost:9200/_nodes?filter_path=**.mlockall" 来查看。如果"mlockall": false说明请求失败。日志里面还会有警告信息:memory locking requested for elasticsearch process but memory is not locked。可能是因为运行es的用户没有锁定内存的权限。

解决方法:

代码语言:javascript
复制
如果es是用tar或者zip包安装:
#ulimit -l unlimited,或者
#/etc/security/limits.conf添加
elasticsearch - nofile 65536
代码语言:javascript
复制
rpm包安装的:我们这里采用的此项
cat >/etc/systemd/system/elasticsearch.service.d/override.conf<<EOF
[Service]
LimitMEMLOCK=infinity
EOF

重新加载配置文件:

代码语言:javascript
复制
systemctl daemon-reload

启动并开机自启服务:

代码语言:javascript
复制
systemctl enable elasticsearch.service --now

访问es:

代码语言:javascript
复制
http://你的es地址:9200

已经成功访问,如果出现打不开请检查防火墙,安全组,使用netstat -tunlp查看端口情况

安装kibana

安装kibana包:

代码语言:javascript
复制
[root@elk ~]# rpm -ivh jdk-8u231-linux-x64.rpm
[root@elk ~]# rpm -ivh kibana-7.8.1-x86_64.rpm
[root@elk ~]# rpm -qc kibana 
/etc/kibana/kibana.yml

修改配置文件:

代码语言:javascript
复制
[root@elk ~]# grep "^[a-Z]" /etc/kibana/kibana.yml 
server.port: 5601
server.host: "kibana地址"
server.name: "elk"
elasticsearch.hosts: ["http://你的es地址:9200"]
kibana.index: ".kibana"

启动并开机自启kibana:

代码语言:javascript
复制
[root@kibana ~]# systemctl enable kibana.service --now

查看kibana端口:

代码语言:javascript
复制
[root@elk ~]# netstat -tulnp | grep 5601
tcp        0      0 kibana地址:5601       0.0.0.0:*               LISTEN      20501/node 

浏览器访问:

代码语言:javascript
复制
http://你的kibana地址:5601
出现Kibana server is not ready yet,需要稍等片刻,因为启动非常慢,没有启动完成

在nginx机器上安装nginx

新建nginx源:

代码语言:javascript
复制
cat >/etc/yum.repos.d/nginx.repo<<EOF

[nginx-stable]

name=nginx stable repo

baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/

gpgcheck=1

enabled=1

gpgkey=https://nginx.org/keys/nginx_signing.key

module_hotfixes=true

 

[nginx-mainline]

name=nginx mainline repo

baseurl=http://nginx.org/packages/mainline/centos/\$releasever/\$basearch/

gpgcheck=1

enabled=0

gpgkey=https://nginx.org/keys/nginx_signing.key

module_hotfixes=true

EOF

清理缓存:

代码语言:javascript
复制
yum clean all

重新生成缓存:

代码语言:javascript
复制
yum makecache

安装nginx和ab工具:

代码语言:javascript
复制
yum -y install nginx httpd-tools

启动并开机自启nginx服务和查看服务状态:

代码语言:javascript
复制
systemctl enable nginx --now && systemctl status nginx

安装filebeat

代码语言:javascript
复制
rpm -ivh filebeat-7.8.1-x86_64.rpm

配置filebeat收集nginx日志

filebeat负责传输nginx日志到ES中,对日志的检测类似于 tail -f

vim /etc/filebeat/filebeat.yml
代码语言:javascript
复制
filebeat.inputs:

- type: log

 enabled: true

 paths:

  - /var/log/nginx/access.log

output.elasticsearch:

 hosts: ["你的es地址:9200"]

启动并开机自启filebeat服务:

代码语言:javascript
复制
systemctl enable filebeat.service --now

ab工具压测访问nginx

ab工具压测访问nginx,42.51.225.39/后面的“/”,需要加上,否则压测失败
代码语言:javascript
复制
[root@nginx-1 ~]# ab -c 100 -n 100 http://你的本机nginx的ip/

统计日志记录:

代码语言:javascript
复制
[root@nginx-1 ~]# wc -l /var/log/nginx/access.log 

100 /var/log/nginx/access.log

查看ES,已成功写入100条日志数据

可以用命令查看es索引数据,也可以通过es-head图形化插件来查看

代码语言:javascript
复制
[root@es ~]#curl -X GET 'http://localhost:9200/_cat/indices?v'
health status index                            uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .monitoring-kibana-7-2020.08.18  vRSBTqYSQ7igH3DR58mNQA   1   0       7340            0      1.4mb          1.4mb
green  open   .apm-custom-link                 Qsc0y6-UQc2ssBqsOgGWcA   1   0          0            0       208b           208b
green  open   .kibana_task_manager_1           RUjDClBaTl20JR7iGCjjGg   1   0          5            1     48.6kb         48.6kb
green  open   .apm-agent-configuration         UI5JbkzkRo-rtbJEsguTGA   1   0          0            0       208b           208b
green  open   .monitoring-es-7-2020.08.18      r4Ka_-ErQmO6ltdZyMQlVg   1   0      88118        58680     33.4mb         33.4mb
green  open   .monitoring-es-7-2020.08.19      Zp9zD8siR2SS-xj8-wKPkA   1   0      10480         7440      5.4mb          5.4mb
green  open   .kibana_1                        yCHKaAJ9TfquvKwj7mzDtQ   1   0         45            0     29.9kb         29.9kb
green  open   .kibana-event-log-7.8.1-000001   0E4zS4R8RK6BjyUZ_NkaSg   1   0          1            0      5.3kb          5.3kb
green  open   .monitoring-kibana-7-2020.08.19  sTN1T6zTS5aioCUKTudqKw   1   0        746            0    238.3kb        238.3kb
yellow open   filebeat-7.8.1-2020.08.19-000001 1GzNvk4rQjWyW8eHVGMMQA   1   1        100            0     33.2kb         33.2kb
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 请收藏院长技术站点,网址为:https://myit.icu
  • 安装Elasticsearch
    • 安装阿里源:
      • 安装epel源:
        • 安装常用软件:
          • 关闭防火墙:
            • 关闭selinux:
              • 安装elasticsearch的yum源的密钥:
                • 修改vm.max_map_count的大小:
                  • 使之生效
                    • 修改系统进程最大打开文件数:
                      • 更新时间:
                        • elastic需要安装Java依赖
                          • 最小化安装默认不自带java 可以直接安装
                            • 也可以rpm安装:
                              • 查看版本:
                                • 安装ES7.8.1
                                  • 生成es配置文件:
                                    • 参数解析:
                                      • 创建es数据目录:
                                        • 修改es数据目录所属组和所属用户:
                                          • 适当调整指定jvm内存:机器内存大,数据大,可以给4G
                                            • 创建es服务配置目录:
                                              • 禁用交换分区:
                                                • 解决方法:
                                                  • 重新加载配置文件:
                                                    • 启动并开机自启服务:
                                                      • 访问es:
                                                      • 安装kibana
                                                        • 安装kibana包:
                                                          • 修改配置文件:
                                                            • 启动并开机自启kibana:
                                                              • 查看kibana端口:
                                                                • 浏览器访问:
                                                                • 在nginx机器上安装nginx
                                                                  • 新建nginx源:
                                                                    • 清理缓存:
                                                                      • 重新生成缓存:
                                                                        • 安装nginx和ab工具:
                                                                          • 启动并开机自启nginx服务和查看服务状态:
                                                                            • 安装filebeat
                                                                              • 配置filebeat收集nginx日志
                                                                                • filebeat负责传输nginx日志到ES中,对日志的检测类似于 tail -f
                                                                              • 启动并开机自启filebeat服务:
                                                                                • ab工具压测访问nginx
                                                                                  • 统计日志记录:
                                                                                    • 查看ES,已成功写入100条日志数据
                                                                                    相关产品与服务
                                                                                    Elasticsearch Service
                                                                                    腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                                                                                    领券
                                                                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档