发现其实是在国外IGP项目竞选的时候,一个非常不错的idea,当时是Robert提出的构建这个日志管理平台,私底下看他演示了demo,首先具有可视化后台日志数据,这点很实用。后来发现,graylog的真正强大,是它赋予日志管理系统具有google的能力,即可以对日志进行全文搜索,他多次这样形容:“Anything can be…, Anything can be…”。然而,太过超前的概念,若你所处的环境无法理解,结果总是会很不幸。
我在一篇博客上看到这样的评价“Graylog简直就是开源版的Splunk”,后者是著名的企业级超级日志管理系统,然而收费高达3万美金。再次佐证一个真理:知识就是财富。
其实,对于后台运维的需求,无非“可视化/报警/报告”这些。国内一些相关初创公司发展迅猛,像“轻云”和“one”,可以提供服务器的相关业务的“探针”服务,检测性能及后台日志。整合下来,我知道的还有zabbix,但是配置起来较graylog麻烦一些。所以暂时还没了解。
前面互联网的浪潮快速发展,业务类型跟着层层迭代,而后端对于服务器的运维需求也在不断提高,若初期不能考虑到后端运维,随着业务往后的发展逐渐暴露出问题,运维的效率往往有时候可以决定产品发展的速度。
Graylog图解
部署图
Web界面截图:
最小安装:
<br>生产工具安装:架构图
从官网上截的一张图:
安装手册
软件清单
- Mongodb 3.0
- Elasticsearch 1.5
- graylog-server 1.3
- graylog-web 1.3
安装环境
CentOS6.6,服务器IP:ITStudio的linux主机地址,已安装Oracle jdk 7u71
安装步骤
1. mongodb
[root@logserver yum.repos.d]# vim /etc/yum.repos.d/mongodb-org-3.0.repo---[mongodb-org-3.0]name=MongoDB Repositorybaseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/gpgcheck=0enabled=1---[root@logserver yum.repos.d]# yum install -y mongodb-org[root@logserver yum.repos.d]# vi /etc/yum.conf最后一行添加:---exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools---[root@logserver yum.repos.d]# service mongod start[root@logserver yum.repos.d]# chkconfig mongod on[root@logserver yum.repos.d]# vi /etc/security/limits.conf最后一行添加:---* soft nproc 65536* hard nproc 65536mongod soft nproc 65536* soft nofile 131072* hard nofile 131072---[root@logserver ~]# vi /etc/init.d/mongodulimit -f unlimited 行前插入:--- if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi---[root@logserver ~]# /etc/init.d/mongod restart复制代码
2. elasticsearch
elasticsearch 最新版本已经达到2.3,而Graylog官方说明暂不支持2.x版本,推荐1.7.3版本,可自己曾经配置时,依然出现了问题,各种报错。偶然使用了1.5版本却配置成功了。这里就记录下吧,主要是是综合考虑各个组件的相互兼容性,所以这里依然使用1.5版本。
[root@logserver ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch[root@logserver ~]# vi /etc/yum.repos.d/elasticsearch.repo---[elasticsearch-1.5]name=Elasticsearch repository for 1.5.x packagesbaseurl=http://packages.elastic.co/elasticsearch/1.5/centosgpgcheck=1gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearchenabled=1---[root@logserver ~]# yum install elasticsearch[root@logserver ~]# chkconfig --add elasticsearch[root@logserver ~]# vi /etc/elasticsearch/elasticsearch.yml 32 cluster.name: graylog[root@logserver ~]# /etc/init.d/elasticsearch start[root@logserver ~]# curl localhost:9200复制代码
3. graylog
//输入以下命令即安装最新版本的graylog:$ sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-1.3- repository-el6_latest.rpm$ sudo yum install graylog-server graylog-web[root@logserver ~]# /etc/init.d/graylog-server startStarting graylog-server: [确定]启动失败![root@logserver ~]# cat /var/log/graylog-server/server.log2015-05-22T15:53:14.962+08:00 INFO [CmdLineTool] Loaded plugins: []2015-05-22T15:53:15.032+08:00 ERROR [Server] No password secret set. Please define password_secret in your graylog2.conf.2015-05-22T15:53:15.033+08:00 ERROR [CmdLineTool] Validating configuration file failed - exiting.[root@logserver ~]# yum install pwgen[root@logserver ~]# pwgen -N 1 -s 96zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz[root@logserver ~]# echo -n 123456 sha256sum xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -[root@logserver ~]# vi /etc/graylog/server/server.conf11 password_secret = zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...22 root_password_sha2 = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...152 elasticsearch_cluster_name = graylog[root@logserver ~]# /etc/init.d/graylog-server restart启动成功![root@logserver ~]# /etc/init.d/graylog-web startStarting graylog-web: [确定]启动失败![root@logserver ~]# cat /var/log/graylog-web/application.log2015-05-22T15:53:22.960+08:00 - [ERROR] - from lib.Global in main Please configure application.secret in your conf/graylog-web-interface.conf2015-05-22T16:25:55.343+08:00 - [ERROR] - from lib.Global in main Please configure application.secret in your conf/graylog-web-interface.conf[root@logserver ~]# pwgen -N 1 -s 96yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy[root@logserver ~]# vi /etc/graylog/web/web.conf---2 graylog2-server.uris="http://127.0.0.1:12900/"12 application.secret="yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"---注意:/etc/graylog/web/web.conf中的graylog2-server.uris值必须与/etc/graylog/server/server.conf中的rest_listen_uri一致---36 rest_listen_uri = http://127.0.0.1:12900/---[root@logserver ~]# /etc/init.d/graylog-web start复制代码
浏览器中输入url: 可以进入graylog登录页,
管理员帐号/密码: admin/1234564. 添加日志收集器
以admin登录http://IP_adress:9000/
4.1 <br>进入 System > Inputs > Inputs in Cluster > Raw/Plaintext TCP Launch new input 取名”tcp 5555″ 完成创建
任何安装nc的Linux机器上执行:
echo `date` nc IP_adress 5555复制代码
浏览器的http://IP_adress:9000/登录后首页 ,点击第三行绿色搜索按钮,看到一条新消息:
Timestamp Source Message 2016-04-10 08:49:15.280 59.70.156.6 2016年 04月 10日 星期日 16:48:28 CST复制代码
截图:
<br>说明安装已成功!!!
4.2<br>进入 System > Inputs > Inputs in Cluster > GELF HTTP Launch new input
<br>取名”http 12201″ 完成创建<br>任何安装curl的Linux机器上执行:curl -XPOST http://IP_adress/gelf -p0 -d '{ "short_message":"Hello there", "host":"example.org", "facility":"test", "_foo":"bar"}'复制代码
浏览器的http://IP_adress:9000/登录后,点击第三行绿色搜索按钮,看到一条新消息:
Timestamp Source Message 2016-04-10 20:50:42.936 59.70.156.6 Hello Graylog,From Bei.复制代码
截图:
<br>说明GELF HTTP Input设置成功!!!
5.时区和高亮设置
admin帐号的时区:
[root@logserver ~]# vi /etc/graylog/server/server.conf---30 root_timezone = Asia/Shanghai---[root@logserver ~]# /etc/init.d/graylog-server restart复制代码
其他帐号的默认时区:
[root@logserver ~]# vi /etc/graylog/web/web.conf---18 timezone="Asia/Shanghai"---[root@logserver ~]# /etc/init.d/graylog-web restart复制代码
允许查询结果高亮:
[root@logserver ~]# vi /etc/graylog/server/server.conf---147 allow_highlighting = true---[root@logserver ~]# /etc/init.d/graylog-server restart复制代码
至此,Gray的部署工作已完成。后期跟上配置相对应服务的文章。
参考文献