TL,DR: 使用Docker compose进行安装吧。
安装环境
目前使用Debian 9 (Strech)netinstall 包安装,2核4G内存完全可以跑动,根据日志数量可以适量增加配置。特别注意磁盘空间。
安装内容包含openjdk, mongodb,elastic-search, graylog
默认都使用了root账号登陆,所以命令中都没有使用sudo
TODO:
根据 https://cs.uwaterloo.ca/~brecht/servers/openfiles.html 添加打开文件描述到最大
技术架构解释
三个服务
Mongodb:一个nosql 数据库,负责存储graylog的配置信息,例如 部分系统参数,用户信息。系统的对 mongodb服务器要求不高。
Elasticsearch:高效文本存储和索引工具,日志都存在它里面,它对日志进行索引,提高快速搜索服务,主要卖力的模块,所有的
Graylog:主角,日志处理工具,负责接收日志,将日志加工和放入Elasticsearch进行索引,有方便的网页界面。
还有例如Filebeat,winlogbeat是一些agent,是真正获取日志并发送到graylog的工具。
周边工具
Browser(client): graylog自带的一个SPA的前端用户界面。
Sidecar,filebeat等:日志输入工具,将其他系统的日志发送到Graylog的工具。
安装JDK8
apt update && sudo apt upgrade apt install apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen dirmngr
安装完成后,可以配置一下JAVA_HOME,百度一下应该有。
安装MongoDB
安装官方的MongoDB
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 echo "deb <http://repo.mongodb.org/apt/debian> stretch/mongodb-org/4.0 main" | tee /etc/apt/sources.list.d/mongodb-org-4.0.list apt-get update apt-get install -y mongodb-org
第一行添加Ubuntu的gpg key,第二行添加mongodb的官方源,第三行从mongodb源获取安装信息,第4行安装mongodb
运行下面命令启动Mongodb
systemctl daemon-reload systemctl enable mongod.service systemctl restart mongod.service
安装Elastic Search
安装
从elstic官方源安装Elastic Search开源版本
$ wget -qO - <https://artifacts.elastic.co/GPG-KEY-elasticsearch> | apt-key add - $ echo "deb <https://artifacts.elastic.co/packages/oss-6.x/apt> stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.list $ apt update && apt install elasticsearch-oss
修改Elastic Search的配置文件
/etc/elasticsearch/elasticsearch.yml
,将cluster name
修改成graylog
,并去掉action.auto_create_index: false
前的#cluster.name: graylog action.auto_create_index: false
启动
修改完成配置后,运行下面命令,重启Elastic search
systemctl daemon-reload systemctl enable elasticsearch.service systemctl restart elasticsearch.service
启动后,可以检查一下elasticsearch是否启动成功
curl localhost:9200
ElasticSearch 性能和配置优化
参考官方,配置一下JVM,然后重启ES
https://www.elastic.co/guide/cn/elasticsearch/guide/current/heap-sizing.htmlhttps://www.elastic.co/guide/cn/elasticsearch/guide/current/_file_descriptors_and_mmap.html
安装Graylog
从官方源安装Graylog
wget <https://packages.graylog2.org/repo/packages/graylog-3.0-repository_latest.deb> dpkg -i graylog-3.0-repository_latest.deb apt update && apt install graylog-server
安装完成后,graylog不会自动启动,需要先进行配置。
配置
password-secret
,运行pwgen -N 1 -s 96
将生成的密码配置在
password-secret
中。配置日志接收接口
安装日志收集器
Graylog支持多种日志收集模式,支持syslog标准接口,但是在实现的时候,为了减少开发内容,直接使用的Graylog的Sidecar进行日志收集。Sidecar的工作方式是定期 tail 日志文件,将新增的日志发送到Graylog服务器。
详细配置文件见
http://docs.graylog.org/en/2.4/pages/collector_sidecar.html
目前sidecar主要有两个版本
Sidecar和graylog版本适配
注意不要下载错了。
下载对应系统的环境包
https://github.com/Graylog2/collector-sidecar/releases
Sidecar支持Windows,Linux。
下载对应系统的安装包,使用相应的命令进行安装。
Debian的命令如下,CentOS的见官方文档
dpkg -i collector-sidecar_0.0.9-1_amd64.deb #安装
配置sidecar,编辑
/etc/graylog/collector-sidecar/collector_sidecar.yml
按我们目前的安装环境,配置文件请参考目前生产服务器上的配置文件
示例如下
server_url: <http://10.150.40.3:9001/api/> update_interval: 30 tls_skip_verify: false send_status: true list_log_files: node_id: gfss_prd collector_id: file:/etc/graylog/collector-sidecar/collector-id cache_path: /var/cache/graylog/collector-sidecar log_path: /var/log/graylog/collector-sidecar log_rotation_time: 86400 log_max_age: 604800 tags: - gfss_prd backends: - name: nxlog enabled: false binary_path: /usr/bin/nxlog configuration_path: /etc/graylog/collector-sidecar/generated/nxlog.conf - name: filebeat enabled: true binary_path: /usr/bin/filebeat configuration_path: /etc/graylog/collector-sidecar/generated/filebeat.yml
完成配置后,即可尝试启动服务。
graylog-collector-sidecar -service install #安装服务 systemctl start graylog-collector-sidecar # 启动collector #检查是否启动有问题,如果没有问题 systemctl enable graylog-collector-sidecar #配置开机自启动