一、Graylog的容器安装

官方文档网址:

Containerized Deployment

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

注意重点来了,看下面官方文档的建议:

Run Graylog in Docker

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 里的一致

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐