centos安装openresty和logstash安装

1.安装环境

linux: centos8.1
使用用户:root
openresty:1.21.4.1-alpine-fat
logstash:8.8.1
docker:20.10.24
docker-compose: 1.29.2

2.安装步骤

2.1 新建挂载文件目录和配置文件

2.1.1 新建文件目录

mkdir logs logstash-pipeline -- 在你的安装目录新建挂载文件

2.1.2 调整logstash.yml

因为我只安装logstash,没有安装es,所以需要调整logstash.yml

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://yourip:9200" ]
xpack.monitoring.enabled: false
log.level: debug

前面两个配置是我在容器中直接复制出来的,没删除,因为没安装es,我就没管他。

1.http.host: “0.0.0.0”:
指定 Elasticsearch 监听的网络地址。0.0.0.0 表示监听所有网络接口。表示 Elasticsearch 将会监听服务器上的所有可用 IP 地址,允许远程连接。
2.xpack.monitoring.elasticsearch.hosts: [ “http://yourip:9200” ]:
指定 Elasticsearch 集群的监控目标。你需要将 “http://yourip:9200” 替换为你实际的 Elasticsearch 集群的地址。用于将 Elasticsearch 集群的监控数据发送到指定的目标。
3.xpack.monitoring.enabled: false:
用于控制是否启用监控功能。设置为 false,Elasticsearch 将不会生成和发送监控数据。
4.log.level: debug:
用于设置 Elasticsearch 的日志级别。我在开发环境调试,所以将日志级别设置为 debug,有助于排查问题。如果是生产环境,需要将日志级别设置为更高的级别,比如 info 或 warn,这样可以减少日志量。

2.1.3 调整nginx.conf

user  root;
worker_processes  auto;
worker_cpu_affinity auto;
worker_rlimit_nofile 65535;

error_log  logs/error.log notice;
events {
    worker_connections 1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;

#    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                      '$status $body_bytes_sent "$http_referer" '
#                      '"$http_user_agent" "$http_x_forwarded_for"';
#
#    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                      '$status $body_bytes_sent "$http_referer" '
#                      '"$http_user_agent" "$http_x_forwarded_for" '
#                      '$request_time $upstream_response_time $host $request_id';

#    access_log  logs/access.log  main;
    log_format json_combined escape=json '{'
       '"request_start_time":"$time_local",'
       '"client":"$remote_addr",'
       '"http_referer":"$http_referer",'
       '"request_uri":"$request_uri",'
       '"uri":"$uri",'
       '"scheme":"$scheme",'
       '"status":"$status",'
       '"response_byte_size":"$body_bytes_sent",'
       '"request_total_time":"$request_time",'
       '"upstream_addr":"$upstream_addr",'
       '"upstream_response_time":"$upstream_response_time",'
       '"upstream_header_time":"$upstream_header_time",'
       '"upstream_bytes_received":"$upstream_bytes_received",'
       '"upstream_connect_time":"$upstream_connect_time",'
       '"upstream_status":"$upstream_status",'
       '"agent":"$http_user_agent",'
       '"request":"$request",'
       '"request_id":"$request_id",'
       '"http_x_forwarded_for":"$http_x_forwarded_for",'
       '"project_code":"$http_project_code"'
    '}';

    access_log logs/access.log json_combined;
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    server {
        # 修改成自己的端口,和docker-compose映射的端口保持一致即可
        listen 8000;

        location /demo {
           content_by_lua_block {
              ngx.say("配置成功了耶")
              }
        }
    }
}

这里我的access.log日志格式设置成了json格式,logstash解析access.log就相对简单很多。我开始设置的是第一种,解析时贼费劲,我的发量已经不能支持我挣扎。

2.1.4 新增logstash.conf

input {
  file {
    path => "/usr/share/logstash/openresty-logs/access.log" # logstash挂载的日志路径
    start_position => "beginning"
    # sincedb_path => "/dev/null" # 这是全量的,每次都会从头读
  }
}

output {
  stdout {
    codec => rubydebug
  }
}

这里只是个简单的示例,按需配置

2.2 docker-compose配置

1.创建一个自定义网络

docker network create mynetwork

2.docker-compose.yml配置

version: '3.1'

services:
  openresty:
    image: openresty/openresty:1.21.4.1-alpine-fat
    ports:
      - 8000:8000
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ./nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf
      - ./logs:/usr/local/openresty/nginx/logs
    restart: always
    networks:
      - mynetwork

  logstash:
    image: docker.elastic.co/logstash/logstash:8.8.1
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ./logstash-pipeline:/usr/share/logstash/pipeline
      - /www/docker-compose/openresty/logstash.yml:/usr/share/logstash/config/logstash.yml
      - ./logs:/usr/share/logstash/openresty-logs
    networks:
      - mynetwork
networks:
  mynetwork:
    external: true

mynet网络在networks部分被标记为external,表示这个网络是在Docker Compose的管理范围之外创建的。配置这个是为了和其他容器通过服务名通信,如果你没有需要或者有其他实现方式,直接去掉即可。
这是最终的目录结构:
图片.png

2.3 启动

# 在docker-compose.yml目录中执行
docker-compose up -d
# 查看是否启动成功
docker ps
# 启动日志排查
docker-compose logs -f

图片.png


重要的人会越来越少,剩下的人也会越来越重要

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值