前言
因为先前的日志收集系统存在一些功能缺陷,经过一番了解,最后决定布署Graylog3,本文包含Graylog3服务器&客户端的布署
服务器组件列表
OS: Centos 7
oracle jdk: jdk-8u251-linux-x64.tar.gz
mongodb: mongodb-linux-x86_64-3.6.13.tgz
elasticsearch : elasticsearch-6.8.3.rpm
graylogserver: graylog-3.1-repository_latest.rpm
客户端组件
- Windows:
graylog-sidecar: graylog_sidecar_installer_1.0.2-1.exe
- Linux:
graylog-sidecar: graylog-sidecar-1.0.0-1.x86_64.rpm
filebeat: filebeat-7.4.0-x86_64.rpm
服务器ip: 172.24.42.11
安装 jdk
到官网下载 jdk1.8
下载页面: https://www.oracle.com/java/technologies/javase-downloads.html
1 2 | # mkdir /home/java # tar -zxvf jdk-8u251-linux-x64.tar.gz -C /home/java |
修改环境变量
1 2 3 4 5 | # vim /etc/profile 添加 export JAVA_CMD=/home/java/jdk1.8.0_251/bin export JAVA_HOME=/home/java/jdk1.8.0_251 export PATH=$PATH:$JAVA_HOME/bin |
生效
1 | # source /etc/profile |
验证
1 2 3 4 | # java -version java version "1.8.0_251" Java(TM) SE Runtime Environment (build 1.8.0_251-b08) Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode) |
建立软链接
1 2 | # cd /bin # ln -s /home/java/jdk1.8.0_251/bin/java |
安装 mongodb
下载地址: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.13.tgz
解压安装
1 | # tar -zxvf mongodb-linux-x86_64-3.6.13.tgz -C /usr/local |
增加环境变量
1 2 3 4 5 6 7 | # vim /etc/profile 增加一行: export MONGODB_HOME=/usr/local/mongodb-linux-x86_64-3.6.13 在 PATH 后面增加(含冒号) :$MONGODB_HOME/bin 生效 # source /etc/profile |
创建数据库文件和 log 目录(事先评估好容量)
1 2 | # mkdir -p /db/data # mkdir -p /db/logs |
新建配置文件
1 2 3 4 5 6 7 8 9 | vim /usr/local/mongodb-linux-x86_64-3.6.13/mongo.conf dbpath=/db/data logpath=/db/logs/mongo.log logappend=true journal=true quiet=true port=27017 fork=true bind_ip=0.0.0.0 |
测试
1 2 3 4 5 6 7 8 9 | # cd /usr/local/mongodb-linux-x86_64-3.6.13/ # bin/mongod -f mongo.conf about to fork child process, waiting until server is ready for connections. forked process: 1518 child process started successfully, parent exiting # lsof -i:27017 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mongod 1518 root 11u IPv4 21535 0t0 TCP *:27017 (LISTEN) |
设置服务启动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # vim /lib/system/system/mongodb.service 添加以下内容 [Unit] Description=mongodb After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/mongodb-linux-x86_64-3.6.13/bin/mongod --config /usr/local/mongodb-linux-x86_64-3.6.13/mongo.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/usr/local/mongodb-linux-x86_64-3.6.13/bin/mongod --shutdown --config /usr/local/mongodb-linux-x86_64-3.6.13/mongo.conf PrivateTmp=true [Install] WantedBy=multi-user.target |
修改权限
1 | # chmod 754 /lib/systemd/system/mongodb.service |
启动服务/设置开机启动
1 2 3 | # pkill –f -9 mongod # systemctl start mongodb # systemctl enable mongodb |
安装 elasticsearch
选择版本下载 rpm 安装包,
下载页面: https://www.elastic.co/cn/downloads/past-releases
6.8.3的下载地址:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.3.rpm
安装
1 | # rpm -ivh elasticsearch-6.8.3.rpm |
安装后会自动建立服务账号 elasticsearch, 可以查看文件 /etc/passwd
建立目录
1 2 | # mkdir –p /data/elasticsearch/data # mkdir –p /data/elasticsearch/logs |
设置目录权限
1 | # chown -R elasticsearch:elasticsearch /data/elasticsearch/ |
修改配置
1 2 3 4 5 6 7 | # vim /etc/elasticsearch/elasticsearch.yml 修改以下几个参数,没有的就添加 cluster.name: my-cluster path.data: /data/elasticsearch/data path.logs: /data/elasticsearch/logs network.host: 0.0.0.0 action.auto_create_index: .watches,.triggered_watches,.watcher-history-* |
添加 JAVA_HOME
1 2 3 | # vim /etc/sysconfig/elasticsearch 修改 JAVA_HOME=/home/java/jdk1.8.0_251 |
启动服务
1 | # systemctl start elasticsearch |
测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 检查端口 9200 是否开启 # lsof –i:9200 从远程浏览器输入 http://172.24.42.11:9200 显示以下内容表示正常 { "name" : "oifThn1", "cluster_name" : "my-cluster", "cluster_uuid" : "DDmYdQUQTVi-0EBLFk-z1w", "version" : { "number" : "6.8.3", "build_flavor" : "default", "build_type" : "rpm", "build_hash" : "0c48c0e", "build_date" : "2019-08-29T19:05:24.312154Z", "build_snapshot" : false, "lucene_version" : "7.7.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" } |
安装 graylog-server
下载 graylog-server 的 repo
https://packages.graylog2.org/repo/packages/graylog-3.1-repository_latest.rpm
先安装 repo 文件
1 | # rpm –ivh graylog-3.1-repository_latest.rpm |
安装
1 | # yum install graylog-server |
安装密码生成器 pwgen
下载网址: http://sourceforge.net/projects/pwgen
1 2 3 4 | # yum install gcc # tar zxvf pwgen-2.08.tar.gz # cd pwgen-2.08 # ./configure && make && make install |
密码配置
1 2 3 4 5 6 7 8 | # pwgen -N 1 -s 96 将生成的密码填入 /etc/graylog/server/server.conf 的 password_secret= 字段 # yum install perl-Digest-SHA 得到登录密码 SHA2 的值 # echo -n mypassword | shasum -a 256 其中 mypassword为想要设置的密码字符串 将生成的字符串填入 /etc/graylog/server/server.conf 的root_password_sha2 = 字段 |
其它配置
1 2 3 4 5 | # vim /etc/graylog/server/server.conf 修改以下字段 root_timezone=Asia/Shanghai elasticsearch_bind_address=0.0.0.0:9000 http_publish_uri=http://172.24.42.11:9000 |
启动服务
1 2 | # systemctl enable graylog-server # systemctl start graylog-server |
服务启动失败的日志在 /var/log/messages 里
服务启动后的日志在 /var/log/graylog-server/server.log 里
启动服务后,检查端口 9000
1 | # lsof -i:9000 |
配置 graylog
打开网址 http://172.24.42.11:9000
登录用户名: admin
密码: 前文设置的 (mypassword 出现的地方)
- 创建 sidecar 的 token
点击 System 下拉式菜单的 Sidecars 菜单项
点击蓝色链接 “Create or reuse a token for the graylog-sidecar user.”
输入 Token name ,点击 Create Token 按钮
点击 Copy to clipboard 按钮获取 token, 保存好后面要用到
- 设置输入点
点击 System/Authentications 下拉菜单的 Inputs 菜单菜
点击 Select input 下拉输入框的 Beats 项后,点击 Launch new input 按钮
在弹出的页面中
从 Node下拉菜单选取节点(本文只有1个节点)
输入 Title
钩选底部的 Do not add Beats type as prefix 单选框,点击 Save 按钮
可以看到新建好的 input-1 的设置
以同样的方法建立 input-2, 将端口设置为 5046 (后面会用到)
- 建立Sidecar 配置
再点击 System 下拉菜单的 Sidecars 菜单菜
点吉右上方的 Configuration 按钮进入配置页面
点击 Create Configuration 按钮建立1项配置(用来收集 windows 日志)
设置基本信息
输入 Name
点选 Color
选择收集器 winlogbeat on Windows
配置脚本(服务器ip/port,日志类型等),点击下方 Create 按钮
再点击 Create Coniguration 按钮建立1项配置(用来收集 linux 日志)
输入 Name
点选 Color
选择收集器 filebeat on linux
配置脚本(端口不能与其它配置相同), 配置日志的源文档(可以是系统日志或Nginx等),点击 Create 按钮
- 安装 graylog-sidecar for windows 客户端
下载地址https://github.com/Graylog2/collector-sidecar/releases
选择下载 graylog_sidecar_installer_1.0.2-1.exe
在 windows 服务器上执行
填入 api url, 输入实例: sidecar-windows, 输入之前建立的 token(Create Token的地方)
安装/启动服务
1 2 3 | 以管理员身份启动 cmd.exe 进入到 graylog-sidecar 的安装目录,执行以下命令 > graylog-sidecar.exe -service install > graylog-sidecar.exe -service start |
检查服务是否已启动
- 将 windows 客户端与Graylog-Server配置进行关联
回到 graylog 系统的网站,点击右上角的 Administration 按钮
可以看到刚才安装 graylog-sidecar 的 windows 客户端,钩选 winlogbeat,
再点击右侧的 Configure 下拉菜单,点击刚才建立的 sidecar 配置(蓝色)
点击 Confirm 按钮确认
点击右侧的 Process 正拉菜单的 Start 项
点击 Confirm 按钮确认
点击 Search 菜单项
查看 Messages 模块,可以看到已经收集到刚才的 windows 服务器的日志
- 安装 graylog-sidecar for linux 客户端
下载地址: https://github.com/Graylog2/collector-sidecar/releases
下载安装包 graylog-sidecar-1.0.2-1.x86_64.rpm
安装
1 | # rpm -ivh graylog-sidecar-1.0.0-1.x86_64.rpm |
修改配置
1 2 3 4 5 6 7 | # vim /etc/graylog/sidecar/sidecar.yml 同 windows 客户端一样,修改 server_url 为 “http://172.24.42.11:9000/api/” server_api_token 为先前建立的 token node_name: "node-1" update_interval: 10 send_status: true |
安装/启动服务
1 2 | # graylog-sidecar -service install # systemctl start graylog-sidecar |
安装 filebea
下载页面 https://www.elastic.co/downloads/past-releases/filebeat-7-4-0
下载地址 https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.4.0-x86_64.rpm
安装
1 | # rpm -ivh filebeat-7.4.0-x86_64.rpm |
启动服务
1 2 | # systemctl enable filebeat # systemctl start filebeat |
将 linux 客户端与配置进行关联
回到 graylog 系统的网站,点击右上角的 Administration 按钮
可以看到刚才安装 graylog-sidecar 的 linux 客户端,钩选 filebeat
再点击右侧的 Configure 下拉菜单,点击刚才建立的 sidecar 配置(棕色)
回到 Search 页面,就可以看到 linux 收集到的日志了
至此,布署的部分已完成
然而
Graylog 的使用才才开始,包含日志选择收集, 日志预警,多节点,集群等