wLogger 安装部署 nginx 日志分析展示
|
字数总计:
2828
|
阅读时长:
2分钟
|
阅读量:
25
wLogger 是一款集合 日志采集,日志解析持久化存储,web流量实时监控 。三位一体的web服务流量监控应用。 三大功能模块均可独立部署启用互不干扰。目前已内置 nginx 和 apache 的日志解析存储器,简单配置一下,开箱即用。 虽然市面上已经很多类似的开源日志采集监控服务比如goaccess,用了一圈之后始终没有一款用的特别舒心。
- 它可以在日志采集的时候可以按照日志文件的大小,或者在指定时间内自动对日志进行切割日志,存储到指定的目录 (已测2W并发切割日志不丢数据)
- 它可以不用像goaccess那样必须配置指定格式才能解析到数据,只用指定当前使用的 nginx/apache 日志格式名称 即可解析数据
- 它可以指定不同的项目走不同的队列服务,分别解析存储到不同的数据库,完全可以自己按需灵活配置
- 它天然支持分布式,日志采集服务队列已内置redis LIST结构,可自行拓展kafka ,mq等其它队列服务
- 它支持自定义持久化存储引擎,日志解析持久化存储服务已内置 mongodb 和 mysql ,可自行拓展其它数据库
- 简单配置,开箱即用,无入侵,高拓展,灵活配置,按需应用
- 运行环境:python3+ linux平台
项目地址:
wLogger
1.python3 安装(略)
2.redis 安装(略)
3.mysql 安装 (略)
4.配置
nginx日志格式
1 | log_format main '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $bytes_sent $request_length'; |
mysql 配置
1 2 3 4 | character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
修改配置后,重启
创建数据库
redis 设置密码
5.项目部署
下载项目,进入项目目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 安装依赖 pip3 install -r requirements.txt 修改配置文件 # vim config.ini [nginx] pid_path = /www/server/nginx/logs/nginx.pid server_conf = /www/server/nginx/conf/nginx.conf [mysql] host = 127.0.0.1 port = 3306 db = logger username = logger password = 123456 table = logger_watcher split_save = day [redis] host = 127.0.0.1 port = 6379 password = 123456 db = 1 [inputer] log_debug = False node_id = server_80 queue = redis queue_name = logger_watch:logger max_batch_push_queue_size = 5000 max_retry_open_file_time = 10 max_retry_reconnect_time = 20 [inputer.log_file.web1] server_type = nginx file_path = /www/wwwlogs/local.test3.com.log log_format_name = main read_type = tail cut_file_type = filesize cut_file_point = 10 cut_file_save_dir = /www/wwwlogs/cut_file/ [outputer] log_debug = False save_engine = mysql queue = redis queue_name = logger_watch:logger server_type = nginx worker_process_num = 1 max_batch_insert_db_size = 1 max_retry_reconnect_time = 200 [web] # development | production env = development debug = False secret_key = asdasdasdsadasd host = 0.0.0.0 port = 5000 data_engine = mysql 修改程序文件 vim Src/Core.py 修改 nginx 日志的所属用户 if pwd.getpwuid(os.stat(log_prev_path).st_uid).pw_name != 'nginx' and platform.system() == 'Linux': try: www_uid = pwd.getpwnam('nginx').pw_uid |
6.启动
python3 main.py -r inputer -c config.ini
python3 main.py -r outputer -c config.ini
python3 main.py -r web -c config.ini
7.浏览器访问
http://127.0.0.1:5000
评论已关闭