当前位置: 首页 > news >正文

OpenEuler部署LoganaLyzer

一 概述

LogAnalyzer工具提供了一个易于使用,功能强大的前端,用于搜索,查看和分析网络活动数据,包括系统日志,事件日志和其他许多日志源。由于它只是将数据展示到我们用户的面前,所以数据本身需要由另一个程序收集,比如syslogd,rsyslog(现在是发行版的默认的syslogd),WinSyslog或MonitorWare代理。LogAnalyzer同样适用于Linux和Windows。它主要是用PHP编写的自由软件,基于GPL的开源应用程序。数据可以从数据库,也可以从纯文本文件而获得。

二 基础环境

[root@localhost ~]# hostnamectlStatic hostname: (unset)                               
Transient hostname: localhostIcon name: computer-vmChassis: vm 🖴Machine ID: 73f9288b2d7349989b9b794dc27a5f70Boot ID: fc9a0f209e594fa8aea1ca00c5d34093Virtualization: vmwareOperating System: openEuler 24.03 (LTS-SP1)Kernel: Linux 6.6.0-72.0.0.76.oe2403sp1.x86_64Architecture: x86-64Hardware Vendor: VMware, Inc.Hardware Model: VMware20,1Firmware Version: VMW201.00V.20192059.B64.2207280713Firmware Date: Thu 2022-07-28Firmware Age: 3y 4w 1d[root@localhost ~]# dnf update -y关闭防火墙&&添加防火墙规则
systemctl stop firewalldsudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# 如果需要从其他服务器接收日志,添加 rsyslog 服务
sudo firewall-cmd --permanent --add-service=rsyslog
sudo firewall-cmd --reload

三 安装部署

3.1 MariaDB安装及配置
[root@localhost ~]#dnf install mariadb-server mariadb -y[root@localhost ~]#systemctl enable --now mariadb#运行 MariaDB 安全初始化脚本:
mysql_secure_installation--导入数据表MariaDB [Syslog]> source /usr/share/doc/rsyslog/mysql-createDB.sql;MariaDB [Syslog]> show tables;
+------------------------+
| Tables_in_Syslog       |
+------------------------+
| SystemEvents           |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.001 sec)MariaDB [Syslog]> grant all privileges on Syslog.* to 'rsyslog'@'localhost' identified by 'you_pasword';
Query OK, 0 rows affected (0.001 sec)MariaDB [Syslog]> grant all privileges on Syslog.* to 'rsyslog'@'%' identified by 'you_pasword';
Query OK, 0 rows affected (0.001 sec)MariaDB [Syslog]> flush privileges;
Query OK, 0 rows affected (0.001 sec)MariaDB [Syslog]> SELECT * FROM SystemEvents;如果web页面登陆之后出现空白页面,查看 SystemEvents 表的结构,
DESC SystemEvents;添加缺失的 processid 字段
-- 根据 LogAnalyzer 代码的要求,添加 VARCHAR 类型的 processid 字段
ALTER TABLE SystemEvents ADD COLUMN processid VARCHAR(60) DEFAULT NULL AFTER FromHost;--核对表结构数据:(完整的结构)
MariaDB [Syslog]> SHOW COLUMNS FROM SystemEvents;
+--------------------+------------------+------+-----+---------+----------------+
| Field              | Type             | Null | Key | Default | Extra          |
+--------------------+------------------+------+-----+---------+----------------+
| ID                 | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| CustomerID         | bigint(20)       | YES  |     | NULL    |                |
| ReceivedAt         | datetime         | YES  |     | NULL    |                |
| DeviceReportedTime | datetime         | YES  |     | NULL    |                |
| Facility           | smallint(6)      | YES  |     | NULL    |                |
| Priority           | smallint(6)      | YES  |     | NULL    |                |
| FromHost           | varchar(63)      | YES  |     | NULL    |                |
| Message            | text             | YES  |     | NULL    |                |
| NTSeverity         | int(11)          | YES  |     | NULL    |                |
| Importance         | int(11)          | YES  |     | NULL    |                |
| EventSource        | varchar(60)      | YES  |     | NULL    |                |
| EventUser          | varchar(60)      | YES  |     | NULL    |                |
| EventCategory      | int(11)          | YES  |     | NULL    |                |
| EventID            | int(11)          | YES  |     | NULL    |                |
| EventBinaryData    | text             | YES  |     | NULL    |                |
| MaxAvailable       | int(11)          | YES  |     | NULL    |                |
| CurrUsage          | int(11)          | YES  |     | NULL    |                |
| MinUsage           | int(11)          | YES  |     | NULL    |                |
| MaxUsage           | int(11)          | YES  |     | NULL    |                |
| InfoUnitID         | int(11)          | YES  |     | NULL    |                |
| SysLogTag          | varchar(60)      | YES  |     | NULL    |                |
| EventLogType       | varchar(60)      | YES  |     | NULL    |                |
| GenericFileName    | varchar(60)      | YES  |     | NULL    |                |
| SystemID           | int(11)          | YES  |     | NULL    |                |
| processid          | varchar(60)      | NO   |     |         |                |
| checksum           | int(11) unsigned | NO   |     | 0       |                |
+--------------------+------------------+------+-----+---------+----------------+
26 rows in set (0.002 sec)
3.2 Rsyslog-mysql安装及配置
[root@localhost ~]#dnf install  rsyslog-mysql -y[root@localhost ~]#systemctl enable --now rsyslog[root@localhost /var/www/html]#vim /etc/rsyslog.conf#### MODULES ####在Modules模块下写入以下配置$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,you_password
$ModLoad immark           # immark为模块名,支持日志标记
$ModLoad imudp            # imudp 为模块名,支持udp协议
$UDPServerRun 514         # 允许514端口接收使用UDP协议转发过来的日志
$ModLoad imtcp            # imudp 为模块名,支持tcp协议
$InputTCPServerRun 514    # 允许514端口接收使用TCP协议转发过来的日志另一种格式,取消注释imklog,immark
module(load="imklog") # reads kernel messages (the same are read from journald)
module(load="immark") # provides --MARK-- message capabilitymodule(load="imudp") # needs to be done just once
input(type="imudp" port="514")module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")module(load="ommysql")
*.* action(type="ommysql" server="localhost" db="Syslog" uid="rsyslog" pwd="Huawei@123")[root@localhost ~]#systemctl restart rsyslog && systemctl status rsyslog.service

3.3 httpd服务安装及配置及安装 PHP 及必要扩展
[root@localhost ~]# dnf install httpd -y[root@localhost ~]# systemctl enable --now httpd[root@localhost ~]# vim /etc/httpd/conf/httpd.confDirectoryIndex index.php index.html [root@localhost ~]# systemctl restart httpd && systemctl status httpd[root@localhost ~]# ss -tnl[root@localhost ~]# dnf install php php-fpm php-cli php-common php-mysqlnd php-gd php-mbstring php-xml php-json php-opcache php-curl -y[root@localhost ~]# systemctl enable --now php-fpm.service在OpenEuler系统中默认使用高性能但不兼容的 event MPM,LogAnalyzer 依赖 mod_php,因此在 OpenEuler 的默认 Apache 配置下无法运行。在 OpenEuler 上,手动修改 Apache 配置,停用 mpm_event 并启用 mpm_prefork。vim /etc/httpd/conf.modules.d/00-mpm.conf取消此项注释:
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so将此项添加注释:
LoadModule mpm_event_module modules/mod_mpm_event.so重启服务:
[root@localhost ~]#systemctl restart httpd

3.3.1

拓展

1. 理解 MPM (Multi-Processing Module)

MPM 决定了 Apache 如何处理并发请求。主流的 MPM 有:

  • prefork: 一个非线程型的、预派生的 MPM。
    • 工作方式: 主进程预先启动一批子进程,每个子进程在同一时间只处理一个请求。
    • 关键特点每个进程只使用一个线程。这是最古老、最稳定的模式,兼容性最好,尤其是对于那些不是线程安全的库(如旧版的 mod_php)。
  • event: 一个现代化的、基于 worker MPM 的变体。
    • 工作方式: 使用多个子进程,每个子进程又包含多个工作线程,同时还有一个单独的监听线程来管理Keep-Alive连接。
    • 关键特点高性能,能更好地处理大量并发连接。它是许多现代Linux发行版的默认MPM
  • workerevent MPM 的前身,现在已较少使用。

2. 关键依赖:mod_php 与 MPM 的兼容性

  • mod_php 是一个 Apache 模块,它将 PHP 解释器直接集成到 Apache 进程中。
  • 很多传统的 PHP 应用(包括 LogAnalyzer 以及更著名的 phpMyAdmin)在部署文档中都会建议使用 prefork MPM。
  • 原因mod_php 本身不是线程安全的(Thread-Safe)。它被设计为运行在 prefork 这种多进程、单线程的环境中。如果强行将它加载到 eventworker 这种多线程的 MPM 中,同一个进程内的多个线程可能会同时调用 mod_php 的非线程安全代码,从而导致段错误(Segmentation Fault)、数据损坏或各种诡异的不可预测行为。
3.4下载和安装 LogAnalyzer

[root@localhost ~]# cd /var/www/html
[root@localhost /var/www/html]# wget https://download.adiscon.com/loganalyzer/loganalyzer-4.1.13.tar.gz[root@localhost /var/www/html]# tar -xf loganalyzer-4.1.13.tar.gz[root@localhost /var/www/html]# mkdir /var/www/html/loganalyzer[root@localhost /var/www/html]# rsync -a loganalyzer-4.1.13/src/* /var/www/html/loganalyzer
[root@localhost /var/www/html]# rsync -a loganalyzer-4.1.13/contrib/* /var/www/html/loganalyzer[root@localhost /var/www/html]# chown +x loganalyzer/*.sh
[root@localhost /var/www/html]# ./configure.sh

四 web页面配置

访问http://IP/loganalyzer

4.1 Step 1-先决条件

此步骤如果有报错,检查/var/www/html/srv下的config.php权限是不是666

4.2 Step 2-验证文件权限

4.3 Step 3-基础设置

4.4 Step 4-创建表

4.5 Step 5-检查SQL结果

4.6 Step 6-创建用户

4.7 Step 7-创建系统日志源

4.8 Step 8-完成

五 汉化

/var/www/html/loganalyzer/lang在此目录下上传汉语言包并解压重启httpd服务即可

刷新web页面,在页面右上角Select Language选择Chinaese

http://www.dtcms.com/a/356647.html

相关文章:

  • 【开题答辩全过程】以 基于SpringBootVue的智能敬老院管理系统为例,包含答辩的问题和答案
  • 黑芝麻智能与云深处科技达成战略合作,共推具身智能平台全球市场应用
  • 基于互补素数与最小素因子性质的哥德巴赫猜想证明-陈墨仙
  • ROS2学习打卡表
  • 外卖大战之后,再看美团的护城河
  • vue3获取子组件
  • PostgreSQL15——子查询
  • 采用机器学习的苗期棉株点云器官分割与表型信息提取
  • GPT-Realtime架构与Token成本控制深度解析
  • Linux/UNIX系统编程手册笔记:基本概念
  • Redis面试题--介绍下Redis几种集群模式
  • Shell 秘典(卷二)——号令延展秘术 与 流程掌控心法・if 天机判语篇精解
  • 力扣p1011在D天送达包裹的能力 详解
  • docker-相关笔记
  • 网站加载慢,linux服务器接口请求响应变慢,怎么排查,一般是什么原因
  • 【算法】78.子集--通俗讲解
  • 开源网盘聚合工具Alist:统一管理20+云存储的技术实践
  • vue常见的指令都有哪些,有什么作用
  • 内存页和TLB缓存
  • 计算机专业考研备考建议
  • 前端缓存问题详解
  • CollageIt:简单易用的照片拼贴工具
  • 代理IP服务器平台推荐,企业级动态住宅IP资源哪里找?
  • 在做题中学习(93):最长公共子序列的长度
  • 1.6 GPU Usage简介
  • 算法题打卡力扣第1004. 最大连续1的个数 III(mid)
  • useEffect用法
  • Git 版本管理核心实践与问题解决手册
  • 群晖Nas上使用工具rsync工具usb同步数据
  • 计算机视觉与深度学习 | 视觉里程计技术全景解析:从原理到前沿应用