001-CentOS 7系统搭建Rsyslog+LogAnalyzer解决交换机日志收
日志功能对于操作系统是相当重要的,在使用中,无论是系统还是应用等等,出了任何问题,我们首先想到的便是分析日志,查找问题原因。
自 CentOS 7 开始,我们的 CentOS 便开始使用 rsyslog 做为日志收集服务了,相对于之前的 syslog 它能够支持多线程,数据库存储,支持更多了传输协议等等优点。
而 LogAnalyzer 则是一款基于 PHP 开发的 syslog 日志和其他网络事件数据的 Web 前端。它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。
将他们整合起来,我们就能够搭建一个日志收集管理服务器,用来应对小型的日志数据收集分析。
本次主要配置日志服务器用途收集交换机防火墙等网络设备的日志。
配置内容
操作系统:CentOS 7.0 ,最小化安装,配置地址为192.168.119.202
数据库:mariadb v5.5.44
httpd:v2.4.6
php: v2.4.0
LogAnalyzer:v4.1.5
交换机:nutanix_sw1,华为S5720,地址为172.31.205.29
防火墙:gateway,飞塔FG3040b,地址为192.168.1.254
注意,进行服务器的配置之前,务必确保与交换机,防火墙之间的两两路由互相可达,能够ping通。
关闭防火墙和selinux
在CentOS7上面是firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
关闭 selinux
setenforce 0
getenforce
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
grep SELINUX=disabled /etc/sysconfig/selinux
安装数据库
安装mariadb数据库。
yum -y install mariadb mariadb-server
启动并初始化数据库
启动mariadb数据库服务器
systemctl start mariadb.service
systemctl enable mariadb
初始化数据库
/bin/mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):<–初次运行直接回车
OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
Password updated successfully!
Reloading privilege tables..
… Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] <– 是否删除匿名用户,生产环境建议删除,所以直接回车
… Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,根据自己的需求选择y并回车,建议禁止
… Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] <– 是否删除test数据库,直接回车
- Dropping test database…
… Success!
- Removing privileges on test database…
… Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,直接回车
… Success!
Cleaning up…
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
添加数据库和用户
mysql -uroot -p
创建”rsyslog”的数据库,字符编码设置为utf 8
create database rsyslog character set utf8 collate utf8_bin;
对数据库“rsyslog”创建全权限的rsyslog,的本地用户,设置密码为“rsyslog”
grant all privileges on rsyslog.* to 'rsyslog'@'localhost' identified by 'rsyslog';flush privileges;
安装 rsyslog 的 MySQL 扩展程序包 rsyslog-mysql
安装rsyslog
yum -y install rsyslog-mysql
将 rsyslog 的 MySQL 表导入创建的 rsyslog 数据库,并给予用户权限
将 rsyslog 的 MySQL 表导入创建的 rsyslog 数据库
mysql -uroot -p < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
创建数据库Syslog,设置本地用户rsyslog,密码rsyslog,全部权限
mysql -uroot -p
grant all privileges on Syslog.* to 'rsyslog'@'%' identified by 'rsyslog';flush privileges;
修改 rsyslog 配置文件
vi /etc/rsyslog.conf
$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,rsyslog #日志 :ommysql:数据库地址,数据库名,数据库用户,数据库用户密码
# 使用UDP协议传输
$ModLoad imudp
$UDPServerRun 514
$UDPServerRun 38514
#使用TCP协议传输(两者可同时使用)
$ModLoad imtcp
$InputTCPServerRun 514
$InputTCPServerRun 38514 #华为交换机默认发送日志端口
注意,在修改配置文件的时候,要使功能生效,需要将“#”删掉

重启rsyslog服务
systemctl restart rsyslog.service
systemctl enable rsyslog.service
准备web环境
安装所需软件
yum install httpd php php-mysql php-gd -y
下载 loganalyzer
yum install unzip wget -y
cd /var/www/html/
wget https://github.com/rsyslog/loganalyzer/archive/master.zip
解压 loganalyzer
unzip master.zip
复制文件
cp -a loganalyzer-master/src/* /var/www/html/ #把src中的文件包括子目录,都拷贝到httpd的根目录
cp /usr/local/src/loganalyzer-3.2.3/contrib/* /var/www/html/ #把contrib中的configure.sh 和 secure.sh 拷到 httpd的根目录
cd /var/www/html/
chmod u+x configure.sh secure.sh
./configure.sh #运行这个文件,会创建一个每个人都有写权限的空的 configure.php文件
启动httpd服务
systemctl start httpd
进入浏览器页面配置
1.step 2 会检查config.php的写入权限,如果没有请授权一下, chmod +w config.php
2.step 3 选择enable user database,使用自定义数据库,然后填写数据库访问信息,这里的数据库是指loganalyzer的用户数据库,而不是rsyslog日志存储的数据库,这里是需要注意的。并且选取require user to be login。
3.step 5 会将loganalyzer的相关用户表写入到数据库,可以检查loganalyzer的数据库就可以看到了。
4.step 6 配置loganalyzer的管理员账号,登录loganalyzer界面使用的。
5.step 7 是配置rsyslog的日志存储数据库的访问方法,在source type选择 mysql native,然后填写mysql的访问信息,记住,这里是rsyslog的日志存储数据库,不是loganalyzer的用户数据库。
6.完成后会自动跳转提示登录,登陆后就可以看到数据了。
在浏览器中输入192.168.119.202进行配置,提示点击 here 进行配置。

点击之后,提示开始检查。

配置文件检查,注意 config.php 需要 666 权限,如果没有写权限,则会报错提示。

LogAnalyzer 的基本配置,此处配置的数据库为 LogAnalyzer 的数据库,也就是我们自己建的 rsyslog 数据库。数据库名称,用户名及密码都是rsyslog。

如果数据库能正常连接,那么就会显示正常了,如果数据库连接出错,则会提示错误原因,点击 Next 继续下一步。

连接数据库成功后,会自动创建数据库表,提示 24 条成功,0 失败。

提示创建管理员用户

密码:123456
这一步便是填写日志信息的数据库信息,也就是我们导入 sql 文件所创建的 Syslog 数据库,请注意大小写,监控表为 SystemEvents,默认为小写,会出错,很奇怪。

继续下一步就会提示成功啦,然后点击登录,便能进入查看了。



安装完成后为了安全,请将 config.php 权限修改为 644
[root@localhost html]# chmod 644 config.php
交换机配置
info-center loghost 192.168.119.202//日志服务器地址
info-center enable //启动
-info-center loghost source Vlanif205 //指定日志发送源接口为逻辑口
info-center source default channel 2 log level debugging//发送所有级别的日志
Rsyslog+LogAnalyzer解决IP地址空白或不显示IP地址
mysql -uroot -p
USE Syslog;
ALTER TABLE SystemEvents ADD FromIP VARCHAR(60) DEFAULT NULL AFTER FromHost;

vi /etc/rsyslog.conf
添加
$template insertpl,"insert into SystemEvents (Message, Facility, FromHost, FromIP, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('%msg%', %syslogfacility%, '%HOSTNAME%', '%fromhost-ip%', %syslogpriority%, '%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%, '%syslogtag%')",SQL




注: DBMappings注意大小写,对应后面全部小写,不能有错,对应如下。
uID => id,
Date => devicereportedtime,
Host => fromhost,
Messagetype => infounitid,
Message => message,
Facility => facility,
IP => fromip,
Severity => priority,
Syslogtag => syslogtag,
ProcessID => processid,
Event ID => eventid,
Eventlog Type => eventlogtype,
Event Source => eventsource,
Event Category => eventcategory,
Event User => eventuser,
SystemID => systemid,
Checksum => checksum
修改默认 Table type =>> MonitorWare, 修改为 NewSyslog 也就是上面新添加的NewSyslog。
修改日志选择 Select View => NewSyslog。

facllity:设施,从功能或程序上对日志进行分类,并由专门的工具附则记录其日志
auth:认证相关信息
authpriv:认证授权相关信息
cron:周期性计划任务相关信息
daemon:守护进程相关信息
kern:内核相关信息
lpr:打印相关信息
mail:收发邮件相关信息
mark:防火墙标记
news:新闻相关信息
security:安全相关信息
syslog:自身记录
user:用户相关信息
uucp:早起系统文件共享服务
local0..local7:8个自定义facility
priority:级别
debug:调试信息
info:基本说明信息
notice:需要注意的信息
warn,warning:警告信息
err,error:错误信息
crit:蓝色警报
alert:橙色警报
emerg,panic:红色警报
后记:
1.本人在loganalyzer安装向导配置的web后台账户,在登陆界面无法登陆,提示账号或密码错误,不知道是什么原因?最后是在向导一处去掉登陆认证才勉强通过,有遇到相同问题的朋友望帮忙解答。
经过一位朋友指点,终于找到了原因
首先利用以下命令守株待兔
# tail -f /usr/local/mysql/log/mysql.log
然后在loganalyzer向导STEP6输入web后台账号密码后,点击NEXT
查看到mysql.log日志里出现了一条INSERT语句
然后将该语句复制到后台手动执行,看报什么错误
# mysql -uroot -p123456;
> INSERT INTO logcon_users (username, password, is_admin) VALUES ('admin', '00a1f187721cxxxxxxx6bf791e69382c', 1);
ERROR 1364 (HY000): Field 'last_login' doesn't have a default value
提示'last_login'栏不能为空值
OK,直接登录navicat,将这栏设置为允许空值保存即可
从新执行这条语句
> INSERT INTO logcon_users (username, password, is_admin) VALUES ('admin', '00a1f187721cxxxxxxx6bf791e69382c', 1);
Query OK, 1 row affected (0.06 sec)
显示执行成功
利用navicat 查看后台该表,显示成功插入一条记录
重新利用该账号即可成功登录loganalyzer web后台
看来是mysql在执行该语句时,发现last_login栏默认为非空,所以拒绝这条insert语句执行,解决办法就是将该栏设置为允许空值即可
博主在线上老版本mysql-5.0.56无需进行上述手动操作,即可成功登录后台
但本篇出现的问题则是在mysql-5.6.10版本上
看来这应该不算是loganalyzer的BUG,应该是mysql在高版本执行insert语句提高了严谨性
这里给卡在这里的朋友点思路,仅供参考。
在此感谢longeleven11朋友的提点。。。。
2.安装rsyslog可谓是过程曲折,之前本想全部编译安装,最后才发现网上的文档各种误导,编译rsyslog最后花了2个小时安装了其6个依赖包,全部找的老外的文档挨个测试,装完网上给出的文档又不能合理给出如何与系统自带的rsyslog共存保证不冲突,也就是编译的rsyslog的启动方法如何与系统自带的区别,索性就yum吧,实属无奈之举,还有吐槽下google各种间歇性抽风,至于原因,大家都懂的。。。
3.Windows客户端安装(win2008 server 64bit)
1.下载evtsys
http://eventlog-to-syslog.googlecode.com/files/Evtsys_4.4.3_64-Bit.zip
2.解压文件将包内64-Bit文件夹下的所有文件复制C:\Windows\System32下
3.开启evtsys服务
运行- cmd
> cd c:\Windows\System32
> evtsys -i -s 10 -h 192.168.7.11 -p 514
> net start evtsys
4.验证效果
如图:
4.防火墙及交换机配置
4.1.防火墙配置
进入防火墙界面,配置日志服务器。
收集到的防护墙日志如下所示
4.2.交换机配置
info-center loghost 172.31.206.112//日志服务器地址
info-center enable //启动
-info-center loghost source Vlanif205 //指定日志发送源接口为逻辑口
info-center source default channel 2 log level debugging//发送所有级别的日志
收集到的交换机日志如下图所示
*安装步骤请参考
https://www.getlinux.cn/centos-7-xia-rsyslog-mariadb-loganalyzer-ri-zhi-fu-wu-qi-da-jian.html*****
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43017750/article/details/89873469
拓补说明
某企业网络拓补如图
交换机配置vlanif1的IP地址为192.168.133.100,掩码长度为24
日志服务器配置的IP地址为192.168.133.129,掩码长度为24
现在要求在交换机上配置syslog,主动上传日志到日志服务器。
配置步骤
交换机上的配置
#1.配置交换机IP地址
<Huawei>system-view #进入系统视图
[Huawei]sysname Switch #配置系统名称位 Switch
[Switch]interface Vlanif 1 #进入三层VLANIF口1
[Switch-Vlanif1]ip add 192.168.133.100 24 #配置IP地址为192.168.133.100,掩码长度为24位
[Switch-Vlanif1]quit #退出三层VLANIF口1
[Switch]info-center enable #开启信息中心
[Switch]info-center loghost source Vlanif 1 #配置信息中心日志主机发送源为vlanif1
[Switch]info-center loghost 192.168.133.129 #配置信息中心日志主机的IP为192.168.133.129
————————————————
版权声明:本文为CSDN博主「猫先生的早茶」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43017750/article/details/89873469
科普时间
1.关于rsyslog的日志规则facitlity和priority
###rsyslog.conf中日志规则的定义的格式
facitlity.priority Target
#facility: 日志设备(可以理解为日志类型):
==============================================================
auth #pam产生的日志,认证日志
authpriv #ssh,ftp等登录信息的验证信息,认证授权认证
cron #时间任务相关
kern #内核
lpr #打印
mail #邮件
mark(syslog) #rsyslog服务内部的信息,时间标识
news #新闻组
user #用户程序产生的相关信息
uucp #unix to unix copy, unix主机之间相关的通讯
local 1~7 #自定义的日志设备
===============================================================
#priority: 级别日志级别:
=====================================================================
debug #有调式信息的,日志信息最多
info #一般信息的日志,最常用
notice #最具有重要性的普通条件的信息
warning, warn #警告级别
err, error #错误级别,阻止某个功能或者模块不能正常工作的信息
crit #严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert #需要立刻修改的信息
emerg, panic #内核崩溃等严重信息
###从上到下,级别从低到高,记录的信息越来越少,如果设置的日志内性为err,则日志不会记录比err级别低的日志,只会记录比err更高级别的日志,也包括err本身的日志。
=====================================================================
Target:
#文件, 如/var/log/messages
#用户, root,*(表示所有用户)
#日志服务器,@172.16.22.1
#管道 | COMMAND
2.如果日志数量太大,内容太多,可以进行过滤记录日志
简单的方法可以在rsyslog客户端上的配置
:msg, !contains, "informational"
*.* @主rsyslog服务器ip或者host
在传输配置的上一行增加一个过滤配置,格式是严格的,一定要在上一行增加过滤配置,这里的意思是日志内容出现informational的就不记录。详细的过滤方式在官网上有说,需要的话就要慢慢按照他的方式来使用。
参考文档:
1.http://litaotao.blog.51cto.com/6224470/1283871
2.http://ftp.ics.uci.edu/pub/centos0/ics-custom-build/BUILD/rsyslog-3.19...
3.http://www.cnblogs.com/tobeseeker/archive/2013/03/10/2953250.html
原文链接:
http://www.godblessyuan.com/2015/05/02/rsyslog_loganalyzer_setting/
001-CentOS 7系统搭建Rsyslog+LogAnalyzer解决交换机日志收的更多相关文章
- CentOS 6.7下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器
一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取 ...
- CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器
一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取 ...
- CentOS7.3下部署Rsyslog+LogAnalyzer+MySQL中央日志服务器
一.简介 1.LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中 ...
- 【原】无脑操作:Centos 7.6 + MariaDB + Rsyslog + LogAnalyzer环境搭建
背景: 网络安全法第三章第二十一条明确规定"采取监测.记录网络运行状态.网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月". 为了满足合规性的要求,应当建设相应的日 ...
- CentOS linux系统搭建LAMP环境
准备工作: 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A INPUT -m state –state NEW -m tcp -p tcp –dpo ...
- rsyslog+loganalyzer远程日志系统搭建教程(CentOS6.8)
一.说明 本文主要是对“CentOS 6.7搭建Rsyslog日志服务器”进行整理,同时在本地进行环境搭建,验证在CentOS6.8上的正确性. 二.安装配置rsyslog 1.清空iptables关 ...
- Centos7.6部署rsyslog+loganalyzer+mysql日志管理服务器
参考来自: the_script :https://yq.aliyun.com/articles/675198 名山.深处:https://www.cnblogs.com/skychenjiajun/ ...
- CentOS 7系统yum仓库搭建方法
YUM: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具,是为了进一步简化RPM管理软件难度以及自动分 ...
- 004-linux下配置rsyslog日志收集服务器案例 rsyslog+loganalyzer日志服务器,无法添加报表模板解决
centos6系统 client1:192.168.1.33 centos7系统 client2:192.168.1.44 centos7系统 master:192.168.1.55 配置服务端mas ...
随机推荐
- jsonp 原理 并模拟实现一个简单的jsonp
jsonp产生的背景 1.从原网站向目标网站(服务端)发送ajax请的时候,由于浏览器的安全策略(这两个网站只要域名,端口,协议 有一个不同就不允许请求访问)导致跨域,从而请求无法正常进行. 2.We ...
- JAVA8中Predicate,Consumer,UnaryOperator,Function接口的应用
笔者平时时间有限,直接贴代码,关于几个接口的差别,可以查看这两篇文章 感受lambda之美,推荐收藏,需要时查阅 https://juejin.im/post/5ce66801e51d455d850d ...
- k8s测试容器之间是否互通
[root@lab2 .kube]# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE curl-87b54756-rbqz ...
- Laravel6.0 使用 Jwt-auth 实现多用户接口认证
后台管理员认证 (admins 表) 首先创建数据库和表 (admins),在 routes/api.php 中,写上如下路由并创建对应控制器和方法. Route::namespace('Api')- ...
- 微信小程序wxml页面toFixed保留两位小数,wxs脚本语言
在wxml页面执行toFixed函数的时候发现失效,在微信小程序的js页面是生效的,但是我不希望在data中保留这些额外的数据,于是找到了下面这种解决方案wxs脚本语言. <wxs module ...
- flex与inline-flex
flex: 将对象作为弹性伸缩盒显示 inline-flex:将对象作为内联块级弹性伸缩盒显示 两者都是使子元素们弹性布局,但是如果是flex,父元素的尺寸不由子元素尺寸动态调整,不设置时默认是100 ...
- Mybatis操作数据时出现:java.sql.SQLSyntaxErrorException: Unknown column 'XXX' in 'field list'
这个错误比较重要,而且很常见,故单独进行说明: Mybatis出现:Unknown column 'xxx' in 'field list' 先来看一下程序的内部: dao.addUser(" ...
- Django模板系统-母板和继承
母板和继承 母版 html页面,提取多个页面的公共部分 定义多个block块,需要让子页面进行填充 <head> {% block page-css %} {% endblock %} & ...
- Adobe Acrobat XI 中文版激活方法
Adobe Acrobat XI不仅只是出色的PDF编辑.转换软件.此次更新深度整合了Microsoft Office套件,实现了PDF与Word.Excel以及PowerPoint等文档间的无缝相互 ...
- 【Python开发】python PIL读取图像转换为灰度图及另存为其它格式(也可批量改格式)
例如有一幅图,文件名为"a.jpg'. 读取: from PIL import Image #或直接import Image im = Image.open('a.jpg') 将图片转换成 ...