设为首页 收藏本站
查看: 777|回复: 0

[经验分享] 基于rsyslog+mysql+loganalyzer构建一个小而美的日志服务器

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-1-11 09:45:27 | 显示全部楼层 |阅读模式
前言:

    每当我们遇到问题抓耳挠腮,一脸懵那啥的时候,也许看一下日志就瞬间豁然开朗,所以,一个易用的日志服务器还是很重要的。我们先不介绍elk,那个牛逼吊炸天的日志分析系统。今天我们先来构建一个小的日志服务器。elk我们以后再说~

正文:
    当我们配置完一个服务,启动报错时,那感觉就像吃了啥一样,别提多难受,除非服务程序本身有检测配置文件的程序,不然我们就得依赖linux自己的集中日志服务器rsyslog了。不过,有时候也许我们想搜索一下某条日志,或者向用可视化的界面进行统计分析。此时我们可以把日志数据保存到mysql中,并且通过loganalyzer以web界面展示出来,方便我们查询,搜索,统计~以后,我们都反着来,先将实现,再讲理论~~~
    rsyslog的主要配置文件是/etc/rsyslog.conf,我们先开启其监听端口,让它不仅可以收集本机的日志,还可以收集其他主机的日志。配置如下。


1
2
3
4
5
6
7
8
9
#/etc/rsyslog.conf
#### MODULES ####
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514



    我们要把日志数据保存到mysql中,首先我们配置我们的数据库服务

1
2
3
4
5
6
7
#yum install mariadb-server                centos7,6中用mysql配置差不多
#mysql                       通过mysql命令连接到数据库
mysql>GRANT ALL ON Syslog.* TO 'syslog'@'127.0.0.1' IDENTIFIED BY 'syslog';
         数据库名为Syslog,用户syslog可以通过127.0.0.1访问此数据库的所有表,密码为syslog
#yum install rsyslog-mysql                    #安装mysql模块相关程序包
#mysql -usyslog -h127.0.0.1 -psyslog < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql
         导入数据库~这样就不用我们自己建数据库的表之类的东东啦



默认我们的配置是保存到日志文件中的,我们得让日志保存到数据库中,配置一下rsyslog的配置文件
1
2
3
4
5
6
#### MODULES ####
$ModLoad ommysql      添加相关的模块

#### RULES ####
*.info;mail.none;authpriv.none;cron.none       :ommysql:127.0.0.1,Syslog,syslog,syslog
    把除了mail,authpriv,cron的日志保存到mysql中。



然后我们重启rsyslog服务
1
2
systemctl restart rsyslog                           Centos7中这样重启服务
service rsyslogs restart                            Centos6中这样



第二部就是配置我们的loganalyzer了。因为此程序貌似以及不更新了,所以我们得用源码安装,不过在此之前得先安装lamp环境。

1
2
3
4
5
6
#yum install httpd php php-mysql php-gd
# tar xf loganalyzer-3.6.5.tar.gz
# cp -a loganalyzer-3.6.5/src  /var/www/html/loganalyzer
#  cd  /var/www/html/loganalyzer
# touch config.php
# chmod 666 config.php



然后就启动httpd服务啦~~
1
systemctl start httpd



到此我们就可以用浏览器访问loganalyzer了:http://你主机的ip/loganalyzer。
web界面的配置接不详细解释了,基本上就是一直按next,除了有一步骤得配置mysql以外都保持默认就好。
QQ截图20170111094450.png

到此我们就配置完毕了,至于具体的功能就自己探索吧~~~
配置完了我们就来讲讲理论咯~

centos6之前,是一个叫做syslog的东东来记录日志,他主要分两部分,klogd和syslogd,klogd是基于内核的,syslogd就是一个系统上的应用程序了。他们主要是通过TCP或UDP协议的服务完成日志记录传送。
centos6开始就是我们现在使用的rsyslog了,首先它支持多线程,而且可以通过更多的协议来传送日志,比如SSL/TLS/RELP等等,而且还能把日志信息存储在各种数据库中,比如MYSQL,PGSQL,Oracle等。其他还有什么等自定义输出格式呀等等。
第三种就是那个高大上,并且目前很流行的ELK,它是由三个东东组合起来的称呼。
E:elasticsearch,一个分布式搜索引擎,毕竟讲道理来说我们日常操作搜索大于其他方式。
L:logstash,就是用来收集,分析日志的东东
K:kibana,嗯,提供web可视化界面的。
elk我们后面再探讨~
rsyslog主要可以收集以下东东产生的日志。被称为facility。
1
auth(认证相关), authpriv(认证授权), cron, daemon(守护进程), kern(内核), lpr(打印系统), mail(邮件系统), mark(内核防火墙标记), news(新闻组), security(安全相关),user(用户自己产生的日志), uucp(一个很古老的协议), syslog(自己的), local0-local7(用户可自定义的)



还有一个概念就是优先级   proirity,从低到高有以下几种
1
debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)



说了这么多,当然是有用的东东,我们可以用这两个东东来自定义如何收集日志。语法如下
1
facility.priority  target



表示谁(facility)产生的哪些级别(priority)的日志,要以什么形式(target)处理。
*表示所有的facility,我们也可以自行指定:f1,f2,f3。。。
*表示所有级别,none表示没有级别,PRIORITY表示指定级别及其以上的所有级别,=PRIORITY表示仅记录指定级别的日志信息。
举个例子:*.* 就宝石所有类型,所有级别的日志,*.info表示所有类型,info及以上优先级的日志。
既然已经选择出了我们要处理的日志,就可以通过target字段,指定怎么处理日志。
比如,保存到文件啦,/var/log/message  将时间通知给用户啦,通过网络把日志送往指定的日志服务器啦,或者通过管道用命令处理,|COMMAND.
ok!理论到此结束~~~~


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-326845-1-1.html 上篇帖子: Linux时间戳atime ctime mtime区别及相关命令 下篇帖子: RHEL6.4更改为CentOS6.4的yum源 服务器 mysql 美的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表