运维手册_

运维手册

所有路径自己指定,本手册中默认认为当前为安装路径!

Nginx

Nginx需要依赖C语言环境,请检查是否已安装!

1、上传Nginx安装包并解压

tar -zxvf nginx-1.20.2.tar.gz

2、加载、编译、安装

./configure
make
make install

3、切换到安装路径

cd /usr/local/nginx/sbin

4、启动Nginx

./nginx

5、查看是否启动

ps -ef | grep nginx

6、访问地址

192.168.x.x

OpenResty

1、安装开发库依赖

yum install -y pcre-devel openssl-devel gcc curl

2、配置yum依赖源

yum install yum-utils
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo

3、安装OpenResty

yum install openresty

默认安装路径:/usr/local/openresty/

4、启动OpenResty

/usr/local/openresty/nginx/sbin/nginx
或
service openresty start

5、访问地址

192.168.x.x

Nginx整合OpenResty(Lua)

1、修改Openresty下的nginx配置文件

vi /usr/local/openresty/nginx/conf/nginx.conf

2、添加配置

location /lua {
    default_type 'text/html';
    content_by_lua 'ngx.say("hello yjx")';
}

3、配置伪装图片的静态地址

location /log.gif {
    #伪装成gif文件
    default_type image/gif;
    #本身关闭access_log
    access_log off;
    #返回空图片
    empty_gif;
}

4、配置Lua接收日志配置文件参数

location /log.gif {
    #伪装成gif文件
    default_type image/gif;
    #本身关闭access_log
    access_log off;
    
    #使用lua将nginx的接收的参数写入到日志文件中
    log_by_lua_file 'conf/log.lua';
    
    #返回空图片
    empty_gif;
}

5、在Nginx的conf目录下创建log.lua文件

vi /usr/local/openresty/nginx/conf/log.lua

6、添加脚本内容

-- 引入lua所有解析json的库
local cjson = require "cjson"
-- 获取请求参数列表
local request_args_tab = ngx.req.get_uri_args()
-- 使用lua的io打开一个文件,如果文件不存在,就创建,a为append模式
local file = io.open("/logs/access.log", "a")
-- 定义一个json对象
local log_json = {}
-- 将参数的K和V迭代出来,添加到json对象中
for k, v in pairs(request_args_tab) do
log_json[k] = v
end
-- 将json写入到指定的log文件,末尾追加换行
file:write(cjson.encode(log_json), "\n")
-- 将数据写入
file:flush()

7、创建存放日志的目录,并赋予写入权限

mkdir /logs
chmod o+w /logs

#或者将/logs目录的所属用户改成nobody
chown -R nobody:nobody /logs

8、修改Lua脚本内容,将日志按照每个小时进行文件生成

-- 引入lua用来解析json的库
local cjson = require "cjson"
-- 获取请求参数列表
local request_args_tab = ngx.req.get_uri_args()
-- 获取当前系统时间
local time = os.date("%Y%m%d%H",unixtime)
-- 使用lua的io打开一个文件,如果文件不存在,就创建,a为append模式
local path = "/logs/access-" .. time .. ".log"
local file = io.open(path, "a")
-- 定义一个json对象
local log_json = {}
-- 将参数的K和V迭代出来,添加到json对象中
for k, v in pairs(request_args_tab) do
log_json[k] = v
end
-- 将json写入到指定的log文件,末尾追加换行
file:write(cjson.encode(log_json), "\n")
-- 将数据写入
file:flush()

Flume数据采集

Flume采集脚本【nginxLog2Kafka.conf】

a1.sources = r1
a1.channels = c1


a1.sources.r1.type = TAILDIR
a1.sources.r1.positionFile = /root/taildir_position.json
a1.sources.r1.filegroups = f1
a1.sources.r1.filegroups.f1 = /logs/access-.*\.log

a1.channels.c1.type = org.apache.flume.channel.kafka.KafkaChannel
a1.channels.c1.kafka.bootstrap.servers = node01:9092,node02:9092,node03:9092
a1.channels.c1.kafka.topic = accessyjx
a1.channels.channel1.kafka.consumer.group.id = flume-consumer
a1.channels.c1.parseAsFlumeEvent= false

a1.sources.r1.channels = c1

FlieBeat数据采集

1、安装

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.1.3-x86_64.rpm
sudo rpm -vi filebeat-8.1.3-x86_64.rpm

默认安装路径:/etc/filebeat

2、查看可用的模块列表

filebeat modules list

3、在安装目录下,启动一个或多个模块【Kafka】

filebeat modules enable kafka

4、创建采集配置文件

filebeat.inputs:
- type: log
  paths:
    - /opt/data/data.json
output.kafka:
  # initial brokers for reading cluster metadata
  hosts: ["node01:9092", "node02:9092", "node03:9092"]
  # message topic selection + partitioning
  topic: filebeat
  partition.round_robin:
    reachable_only: true
  required_acks: 1
  max_message_bytes: 1000000

5、启动

filebeat -e -c filebeat.yml
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值