Graylog Server:这个服务负责接收和处理日志/消息,并且和其他组件交互
Elasticsearch:存储所有的日志,它的性能依赖内存和硬盘IO
MongoDB:存储元数据,负载不高
Web接口:用户接口
1. 一体化方案,安装方便,不像ELK有3个独立系统间的集成问题。
2. 采集原始日志,并可以事后再添加字段,比如http_status_code,response_time等等。
3. 自己开发采集日志的脚本,并用curl/nc发送到Graylog Server,发送格式是自定义的GELF,Flunted和Logstash都有相应的输出GELF消息的插件。自己开发带来很大的自由度。实际上只需要用inotify_wait监控日志的MODIFY事件,并把日志的新增行用curl/nc发送到Graylog Server就可。
4. 搜索结果高亮显示,就像google一样。
5. 搜索语法简单,比如: source:mongo AND reponse_time_ms:>5000 ,避免直接输入elasticsearch搜索json语法
6. 搜索条件可以导出为elasticsearch的搜索json文本,方便直接开发调用elasticsearch rest api的搜索脚本。
CentOS Linux release 7.4.1708 (Core)
8G memory
yum install java-1.8.0-openjdk-headless.x86_64 -y
yum install epel-release -y
yum install pwgen -y
首先新增repo并写入以下内容
vim /etc/yum.repos.d/mongodb-org-3.2.repo
[mongodb-org-3.2]
name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
保存后执行以下命令安装mongodb
yum install mongodb-org -y
安装完毕后,把mongodb加入开机启动项并运行
chkconfig --add mongod
systemctl daemon-reload
systemctl enable mongod.service
systemctl start mongod.service
查看mongodb服务是否成功为running状态
systemctl status mongod
Gralog 2.3.x 对应安装 Elasticsearch 5.x
首先安装Elastic GPG key,然后添加repo
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
vi /etc/yum.repos.d/elasticsearch.repo
repo中添加以下内容
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
保存后执行以下命令安装elasticsearch
yum install elasticsearch -y
安装后编辑 vi /etc/elasticsearch/elasticsearch.yml 文件,改动以下内容
cluster.name: graylog
把elasticsearch加入开机启动项并运行
chkconfig --add elasticsearch
systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl restart elasticsearch.service
执行以下命令进行repo配置与graylog安装
rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.3-repository_latest.rpm
yum install graylog-server -y
在启动graylog之前,必须先行在配置文件中配置密码,否则graylog无法启动成功
执行以下命令哈希化root密码,所产生密码用于初始化配置,无法通过API或WEB UI进行更改,只能手动更改配置文件
[root@localhost ~]# echo -n password | sha256sum
5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 -
然后把生成的密码配置给root_password_sha2,如下
root_password_sha2 =5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
为了安全存储用户密码,需要执行以下命令生成密钥,然后配置给 password_secret
[root@localhost ~]# pwgen -N 1 -s 96
kFUFveRVKCM5vzt68Ko8CpUTGcC1utyjo75EEwWYVlDplBUzo7CELn2qIgGAZdvQYV5O4A3GqSoSiD24ivkoz6WrC9f9wW5z
password_secret =kFUFveRVKCM5vzt68Ko8CpUTGcC1utyjo75EEwWYVlDplBUzo7CELn2qIgGAZdvQYV5O4A3GqSoSiD24ivkoz6WrC9f9wW5z
用户名默认为admin,如需更改,可直接在配置文件中更改
# The default root user is named 'admin'
#root_username = admin
rest_listen_uri和web_listen_uri中的地址修改成公网IP
rest_listen_uri = https://192.168.66.17:9000/api/
web_listen_uri = https://192.168.66.17:9000/
保存配置文件退出后执行以下命令加入开机启动和运行
chkconfig --add graylog-server
systemctl daemon-reload
systemctl enable graylog-server.service
systemctl start graylog-server.service
https://192.168.66.17:9000/
安装操作至此完成,后续操作就是如何传入日志和字段抽取以及可视化展示了
[注意]如果安装和开启服务后无法访问,可能是防火墙的问题
编辑 vi /etc/selinux/config
SELINUX=disabled