如何通过cacti收集linux服务器日志

如何通过cacti收集linux服务器日志,第1张

tar -zxvf settings-v071-1tgz 先安装"settings"插件

tar -zxvf syslog-v122-2tgz 再安装"syslog"插件

解压后要将以上两个目录放到cacti的"plugins"目录下

vi /var/www/html/cacti/plugins/syslog/configphp 配置syslog配置文件

if (!$use_cacti_db) {

$syslogdb_type = 'mysql';

$syslogdb_default = 'syslog';

$syslogdb_hostname = 'localhost';

$syslogdb_username = 'syslog'; 用户名自定义

$syslogdb_password = 'syslog'; 密码自定义

$syslogdb_port = 3306;

创建syslog数据库,使用syslogsql建表

mysql -u root -p 登陆Mysql数据库

show databases;

create database syslog;

insert into mysqluser(Host,User,Password) values("localhost","syslog",password("syslog")); 创建syslog账号、密码

flush privileges;

grant all on syslog to [email=cacti@localhost]cacti@localhost[/email] identified by 'syslog'; 将syslog数据库授权给上述syslog用户

flush privileges;

exit

  我觉得用系统备份工具备份,然后通过磁盘映射复制到linux环境中,在tar出来如何。

  Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

  Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

  严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

场景描述:一个Web应用,前端设置了8个具有相同配置的Tomcat服务器,跑在Nginx反向代理后。每个Tomcat服务器运行在一个虚拟机上,要求能对Tomcat服务器的访问日志汇总存储并提供一定的分析能力。

需要的开源软件:Logstash和Elasticsearch。通过在各个虚拟机上安装Logstash收集Tomcat的日志数据,并存储在Elasticsearch中达到日志集中收集和分析的目的。

过程有两个步骤:

一、配置Tomcat的日志存储格式。编辑Tomcat目录下serverxml,填写如下内容

<Host name="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="true">

<!-- Access log processes all example

 Documentation at: /docs/config/valvehtml

 Note: The pattern used is equivalent to using pattern="common" -->

<Valve className="orgapachecatalinavalvesAccessLogValve" directory="logs"  prefix="localhost_access_log" suffix="txt"   pattern="%h %l %u %t &quot;%r&quot; %s %b %D &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot;" />

</Host>

directory表示访问日志存储在Tomcat的logs目录中。

prefix表示日志文件名以localhost_access_log开头。

suffix表示日志文件名以txt截尾。

pattern="%h %l %u %t &quot;%r&quot; %s %b %D &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot;"

pattern这一句非常重要,用于表示日志的存储格式,一般为了方便会使用common或者combined,这两种自定义格式已经可以记录足够详细的信息,我这里使用了自定义方式。在这个pattern描述里:

%h表示访问来源的主机名或者IP地址;

%l表示客户端的标示,通常是 -;

%u表示得到了授权的访问者标示,通常都是 -;

%t表示日志事件的发生时间戳,用 [ 和 ] 括起来的;

&quot;%r&quot;表示用双引号&quot;括起来的访问命令和链接,比如“GET /resource/logopng”;

%s表示HTTP状态码,如200和404等;

%b是服务器返回的数据量,以字节为单位;

%D表示服务器的响应时间,可以用于分析页面的执行效率;

&quot;%{Referer}i&quot;表示用两个双引号括起来的网址,用于告诉服务器这个访问请求是从哪个页面链接过来的;

&quot;%{User-Agent}i&quot;表示用双引号括起来的浏览器的HTTP代理信息,可以得到客户端使用了什么浏览器内核。

二、配置Logstash

1、在每个虚拟机上传logstash安装文件,安装logstash,以222版本为例

rpm -ivh logstash-222-1noarchrpm

2、创建Logstash的工作目录

mkdir /root/logstash_work_dir;mkdir /root/logstash_work_dir/config;mkdir /root/logstash_work_dir/logs;mkdir /root/logstash_work_dir/pid

其中/root/logstash_work_dir是工作目录,config目录用于存储Logstash的配置文件,logs目录用于存储Logstash的日志数据,pid目录用于存储Logstash的pid文件。

3、设置Logstash的运行脚本,修改/etc/initd/logstash中,替换其中的代码如下

LS_WORK_DIR=/root/logstash_work_dir

name=logstash

LS_USER=root

LS_GROUP=root

LS_HOME=/var/lib/logstash

LS_HEAP_SIZE="1g"

pidfile=${LS_WORK_DIR}/pid/$namepid

LS_LOG_DIR=${LS_WORK_DIR}/logs

LS_LOG_FILE=${LS_WORK_DIR}/logs/$namelog

LS_CONF_DIR=${LS_WORK_DIR}/config/root_tomcatconf

LS_OPEN_FILES=16384

LS_NICE=19

LS_OPTS=""

LS_USER和LS_GROUP指定了Logstash进程运行时的用户名和组,我这里使用了root,也可以使用其他权限更低的一般用户和组。

LS_CONF_DIR=${LS_WORK_DIR}/config/root_tomcatconf这一句最重要,指定了Logstash服务运行时的配置文件路径。

4、在/root/logstash_work_dir/config/目录中编写Logstash的配置文件root_tomcatconf,这是本系统最重要的文件。

input {

file {  

path => "/root/tomcat/logs/localhost_access_logtxt"  

sincedb_path => "/root/logstash_work_dir/config/sincedb_apache_access_logtxt"

type => "apache_access_log"

add_field => {"tomcatip" => "101281861"}

}  

}

filter{

if [type] == "apache_access_log" {

grok{

match => { "message" => "%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] \"(:%{WORD:verb} %{URIPATHPARAM:request}(: HTTP/%{NUMBER:httpversion})|-)\" %{NUMBER:response} (:%{NUMBER:bytes}|-) %{NUMBER:responsetime} \"(:%{URI:referrer}|-)\" %{QS:agent}" }

}

date{

match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]

target => ["writetime"]

}

mutate {

convert => { 

"response" => "integer" 

"bytes" => "integer" 

"responsetime" => "integer" 

}

}

}

}

output {

if [type] == "apache_access_log" {

elasticsearch {

hosts => ["101281874:9200","101281875:9200","101281877:9200"]

index => "logstash-apacheaccesslog-%{+YYYYMMdd}"

}

}

}

Logstash的配置文件包括input、filter和output三部分。

input部分,使用了file插件。path指定了Logstash扫描的文件,每当有文件变化时,Logstash会读取文件尾部新增的数据;sincedb_path用于存储上一次文件读取的位置信息,如果这个文件不存在,则会从日志文件首部获取所有数据;type用于对这个配置插件做标识,当一个配置文件中有多个数据收集任务时尤其有用;add_field用于标识本机的ip地址,当数据存储在Elasticsearch后,用于区分来自哪一个Tomcat服务器。

filter插件,使用了grok、date和mutate三个插件。

grok插件用于解析Tomcat的访问日志,logstash自带了COMBINEDAPACHELOG等多个配置模式,但由于我使用了自定义的Tomcat日志配置,这里也自己编写;

date部分用于从日志中提取时间戳信息;

mutate中用convert将response、byte和responsetime三个解析得到的字符串转化为整数integer类型,这个步骤对于后续的分析比较重要,因为这样可以在Elasticsearch中做数值比较运算。

output插件,使用了elasticsearch插件,其中hosts指定了Elasticsearch集群的地址,本例子中指定了三个实例;index指定了数据存储在Elasticsearch中的索引名字,以logstash作为开头是因为Logstash自带的针对ELasticsearch的mapping映射中,对于所有的字符串类型都附带设置了一个raw不做解析的设置,这样便于在Elasticsearch中做底层的文本检索。

5、设置chkconfig的启动命令

chkconfig --add logstash

6、启动Logstash服务

service logstash start

收集windows日志到日志服务器的方法

1、下载并解压缩文档evtsys_443_64-bit

2、复制相关文件(exe和dll文件)到c:\windows\system32目录

3、双击exe文件,生成cfg文件

4、然后在cmd下执行:c:\windows\system32>

evtsysexe

-i

-h

10112

-p

514

这个是标准格式,亦可精简为:

参数说明:

i是安装成window服务;

h是syslog服务器地址;10112

为syslog日志服务器

p是syslog服务器的接收端口。

默认下,端口可以省略,默认是514

启动evtsys服务,命令是:

5,此时服务出现eventlog

to

syslog服务,通过syslog服务器也能够查询到系统日志,表示安装成功。

利用Windows 2003服务器的远程维护功能,并通过IE浏览界面,就能对服务器的日志文件进行远程查看了,不过默认状态下,Windows 2003服务器的远程维护功能并没有开通,需要手工启动。

查看服务器日志文件的作用

  网站服务器日志记录了web服务器接收处理请求以及运行时错误等各种原始信息。通 过对日志进行统计、分析、综合,就能有效地掌握服务器的运行状况,发现和排除错误原 因、了解客户访问分布等,更好的加强系统的维护和管理。

  对于自己有服务器的朋友或是有条件可以看到服务器日志文件的朋友来说,无疑是了 解搜索引擎工作原理和搜索引擎对网页抓取频率的最佳途径。

  通过这个文件,您可以了解什么搜索引擎、什么时间、抓取了哪些页面,以及可以知 道是主搜索蜘蛛还是从搜索蜘蛛抓取了您的网站等的信息。

  访问原理

  1、客户端(浏览器)和Web服务器建立TCP连接,连接建立以后,向Web服务器发出 访问请求(如:Get),根据HTTP协议该请求中包含了客户端的IP地址、浏览器类型、 请求的URL等一系列信息。

  2、Web服务器收到请求后,将客户端要求的页面内容返回到客户端。如果出现错误,那么返回错误代码。

  3、服务器端将访问信息和错误信息纪录到日志文件里。

  下面我们就对本公司自己服务器其中的一个日志文件进行分析。由于文件比较长,所以我们只拿出典型的几种情况来说明。

  #Software: Microsoft Internet Information Services 60

  #Version: 10

  #Date: 2006-05-12 03:56:30

  #Fields:

date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port

cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status

  2006-05-12

03:56:30 三圆三圆三圆 2182592169 GET / - 80 - 2201811898

Baiduspider+(+http://wwwbaiducom/search/spiderhtm) 403 14 5

  / 说明 /

  上面定义了在2006年5月12日的3点56分30秒的时候,IP为2201811898的百度蜘蛛通过80端口(HTTP)访问了IP为2182592169的服务器的根目录,但被拒绝。

  #Software: Microsoft Internet Information Services 60

  #Version: 10

  #Date: 2006-05-12 10:18:39

  #Fields:

date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port

cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status

  2006-05-12

10:33:36 三圆三圆三圆 2182592169 GET //indexhtm - 80 - 102576

Mozilla/40+(compatible;+MSIE+60;+Windows+NT+51;+SV1) 200 0 0

  2006-05-12

10:33:36 三圆三圆三圆 2182592169 GET ///gif - 80 - 102576

Mozilla/40+(compatible;+MSIE+60;+Windows+NT+51;+SV1) 200 0 0

  / 说明 /

  上面定义了在2006年5月12日的10点33分36秒的时候,IP为102576的用户正常访问了网站三圆三圆三圆中目录下的indexhtm页和/下的。gif。

  #Software: Microsoft Internet Information Services 60

  #Version: 10

  #Date: 2006-05-12 13:17:46

  #Fields:

date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port

cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status

  2006-05-12

13:17:46 三圆三圆三圆 2182592169 GET /robotstxt - 80 - 662496672

Mozilla/50+(compatible;+Googlebot/21;++http://wwwgooglecom/bothtml)

404 0 2

  2006-05-12 13:17:46 三圆三圆三圆 2182592169 GET / - 80 -

662496672

Mozilla/50+(compatible;+Googlebot/21;++http://wwwgooglecom/bothtml)

403 14 5

  / 说明 /

  上面定义了在2006年5月12日的13点17分46秒的时候,IP为662496672的Google蜘蛛访问了robotstxt文件,但没有找到此文件,有访问了此网站的根目 录,但被拒绝。

  现在也有很多日志分析工具,如果您的服务器流量很大的话,作者推荐使用分析工具来分析服务器日志。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何通过cacti收集linux服务器日志

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情