Graylog日志管理单机部署、日志节点的Sidecar配置以及简单的警告事件邮件发送
应该是上个星期的上个星期,下了个任务,要做Graylog的部署以及文档,emmm....带log,肯定是和日志有关系了呗,不过也没听过啊,去搜了一下,确实,也不少帖子博客相关的都有安装部署,还是yum安装,这不简单去了么,赶紧屡了一遍,接下来直接就照着做了,但是,奈何公司的网不行呢,我yum配置完了,install全失败,没整;之后发现还有好多是docker的方法,可以啊,来试试(其实看到docker我就知道也差不多了,因为我镜像就没下成功过),试了一下,真行啊,果然不行。
安装部署主要需要3个软件,MongoDB、Elasticsearch以及Graylog,当时测试时只有Graylog的yum安装是成功的,所以,顺便就把相关的rpm包下载留下来,其实MongoDB的yum安装也是没什么问题的,不过我自己的环境不稳定,直接用在官网下的tgz包安装的;
由于我自己的情况受限,就尽可能使用我这里行得通的方法来安装了:
(如果网络环境允许,官方 https://docs.graylog.org/en/4.0/pages/installation.html 的方法是非常方便的)
部署环境是一台虚拟机,CentOS7,之后准备几个可能需要单独下载的包,之后就是各种安装时需要的其他依赖包,版本根据自己需求而定:
(这里说一下,我是测试环境,下面步骤中安装都是yum install或解压即用的方式,因为要写文档上交,所以肯定以后会有内网环境安装部署的情况,把整个过程需要的安装包都留下来是有必要的,之后可以在内网环境下部署本地yum仓库,使用yum install进行安装就方便多了,可以使用 yumdownloader 或修改 /etc/yum.conf 中 keepcache=1 保留缓存包)
GPG-KEY-elasticsearch(Elastic GPG的密钥 rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch ,可以使用wget或curl -o . 下载)
elasticsearch-7.11.1-linux-x86_64.tar.gz(官网下载 https://www.elastic.co/cn/downloads/elasticsearch )
filebeat-6.6.0-x86_64.rpm(官方提供 https://www.elastic.co/cn/downloads/beats/filebeat )
mongodb-linux-x86_64-enterprise-rhel70-4.4.3.tgz(官网下载 https://www.mongodb.com/try/download/enterprise 或 https://www.mongodb.com/download-center/enterprise/releases/archive)
graylog-server-4.0.5-1.noarch.rpm(官方给的yum源下载保留的,下载官方的压缩包也可以)
graylog-sidecar-1.0.2-1.x86_64.rpm(官方提供 https://github.com/Graylog2/collector-sidecar/releases )
graylog_sidecar_installer_1.0.2-1.exe(官方提供 https://github.com/Graylog2/collector-sidecar/releases ,这是windows安装的包)
下面是我自己的安装部署流程 (点击传送):
文档内容依次是:---> 服务端的安装部署
---> CentOS端的Sidecar安装及Web界面设置
---> Windows端的Sidecar安装及Web界面设置
服务端的安装部署
配置部分系统资源,并安装各种依赖包:
##修改部分系统资源呢配置
[root@graylog ~]# vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536 [root@graylog ~]# vi /etc/sysctl.conf
vm.max_map_count=262144 [root@graylog ~]# sysctl -p ##关闭透明大页
##(关闭透明大页主要是MongoDB的运行问题,若本机不做其他服务的运行,MongoDB数据库负载不大,则可以不进行关闭,)
[root@graylog ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never [root@graylog ~]# vi /etc/default/grub
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet transparent_hugepage=never" [root@graylog ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
##安装java-1.8.0-openjdk及其他依赖包
[root@graylog ~]# yum install -y java-1.8.0-openjdk vim ntpdate pwgen cyrus-sasl cyrus-sasl-gssapi cyrus-sasl-plain krb5-libs libcurl net-snmp openldap openssl xz-libs net-snmp 这里我们可以重启一下机器,上面系统资源配置是重启生效,但是不重启也不会影响下面的安装。
安装MongoDB:
##解压文件,并创建所需组、用户以及目录
[root@graylog ~]# tar -xvf mongodb-linux-x86_64-enterprise-rhel70-4.4.3.tgz -C /usr/local/
[root@graylog ~]# cd /usr/local/
[root@graylog local]# mv mongodb-linux-x86_64-enterprise-rhel70-4.4.3 mongodb
[root@graylog local]# cd
[root@graylog ~]# groupadd -r mongod
[root@graylog ~]# useradd -r -g 996 -u 996 -s /bin/false -d /var/lib/mongo mongod(UID、GID根据实际情况)
[root@graylog ~]# mkdir -pv /var/lib/mongo
[root@graylog ~]# mkdir -pv /var/log/mongodb
[root@graylog ~]# chown -R mongod:mongod /var/lib/mongo
[root@graylog ~]# chown -R mongod:mongod /var/log/mongodb ##修改命令PATH路径
[root@graylog ~]# vi /etc/profile
export PATH=/usr/local/mongodb/bin:$PATH [root@graylog ~]# source /etc/profile ##编辑配置文件
[root@graylog ~]# vi /etc/mongod.conf
systemLog:path:
/var/log/mongodb/mongod.log
storage:
dbPath: /var/lib/mongo ##启动数据库并设置开机启动
[root@graylog ~]# mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork [root@graylog ~]# vi /etc/rc.local
/usr/local/mongodb/bin/mongod -f /etc/mongod.conf [root@graylog ~]# chmod +x /etc/rc.d/rc.local ##查看数据库是否运行
[root@graylog ~]# ps -ef | grep mongo
安装Elasticsearch
##安装Elastic GPG密钥,解压文件
[root@graylog ~]# rpm --import GPG-KEY-elasticsearch
##或是联网环境下,直接在线导入
[root@graylog ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
[root@graylog ~]# useradd ela
##为ela用户设置个密码
[root@graylog ~]# passwd ela
[root@graylog ~]# tar -xvf elasticsearch-7.11.1-linux-x86_64.tar.gz -C /home/ela
[root@graylog ~]# chown ela:ela /home/ela/elasticsearch-7.11.1 -R
##Elasticsearch不允许使用root用户启动,会报各种错,如不能创建进程,找不到JAVA路径等,启动需要以普通用户身份执行,所以之前创建的用户,为了使服务正常启动,同时注意软件目录的所属问题,不是普通用户所属依然会报错
[root@graylog ~]# su - ela
[ela@graylog ~]$ mv elasticsearch-7.11.1 elasticsearch ##启动服务并设置开机启动
[ela@graylog ~]$ /home/ela/elasticsearch/bin/elasticsearch &
##切换为root用户
[ela@graylog ~]$ su -
[root@graylog ~]# vi /etc/rc.local
su - ela -c '/home/ela/elasticsearch/bin/elasticsearch &' ##查看服务是否启动运行
[root@graylog ~]# ps -ef | grep ela
(Elasticsearch运行进程信息特别长,一下就能看到,若没有,需要排错,查看权限等)
安装Graylog
##安装Graylog,有rpm包,安装就方便多了,包名称补全按照实际情况做
[root@graylog ~]# yum localinstall graylog-server-4.0.5-1.noarch.rpm ##修改Graylog配置文件
[root@graylog ~]# vi /etc/graylog/server/server.conf
## passworde_secret可以通过命令:pwgen -N 1 -s 96 来随机生成,根据实际情况填写
password_secret = 6Z06fZHU2DwuOf9X8fhnvphCd3OM7oqwLECRRcejvjpieSvVtwu08yHYHIKDi56bAxRvtCOZ3xKKiBqyt00XYCgVa0oETB0L
## admin用户生成密码,请记住你的密码,请根据实际情况填写编码并记录正常不加密的密码,配置文件中填写加密后的字符串(密码生成命令:echo -n 123123 | sha256sum)
root_password_sha2 = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
## 时区写现在的就行(亚洲/上海)
root_timezone = Asia/Shanghai
## elasticsearch 相关配置
## 单机本地配置,则填写本地127地址即可,默认9200端口不改
elasticsearch_hosts = http://127.0.0.1:9200
elasticsearch_shards =1
elasticsearch_replicas = 0
## mongodb 连接配置,单机本机mongodb,没有设置验证
mongodb_uri = mongodb://localhost/graylog
## 电子邮件smtp,设置为自己的邮箱smtp服务,enabled=true为开启邮箱发送功能
transport_email_enabled = true
## 开启smtp功能的邮箱,一般都是官方的地址,不同服务商端口号可能不同,示例是网易邮箱,端口465
transport_email_hostname = smtp.163.com
transport_email_port = 465
transport_email_use_auth = true
transport_email_use_tls = false
transport_email_use_ssl = true
## auth_username为发送邮件的邮箱,根据实际情况填写
transport_email_auth_username = 发件人@163.com
## 这个是开启smtp功能后给的验证密码,并不是你本身登录的密码
transport_email_auth_password = FJSLKJSJGFLKSJG
transport_email_subject_prefix = [graylog]
transport_email_from_email = 发件人@163.com
## 配置地址,服务端本机ip+port
http_bind_address = 192.168.3.134:9000 ##若需要则手动添加java路径,启动没有报错则不要配置,一般都不出错
[root@graylog ~]# vi /etc/sysconfig/graylog-server
JAVA=/usr/bin/java(根据实际情况修改) ##启动服务
[root@graylog ~]# systemctl enable graylog-server
[root@graylog ~]# systemctl start graylog-server
测试登录
浏览器访问:http://192.168.3.134:9000(访问自己的IP啊)
账户:admin(初始设置,直接填写)
密码:123123(本机实验,实际情况就是需要加密的设定密码)
注意事项:
1. 系统的资源配置修改为65536,否则可能触发MongoDB和Elasticsearch运行错误;
2. Elasticsearch服务一定以普通用户运行,不能以root用户执行启动,软件目录的所有者必须是也是运行的普通用户,如执行 chown ela:ela /home/ela/elasticsearch-7.11.1 -R ;
3. Graylog服务运行后Web访问会有一定延迟,但不超过1分钟,若长时间没有进入,显示拒绝连接,多是server.conf配置文件的IP地址填写不正确导致,文档配置中所有192等开头的IP地址均为要根据实际情况修改的,而127.0.0.1和0.0.0.0或localhost则不做修改;
4. 本文档为所有服务均在一个服务器主机的情况,若需要将某个服务分到另外的主机上,一定要对应好server.conf中各个服务的衔接IP地址;
到这,服务端的操作就完成了,你可以访问到你的网页,但是现在还没有配置日志节点,每个需要收集日志的节点主机均需要配置Sidecars;
CentOS端的Sidecar安装及Web界面设置
接下来我们来配置Sidecars,服务上了,收不到日志,就是浪费电,目前我自己测试配置了Linux的CentOS7端和自己的windows主机的日志;
下面的步骤大部分为我的截图,Web界面的操作,若是写可能有些不清楚;
官方的安装文档中的图非常清除的描述了各个主机之间与服务安装的关系和连接情况:
( https://docs.graylog.org/en/4.0/pages/sidecar.html )
每个日志源端均需要配置一个Sidecar服务,其是负责联系服务端进行日志传输工作的;
节点安装Sidecar服务并进行配置
##此包通过官方给的GitHub地址下载,其中有版本对照,参照官方(https://docs.graylog.org/en/4.0/pages/sidecar.html),顺便可以把windows的也下下来
[root@mysql57 ~]# rpm -ivh graylog-sidecar-1.0.2-1.x86_64.rpm ##获得值后返回命令行填写配置文件
[root@mysql57 ~]# vi /etc/graylog/sidecar/sidecar.yml
## 该处填写为服务端的IP地址及端口号,后面的/api/不要删除
server_url: "http://192.168.3.134:9000/api/"
## 该值即为之前在Web界面创建并生成的令牌值,一定要对应,否则不能连接
server_api_token: "1457n0qgqanf2emv65btu3fsd41gps23521aqbv2v23vcipi5cj0"
## 该值为本节点在Web界面展示的源端名称,注意与其他节点区分
node_name: "mysql57"
## 打开此选项
send_status: true ##安装服务并启动
[root@mysql57 ~]# graylog-sidecar -service install
[root@mysql57 ~]# systemctl start graylog-sidecar
##(配置文件若更改需要重新启动一次服务)
[root@mysql57 ~]# systemctl enable graylog-sidecar
##(记得配置开机自动启动,否则开机后sidecar服务不运行,服务端不能获取到该节点日志) ##安装日志获取的依赖软件
[root@mysql57 ~]# rpm -ivh filebeat-6.6.0-x86_64.rpm
至此,我们在CentOS7上面部署节点Sidecar的操作就结束了,其中日志的路径和类型等根据自己实际情况来做改变,不过一般的日志选Beats都可以。
Windows端的Sidecar安装及Web界面设置
接下来是windows的节点,来安装Sidecar软件
在安装软件之前,根据我们前面设置好的Inputs(依然选择使用Beats)来指定一个端口给windows,并需要确认已经创建了Token并获取了值
之后在windows主机上安装Sidecar软件,双击 graylog_sidecar_installer_1.0.2-1.exe ,
进入后下一步到下图界面进行参数配置,正确输入后进行Install,之后完成即可;
以管理员身份运行cmd进行服务安装并启动
安装服务
C:\Program Files\graylog\sidecar\graylog-sidecar.exe -service install
启动服务
C:\Program Files\graylog\sidecar\graylog-sidecar.exe" -service start
按windows键 + R 并输入 services.msc 进入服务管理界面
找到Graylog Sidecar服务,并确认其启动并属于 自动 启动类型
之后就是Web端配置获取信息了
到此,我们又能获取到windows上面的日志了;
以上是从服务端再到客户端日志节点的安装部署,其中很多配置都要根据自己所在的实际情况去填写或选择。
Web界面设置简单的警告事件及邮件发送
配置中有许多自定义键值,基本为非必要字段,可以不进行添加,有相关需求可以自行进行添加,Email的相关变量附加到本文档结尾,由于翻译问题,可能会出现偏差;
更详细的参数描述或使用方法偏多,请前往至官网阅读:https://docs.graylog.org/en/4.0/pages/alerts.html#fields
以上是警报事件邮件的发送设置,当你收到测试邮件的时候就已经证明服务与你的邮箱可以正常联系了,不过还是要注意警报事件的设置;
以下是官方文档中键值变量的翻译,是我拿谷歌翻译直接翻译的,有的读起来都不太明白,没办法,英语水平极度有限(没有翻译软件帮助,我基本都看不懂),最好是去官网仔细研究一下;
事件定义元数据
有关创建警报的事件定义的信息。
event_definition_id (字符串)-事件定义的数据库ID
event_definition_type(字符串)-事件定义类型的内部名称(aggregation-v1或correlation-v1)
event_definition_title (字符串)-在用户界面中设置的标题
event_definition_description (字符串)-在用户界面中设置的描述
job_definition_id (字符串)-与计划的事件定义关联的内部作业定义ID
job_trigger_id (字符串)-与作业的当前执行关联的内部ID
活动数据
event 该事件存储在Graylog中
id (字符串)-存储事件的消息ID
event_definition_id(字符串)-与event_definition_id元数据部分中的相同
event_definition_type(字符串)-与event_definition_type元数据部分中的相同
origin_context(字符串)-创建此事件的消息或事件的URN(event或message)。可以为空
timestamp(DateTime)-该事件描述的时间戳,可以设置为基础事件或消息(请参阅参考资料origin_context)
timestamp_processing (DateTime)-该事件的时间戳由Graylog创建
timerange_start(DateTime)-用于创建此事件的数据Graylog窗口的开始。可以为空
timerange_end(DateTime)-用于创建此事件的数据Graylog窗口的末尾。可以为空
streams -(字符串)-事件存储在其中的流ID的列表
source_streams (字符串)-事件提取数据的流ID的列表
alert(布尔)-是否将此事件视为警报。始终true用于具有通知的事件定义
message (字符串)-描述此事件的人性化消息
source (字符串)-创建此事件的Graylog服务器的主机名
key_tuple (字符串)-组成事件键的值列表
key (字符串)-事件的键为单个字符串
priority (长整数)-事件的优先级值
fields (Map <String,String>)-附加到事件的自定义字段
积压
backlog (消息摘要列表)-导致生成此警报的消息或事件的列表
id (字符串)-消息ID
index(字符串)-消息存储在其中的索引的名称。与一起使用id可在Graylog中唯一标识消息
source(字符串)-source消息的字段
message(字符串)-message消息的字段
timestamp(DateTime)-timestamp消息的字段
stream_ids (字符串)-消息的流ID
fields (Map <String,Object>)-可以迭代消息的其余字段
Graylog日志管理单机部署、日志节点的Sidecar配置以及简单的警告事件邮件发送的更多相关文章
- 循序渐进nginx(三):日志管理、http限流、https配置,http_rewrite模块,第三方模块安装,结语
目录 日志管理 access_log error_log 日志文件切割 自定义错误页 http访问限流 限制请求数 语法 使用 限制连接数 语法 测试 补充: https配置 使用 生成证书 配置ng ...
- Docker日志管理--docker部署安装ELK (十一)--技术流ken
Docker logs 对于一个运行的容器,Docker 会将日志发送到 容器的 标准输出设备(STDOUT)和标准错误设备(STDERR),STDOUT 和 STDERR 实际上就是容器的控制台终端 ...
- Docker日志管理–docker部署安装ELK (十一)
Docker logs 对于一个运行的容器,Docker 会将日志发送到 容器的 标准输出设备(STDOUT)和标准错误设备(STDERR),STDOUT 和 STDERR 实际上就是容器的控制台终端 ...
- 【Java EE 学习 76 下】【数据采集系统第八天】【通过AOP实现日志管理】【日志管理功能分析和初步实现】
一.日志管理相关分析 1.日志管理是一种典型的系统级别的应用,非常适合使用spring AOP实现. 2.使用日志管理的目的:对系统修改的动作进行记录,比如对权限.角色.用户的写操作.修改操作.删除操 ...
- mysql基础之日志管理(查询日志、慢查询日志、错误日志、二进制日志、中继日志、事务日志)
日志文件记录了MySQL数据库的各种类型的活动,MySQL数据库中常见的日志文件有 查询日志,慢查询日志,错误日志,二进制日志,中继日志 ,事务日志. 修改配置或者想要使配置永久生效需将内容写入配置文 ...
- 『学了就忘』Linux日志管理 — 91、日志服务rsyslogd说明
目录 1.日志文件格式 2.rsyslogd服务的配置文件 (1)rsyslog.conf文件内容 (2)rsyslog.conf配文件内容说明 (3)定义自己的日志 1.日志文件格式 只要是由日志服 ...
- 『学了就忘』Linux日志管理 — 92、日志轮替
目录 1.日志文件的命名规则 2.logrotate配置文件说明 3.logrotate配置文件的主要参数 1.日志文件的命名规则 日志轮替最主要的作用就是把旧的日志文件移动并改名,同时建立新的空日志 ...
- MySQL 之 innodb 日志管理 -- 1. 基本日志文件
1.基本日志文件分类 错误日志(error log) 慢查询日志日志(slow query log) 二进制日志(binlog) 查询日志(general log) 2.错误日志 主要包括mysql的 ...
- 『学了就忘』Linux日志管理 — 93、日志轮替补充
目录 1.把自己的日志加入日志轮替 (1)操作方式 (2)示例 2.logrotate命令 1.把自己的日志加入日志轮替 使用RPM包方式安装服务的日志会自动的加入logrotate轮替,一般不需要你 ...
随机推荐
- Codeforces Round #673 (Div. 2) C. k-Amazing Numbers (DP,思维)
题意:有一组数,分别用长度从\([1,n]\)的区间去取子数组,要求取到的所有子数组中必须有共同的数,如果满足条件数组共同的数中最小的数,否则输出\(-1\). 题解:我们先从后面确定每两个相同数之间 ...
- .net webapi 中使用session是出错 HttpContext.Current.Session==null
最近在写.net webapi时发现 HttpContext.Current.Session==null ,导致报错,后来查资料发现webapi中使用session时首先需要开启session功能, ...
- 或许你知道Python的shell,那jshell呢?
Java 10以后,java官方推出了类似python的shell操作的jshell,你的指令可以及时反馈,对于新手学习而言非常有用.如果你和我一样刚学Java,建议你使用高版本,和我一起开始使用js ...
- 大数据去重(data deduplication)方案
数据去重(data deduplication)是大数据领域司空见惯的问题了.除了统计UV等传统用法之外,去重的意义更在于消除不可靠数据源产生的脏数据--即重复上报数据或重复投递数据的影响,使计算产生 ...
- CF1397-C. Multiples of Length
CF1397-C. Multiples of Length 题意: 给出一个长度为\(n\)的序列,让你进行下面操作三次使得整个序列全部变为\(0\): 在序列中选中一段序列\((l, r)\), ...
- CF1474-D. Cleaning
CF1474-D. Cleaning 题意: 给出一个长度为\(n\)的正整数序列,你可以对序列进行如下操作: 对序列中相邻的两个数字\(a_{i}, a_{i+1}\)同时减去一个数字\(t(t&l ...
- 逆元 exgcd 费马小定理 中国剩余定理的理解和证明
一.除法取模逆元 如果我们要通过一个前面取过模的式子递推出其他要取模的式子,而递推式里又存在除法 那么一个很尴尬的事情出现了,假如a[i-1]=100%31=7 a[i]=(a[i-1]/2)%31 ...
- MarkDown语法详解
MarkDown语法详解 编辑器:Typora 下载官网:https://typora.io 提速镜像:https://gitee.com/typora-mirror/Typora-Mirror/re ...
- Web 开发之 HTTP/2 & SPDY & HTTP 1.1 & HTTP 对比分析详解!
1 https://zh.wikipedia.org/wiki/HTTP/2 HTTP/2 维基百科,自由的百科全书 HTTP/2(超文本传输协议第2版 ...
- LeetCode 数组分割
LeetCode 数组分割 LeetCode 数组怎么分割可以得到左右最大值的差值的最大 https://www.nowcoder.com/study/live/489/1/1 左右最值最大差 htt ...