前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 日志服务器

Linux 日志服务器

作者头像
全栈程序员站长
发布2022-07-05 09:13:44
1.3K0
发布2022-07-05 09:13:44
举报
文章被收录于专栏:全栈程序员必看

Linux 下的rsyslog有向远程发送日志的功能,出于安全和审计需要,可以将服务器的日志集中起来管理。加上图形化的日志分析工具,我们可以很直观的发现日志中的问题,配合常规的监控系统,以实现基于日志的颗粒化运维。

日志服务器的运作机制大致是这样的:

1、客户端将日志发送到服务器,服务端的日志里于是出现了客户端的日志

2、服务端将日志导入mysql,通过php程序进行日志分析并显示在网页上。

环境:CentOS 6.3 x64

服务端:loganalyzer.test.org 192.168.1.249

客户端:apache01.test.org 192.168.1.21

一、配置基本的日志服务器

1、在服务端开启接收日志选项,编辑/etc/rsyslog.conf,取消下面两行注释:

代码语言:javascript
复制
$ModLoad imtcp  $InputTCPServerRun 514

这会让rsyslog监听本地tcp 514端口,请注意iptables防火墙要打开该端口。

同理,如果需要监听udp 514端口,则启用下面这段代码

代码语言:javascript
复制
$ModLoad imudp $UDPServerRun 514

2、在客户端修改开启发送日志选项,编辑/etc/rsyslog.conf ,在行末添加如下内容:

代码语言:javascript
复制
*.*   @@192.168.1.249

也可以写域名,但是为了减少依赖和服务的可靠性,建议使用IP地址。

全部日志发送的话,感觉有很多垃圾,比如cron日志,可以选择性的发送一些日志

代码语言:javascript
复制
*.info;mail.none;cron.none   @@192.168.1.249

注意:上面有两个@,如果服务端采用udp协议,则只需要一个@

1

代码语言:javascript
复制
*.*   @192.168.1.249

tcp更稳定可靠,udp更快速高效, 请根据需要选择。

3、重启rsyslog服务

代码语言:javascript
复制
/etc/init.d/rsyslog restart

不出意外,在服务端应该就可以看到客户端的日志了。

二、在服务端配置loganalyzer

1、安装LAMP

代码语言:javascript
复制
yum -y install httpd mysql-server php php-mysql php-gd php-xml php-xmlrpc php-mbstring php-mcrypt php-snmp  --enablerepo=epel    sed -i '/ServerTokens/{s/OS/Minor/g}' /etc/httpd/conf/httpd.conf    sed -i '/ServerSignature/{s/On/Off/g}' /etc/httpd/conf/httpd.conf    echo "<?php phpinfo();phpinfo(INFO_MODULES);?>"  >/var/www/html/index.php    sed -i '/;date.timezone/{s/;//g;s/=/= Asia\/Shanghai/g}' /etc/php.ini

2、配置rsyslog-mysql

代码语言:javascript
复制
yum install rsyslog-mysql -y chkconfig --level 2345 mysqld on /etc/init.d/mysqld start mysql_secure_installation

找到 /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql,

导入数据库:

代码语言:javascript
复制
 # mysql -u root -p </usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

这会创建一个数据库loganalyzer,和两个表 SystemEvents / SystemEventsProperties

授予权限

代码语言:javascript
复制
mysql -u root -p -e "GRANT ALL PRIVILEGES ON loganalyzer.* TO rsyslog@localhost IDENTIFIED BY  'rsyslogpassword';"  mysql -u root -p -e "flush privileges;"

编辑/etc/rsyslog.conf

在文件末尾添加两行让系统日志导入到mysql中去

代码语言:javascript
复制
$ModLoad MySQL  *.*       >127.0.0.1,loganalyzer,rsyslog,rsyslogpassword

后面三个字符段的格式是:【数据库名】【用户名】【密码】,之间用逗号分开

重启服务

代码语言:javascript
复制
/etc/init.d/rsyslog restart

配置检查

tail /var/log/message 是否有数据库连接报错

登录mysql,检查Syslog数据库中的SystemEvents是否依然为空

代码语言:javascript
复制
# mysql -u root -p -e "select * from loganalyzer.SystemEvents;"
代码语言:javascript
复制
3、配置loganalyzer第一、二、三步直接next,然后跳到第七步,选择下列值(注意大小写!!)
代码语言:javascript
复制
第八步,完成配置

如果不幸配置失败,可以清空文件config.php来重新配置loganalyerzer 。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/110354.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年8月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档