服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - 服务器知识 - 介绍一套传统的日志监控服务器部署方案

介绍一套传统的日志监控服务器部署方案

2023-10-24 09:14IT仔的笔记本 服务器知识

本文介绍一套传统的日志监控服务器部署方案,可以将多个 linux主机的日志收集在 一个日志服务器上保存在/data/log/并按IP分目录保存。

一、方案介绍

(1) 方式 1:

Rsyslog->Rsyslog-server+mysql+Loganalyzer  

(2) 重点:(配置文件)

  • 转发日志的主机——配置rsyslog.conf日志转发规则、存储规则、系统日志与非系统日志的区别定义。
  • 接收日志服务器——配置rsyslog.conf日志接受模块、存储规则、mysql存储模块、系统日志与非系统日志的区别定义。
  • 日志文件命名规则与日志内容自定义模板的区别和使用方法。

(3) 功能 :

  • 将多个 linux主机的日志收集在 一个日志服务器上保存在/data/log/并按IP分目录保存;
  • 同步存储在MySQL数据库中;
  • 展示在web上;

介绍一套传统的日志监控服务器部署方案

二、基础架构C/S

 

介绍一套传统的日志监控服务器部署方案

三、安装脚本.sh

 

1.适用环境:(经过测试,过程没有异常),其他环境下有异常请更改脚本再运行。

Linux version 3.10.0-693.el7.x86_64
CentOS Linux release 7.4.1708 (Core)

2.脚本说明:

脚本会安装数据库,如果你的系统已经装有数据库并有数据,请先修改脚本中数据库的安装语句再执行,避免数据丢失。

使用说明:

(1) 客户端:

执行客户端rsyslog-agent安装脚本请在后面跟上你的rsyslog-server的ip,如:

sh rsyslog_install_agent.sh 192.168.32.128

(2) 服务端-单机部署

如果你想要把rsyslog-server和web服务装在同一个主机上请按顺序执行脚本:

sh rsyslog_mysql_install_server.sh
sh loganalyzer_web_install_server.sh

(3) 服务的-双机部署

如果你想要把rsyslog-server和web服务分开装在不同的主机上,请在rsyslog-server上执行脚本:

sh rsyslog_mysql_install_server.sh

在web服务器上执行脚本:

sh loganalyzer_web_install_server.sh

 

rsyslog_mysql_install_server.sh:

#!/bin/bash
clear
echo '
>>>>>>>>安装Rsyslog+mariadb-server=Rsyslog-server
------------------------------------------------
!!!如果系统已经安装过mysql数据库,请将脚本中的安装数据库的部分注释再继续
环境:
适用版本:测试正常.
Linux version 3.10.0-693.el7.x86_64
CentOS Linux release 7.4.1708 (Core)
---------------------------------------------------
其他系统环境下没有测试,如果报错,请更改脚本再继续安装
'
sleep 10
echo '第一步:基本环境配置'
yum install wget -y
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && yum makecache fast && yum install centos-release-scl -y
sed -i '1c\#!/usr/bin/python2 -Es' /usr/sbin/firewalld && sed -i '1c\#!/usr/bin/python2 -Es' /usr/bin/firewall-cmd
systemctl restart firewalld && systemctl enable firewalld
sed -i 's/enforcing/disabled/g' /etc/selinux/config
setenforce 0
clear
echo '第二步:安装rsyslog并配置转发到mysql,作为日志服务器rsyslog-server'
yum remove rsyslog -y && rm -rf /etc/rsyslog*
yum install rsyslog rsyslog-mysql mariadb-server -y
rpm -ql rsyslog-mysql
sed -i 's/Syslog/rsyslog/g' /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
systemctl start rsyslog && systemctl enable rsyslog
systemctl start mariadb && systemctl enable mariadb
pwd_sql=$(rpm -ql rsyslog-mysql | grep create)
mysql <$pwd_sql
mysql -e "grant all privileges on rsyslog.* to rsyslog@'%' identified by 'rsyslog';grant all privileges on rsyslog.* to rsyslog@'localhost' identified by 'rsyslog';flush privileges;"
#sed -i '$ a\$ModLoad imtcp\n$InputTCPServerRun 514' /etc/rsyslog.conf
sed -i '$ a\$ModLoad imudp\n$UDPServerRun 514\n$ModLoad imtcp\n$InputTCPServerRun 514\n$ModLoad ommysql #:ommysql:数据库IP,数据库名,用户名,密码\n*.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,rsyslog,rsyslog,rsyslog' /etc/rsyslog.conf
sed -i '$ a\*.info;mail.none;authpriv.none;cron.none @127.0.0.1' /etc/rsyslog.conf
systemctl restart rsyslog
firewall-cmd --add-port=514/tcp --zone=public --permanent
firewall-cmd --reload && systemctl restart firewalld
clear
netstat -nltp |grep -E '514|3306'
echo '安装结束!
请检查3306和514端口是否在侦听。
注意:
执行此脚本以后firewalld默认enable,如果需要设置开机不自启,请自己disable
接收日志的端口为514
mysql信息:port:3306,数据库、用户名密码均为rsyslog

 

loganalyzer_web_install_server.sh:

#!/bin/bash
clear
echo '
>>>>>>>>安装loganalyzer
------------------------------------------------
@如果系统安装过httpd,请不要使用这个脚本,或者更改以后再使用
适用版本:测试正常.
Linux version 3.10.0-693.el7.x86_64
CentOS Linux release 7.4.1708 (Core)
---------------------------------------------------
其他系统环境下没有测试,如果报错,请更改脚本再继续安装
'
echo '第一步:基本环境配置'
yum install wget -y
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && yum makecache fast && yum install centos-release-scl -y
sed -i '1c\#!/usr/bin/python2 -Es' /usr/sbin/firewalld && sed -i '1c\#!/usr/bin/python2 -Es' /usr/bin/firewall-cmd
systemctl stop firewalld  
sed -i 's/enforcing/disabled/g' /etc/selinux/config
setenforce 0
echo '第二步:开始安装组件'
yum install php php-mysql httpd -y
systemctl start httpd &&  systemctl enable httpd
echo '第三步:开始下载配置loganalyzer'
wget https://download.adiscon.com/loganalyzer/loganalyzer-4.1.12.tar.gz --no-check-certificate
mkdir -p /var/www/html/loganalyzer && tar -zxvf loganalyzer-4.1.12.tar.gz && cp -rf loganalyzer-4.1.12/* /var/www/html/loganalyzer
chmod a+x /var/www/html/loganalyzer/contrib/*
sh /var/www/html/loganalyzer/contrib/secure.sh
sh /var/www/html/loganalyzer/contrib/configure.sh
cp config.php /var/www/html/loganalyzer/src
chmod 666 /var/www/html/loganalyzer/src/config.php
sed -i 's/80/8051/g' /etc/httpd/conf/httpd.conf
systemctl restart httpd firewalld
firewall-cmd --add-port=8051/tcp --zone=public --permanent
firewall-cmd --reload && systemctl restart firewalld
systemctl enable firewalld
echo '
第四步:请在浏览器上访问如下url,
如果可以打开则说明正常http://系统ip:8051/loganalyzer/src/install.php能访问就行,不需要开始在web上操作,
rsyslog+mysql服务服务装好以后再在web上操作数据源
注意:
执行此脚本以后firewalld默认enable,如果需要设置开机不自启,请自己disable

 

rsyslog_install_agent.sh:

#!/bin/bash
clear
echo '
>>>>>>>>安装Rsyslog将日志转发到rsyslog-server
------------------------------------------------
@使用脚本请请先修改18行的ip地址为rsyslog-server的ip
适用版本:测试正常.
Linux version 3.10.0-693.el7.x86_64
CentOS Linux release 7.4.1708 (Core)
---------------------------------------------------
其他系统环境下没有测试,如果报错,请更改脚本再继续安装
'
sleep 10
yum remove rsyslog -y && rm -rf /etc/rsyslog*
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && yum makecache fast && yum install centos-release-scl -y
sed -i '1c\#!/usr/bin/python2 -Es' /usr/sbin/firewalld && sed -i '1c\#!/usr/bin/python2 -Es' /usr/bin/firewall-cmd
sytemctl restart firewalld && sytemctl enable firewalld
yum install rsyslog -y
sed -i '$ a\*.info;mail.none;authpriv.none;cron.none @'$1'' /etc/rsyslog.conf
systemctl restart rsyslog
firewall-cmd --add-port=514/tcp --zone=public --permanent
firewall-cmd --reload
echo 'rsyslog配置完成!!
请去Rsyslog-server的数据库中查看是否有这台主机的日志。
注意:
执行此脚本以后firewalld默认enable,如果需要设置开机不自启,请自己disable
'

四、访问web进行简单配置

1.http://服务器ip:8051/loganalyzer/src/install.php

2.进行数据源的配置,使用mysql_nactive。

注意按着这个脚本安装的数据库、账号、密码均为rsyslog,连接127.0.0.1:3306

3.鼠标点点点的操作大家都会,这里不再继续描述。

到这里这个平台已经算基本完成,后期就是优化的操作,优化的是客户端和服务端的配置文件/etc/rsyslog.conf,更改配置以后一定要重启rsyslog配置才会生效。

五、整体效果

日志服务器本地存储:

介绍一套传统的日志监控服务器部署方案

web展示:

介绍一套传统的日志监控服务器部署方案

我这里提供一套配置文件模板,参考。

 

服务端配置文件:

#配置运行目录
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
$WorkDirectory /var/lib/rsyslog
#接收本机的日志
#配置接收其他主机的日志UDP+TCP
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
$AllowedSender tcp, 192.168.32.0/24
#定义本地存储路径
$template format1,"/data/log/%fromhost-ip%/warning(up)-%$YEAR%-%$MONTH%-%$DAY%.log"
$template format2,"/data/log/%fromhost-ip%/web-access-%$YEAR%-%$MONTH%-%$DAY%.log"
$template format3,"/data/log/%fromhost-ip%/web-error-%$YEAR%-%$MONTH%-%$DAY%.log"
#非系统日志--应用日志
module(load="imfile" PollingInterval="10")
input(
type="imfile"
File="/var/log/httpd/access_log"
Tag="http_accessr"
Severity="info"
Facility="local1")

input(type="imfile"
File="/var/log/httpd/error_log"
Tag="http_error"
Severity="error"
Facility="local2")

#发送服务器本身的日志warning以上级别的日志
*.warning @@192.168.32.128:514
local2.* @@192.168.32.128:514
local1.* @@192.168.32.128:514

#设置本地存储
:fromhost-ip, !isequal, "127.0.0.1" ?format1
*.warning ?format1
local1.* ?format2
local2.* ?format3
#将日志存储在mysql中
$ModLoad ommysql #:ommysql:数据库IP,数据库名,用户名,密码
*.warning;local1.*;local2.* :ommysql:127.0.0.1,rsyslog,rsyslog,rsyslog

客户端配置文件:

#配置运行目录
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
$WorkDirectory /var/lib/rsyslog
#非系统日志--应用日志
module(load="imfile" PollingInterval="10")
#输入nginx_access_log
input(
type="imfile"
File="/var/log/httpd/access_log"
Tag="nginx_accessr"
Severity="info"
Facility="local1")
#输入nginx_error_log
input(type="imfile"
File="/var/log/httpd/error_log"
Tag="nginx_error"
Severity="error"
Facility="local2")

#发送规则:发送warning以上等级的系统信息及nginx的所有日志
*.warning @@192.168.32.128:514
*.warning @192.168.32.128:514
local1.* @@192.168.32.128:514
local2.* @@192.168.32.128:514

#定义本地存储路径
*.info;mail.none;authpriv.none;cron.none      /var/log/messages
authpriv.*                                   /var/log/secure
mail.*                                    -/var/log/maillog
cron.*                                   /var/log/cron
*.emerg                                  :omusrmsg:*
uucp,news.crit                           /var/log/spooler
local7.*                                 /var/log/boot.log

原文地址:https://mp.weixin.qq.com/s?__biz=MzkyNTE2MzgxNQ==&mid=2247487716&idx=1&sn=daea1d608e5e129b8d6f61c3662f8726&chksm=c1cb98acf6bc11ba61568d5458b8a3a191300c3a0db49faa788cf5e5c4d390946024e69f582a

延伸 · 阅读

精彩推荐
  • 服务器知识Prometheus Relabeling 重新标记的使用

    Prometheus Relabeling 重新标记的使用

    Relabeling 重新标记是配置 Prometheus 元信息的方式,它是转换和过滤 Prometheus 中 label 标签对象的核心,本文我们将了解 Relabeling 规则的工作原理以及在不同场...

    k8s技术圈10392021-09-28
  • 服务器知识Docker容器的使用方法简单示例

    Docker容器的使用方法简单示例

    这篇文章主要介绍了Docker容器的使用方法简单示例,包括拉取镜像、运行镜像、测试容器内的应用、检查主机端口及停止容器的操作方法,本文给大家介绍的...

    jks2124544782021-08-08
  • 服务器知识三分钟了解VRRP、堆叠、M-LAG这三大虚拟化技术

    三分钟了解VRRP、堆叠、M-LAG这三大虚拟化技术

    随着数据中心访问量的逐渐增大以及网络可靠性的要求越来越高,交换机虚拟化技术被众人关注。很多人表示分不清M-LAG、VRRP、堆叠三大虚拟化技术,觉得...

    信锐网科技术10842021-12-06
  • 服务器知识logrotate日志管理工具

    logrotate日志管理工具

    logrotate是一个日志文件管理工具。用来把旧文件轮转、压缩、删除,并且创建新的日志文件。我们可以根据日志文件的大小、天数等来转储,便于对日志文...

    小编72023-08-24
  • 服务器知识用gitlab的webhooks更新网站

    用gitlab的webhooks更新网站

    git有hooks钩子,但不太喜欢用ftp或者http方式同步更新其他服务器的网站。所以选择了gitlab,因为gitlab有webhooks。github也有webhooks,不过github太高富帅了,还是...

    小编12023-08-06
  • 服务器知识docker中mysql开启日志的实现步骤

    docker中mysql开启日志的实现步骤

    本文主要介绍了docker中mysql开启日志的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面...

    Mr.王征10162022-09-21
  • 服务器知识关于VMware安装完后没有虚拟网卡的问题

    关于VMware安装完后没有虚拟网卡的问题

    这篇文章主要介绍了关于VMware安装完后没有虚拟网卡的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参...

    psy_code7622021-06-17
  • 服务器知识Docker如何使用Dockerfile构建镜像

    Docker如何使用Dockerfile构建镜像

    本篇文章主要介绍了Docker如何使用Dockerfile构建镜像,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    go2shell11022021-01-24