一、Graylog的容器安装
官方文档网址:
1、使用docker compose 安装,使用了3个镜像
[root@huabei ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
graylog/graylog-datanode 6.1 5c44622cc73c 2 weeks ago 1.56GB
graylog/graylog 6.1 f13d9a9907a0 2 weeks ago 623MB
mongo 5.0 dfda7a2cf273 3 years ago 693MB
[root@huabei ~]#
mkdir graylog
cd graylog
wget https://github.com/Graylog2/docker-compose/archive/refs/heads/main.zip
unzip main.zip
cd docker-compose-main/open-core
cp .env.example .env
vi .env
注意重点来了,看下面官方文档的建议:
1)GRAYLOG_PASSWORD_SECRET 的生成
使用官方文档的建议,不要使用env里的建议生成。
< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c${1:-96};echo;
2)GRAYLOG_ROOT_PASSWORD_SHA2的生成
使用官方文档的建议,不要使用env里的建议生成。
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
3)调整服务器的vm.max_map_count 的值,以centos为例
查看:
sysctl vm.max_map_count # 查看当前值
cat /proc/sys/vm/max_map_count # 直接读取内核参数
临时:
sudo sysctl -w vm.max_map_count=262144 # 设置为推荐值
永久:
# 编辑配置文件
sudo nano /etc/sysctl.conf
# 添加或修改以下行
vm.max_map_count=262144
# 使配置生效
sudo sysctl -p
4)提前规划好Graylog接收syslog的udp端口,默认是5140,可以在docker-compose.yml 提前修改;增加时区 :在 environment下增加 GRAYLOG_ROOT_TIMEZONE: "Asia/Shanghai"
graylog:
hostname: "server"
image: "${GRAYLOG_IMAGE:-graylog/graylog:6.1}"
depends_on:
mongodb:
condition: "service_started"
entrypoint: "/usr/bin/tini -- /docker-entrypoint.sh"
environment:
GRAYLOG_NODE_ID_FILE: "/usr/share/graylog/data/data/node-id"
# GRAYLOG_DATANODE_PASSWORD_SECRET and GRAYLOG_PASSWORD_SECRET MUST be the same value
GRAYLOG_PASSWORD_SECRET: "${GRAYLOG_PASSWORD_SECRET:?Please configure GRAYLOG_PASSWORD_SECRET in the .env file}"
GRAYLOG_ROOT_PASSWORD_SHA2: "${GRAYLOG_ROOT_PASSWORD_SHA2:?Please configure GRAYLOG_ROOT_PASSWORD_SHA2 in the .env file}"
GRAYLOG_HTTP_BIND_ADDRESS: "0.0.0.0:9000"
GRAYLOG_HTTP_EXTERNAL_URI: "http://localhost:9000/"
GRAYLOG_MONGODB_URI: "mongodb://mongodb:27017/graylog"
GRAYLOG_ROOT_TIMEZONE: "Asia/Shanghai"
5)docker compose up
注意看里面的提示,预配置的密码不是自己设的密码
http://admin:xxxx@1.1.1.1:9000
后面的选项可以参考这个文章使用GraylogDataNode作为内置OpenSearch日志存储的GrayLog6.1.2一键安装脚本_ITPUB博客
二、centos的日志发送调测
1、Centos 里 vi /etc/rsyslog.conf
追加一行
*.*@1.1.1.1;RSYSLOG_SyslogProtocol23Format
Graylog支持两种格式的 syslog( RFC 5424 and RFC 3164),rsyslog用RFC 5424 format。
官方说明在这里 Syslog Inputs
2、systemctl restart rsyslog
测试方法:logger -t local4.info "Graylog测试消息: $(date)"
3、可以在服务器和客户端抓包
tcpdump -i eth0 port <端口号>抓包,确认是否发送和接收到数据。
三、Graylog的日志调测
1、input里增加syslog/udp 选择的端口号要与 前面的docker-compose.yml 里的一致