elasticsearch+logstash+kibana+filebeat+redis缓存(单机版)

1. elasticsearch+logstash+redis+kibana

1.1. 下载 elastic,logstash,kibana,redis

VERSION="7.17.17"  
ES_URL="https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${VERSION}-linux-x86_64.tar.gz"
LG_URL="https://artifacts.elastic.co/downloads/logstash/logstash-${VERSION}-linux-x86_64.tar.gz"
KB_URL="https://artifacts.elastic.co/downloads/kibana/kibana-${VERSION}-linux-x86_64.tar.gz"
wget ${ES_URL} -O /root/elasticsearch-${VERSION}-linux-x86_64.tar.gz
wget ${LG_URL} -O /root/logstash-${VERSION}-linux-x86_64.tar.gz
wget ${KB_URL} -O /root/kibana-${VERSION}-linux-x86_64.tar.gz

1.2. 安装elastic,logstash,kibana,redis

elk7.17安装.txt

1.2.1. 系统优化

1.2.1.1. 增加最大文件打开数

永久生效方法:echo "* - nofile 65536" >> /etc/security/limits.conf

1.2.1.2. 增加最大进程数
[root@mes-1 ~]# vim /etc/security/limits.d/20-nproc.conf   ---在文件最后面添加如下内容
*          soft    nproc     65536
*          hard    nproc     65536
*          soft    nofile    65536
*          hard    nofile     65536
更多的参数调整可以直接用这个
1.2.1.3. 增加最大内存映射数
[root@mes-1 ~]# vim /etc/sysctl.conf   ---添加如下
vm.max_map_count=262144
vm.swappiness=0
[root@mes-1 ~]# sysctl -p
@@一键脚本实现
# (1)增加最大文件打开数 - 永久生效
echo "* - nofile 65536" >> /etc/security/limits.conf

# (2)增加最大进程数
# 创建或修改 /etc/security/limits.d/20-nproc.conf 文件
cat > /etc/security/limits.d/20-nproc.conf << EOF
*          soft    nproc     65536
*          hard    nproc     65536
*          soft    nofile    65536
*          hard    nofile    65536
EOF

# (3)增加最大内存映射数
# 修改 /etc/sysctl.conf 文件
cat >> /etc/sysctl.conf << EOF
vm.max_map_count=262144
vm.swappiness=0
EOF

# 使 sysctl 配置生效
sysctl -p

1.2.2. 安装elastic

1.2.2.1. 解压
mkdir -p /data/
tar xzvf /root/elasticsearch-${VERSION}-linux-x86_64.tar.gz 
mv /root/elasticsearch-${VERSION} /data/elasticsearch${VERSION}
mkdir  -p /data/elasticsearch${VERSION}/{data,logs}
1.2.2.2. 配置基础环境elastic
# 系统中有其他版本jdk环境,直接使用elasticsearch-7.17.17安装包的jdk环境
# 修改/data/elasticsearch7.17/bin/elasticsearch-env,如下所示
# 定义要添加的内容
export_java_home="export JAVA_HOME=/data/elasticsearch${VERSION}/jdk"
export_es_java_home="export ES_JAVA_HOME=/data/elasticsearch${VERSION}/jdk"
sed -i "2i\\
$export_java_home\\
$export_es_java_home\\
" /data/elasticsearch${VERSION}/bin/elasticsearch-env

# 添加运行用户
id elsearch &>/dev/null || useradd elsearch

# 本地解析
cat >>/etc/hosts<< eof
192.168.6.200  elk01
eof

# 修改配置文件./config/elasticsearch.yml
ip_address=$(hostname -I | awk '{print $1}')
cat > /data/elasticsearch${VERSION}/config/elasticsearch.yml << EOF
cluster.name: elk
node.name: elk01
node.master: true
node.data: true
path.data: /data/elasticsearch${VERSION}/data
path.logs: /data/elasticsearch${VERSION}/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
##cluster为单机模式参数
cluster.initial_master_nodes: ["elk01"]
discovery.seed_hosts: ["${ip_address}:9300"]
##cluster为群集模式参数其他节点参数,注释单机模式参数,修改各node.name,在/etc/hosts中添加解析记录
#cluster.initial_master_nodes: ["elk02","elk03"]
#discovery.seed_hosts: ["192.168.241.25:9300","192.168.241.26:9300"]
EOF

# 指定内存大小./config/jvm.options
# 定义堆内存大小变量
HEAP_SIZE="512m"
# 使用 sed 命令取消注释并修改 -Xms 和 -Xmx 的值
sed -i "s|^\(## \)\(-Xms\).*|\2${HEAP_SIZE}|" /data/elasticsearch${VERSION}/config/jvm.options
sed -i "s|^\(## \)\(-Xmx\).*|\2${HEAP_SIZE}|" /data/elasticsearch${VERSION}/config/jvm.options

# 授权elsearch
chown -R  elsearch:elsearch  /data/elasticsearch${VERSION}
1.2.2.3. 配置启动关闭脚本
# 定义安装路径
INSTALL_PATH="/data/elasticsearch${VERSION}"
# 生成启动脚本
cat > ${INSTALL_PATH}/start.sh << EOF
#!/bin/bash
INSTALL_PATH='${INSTALL_PATH}'
su - elsearch -c "nohup \${INSTALL_PATH}/bin/elasticsearch &>\${INSTALL_PATH}/es.log &"
EOF
# 生成关停脚本
cat > ${INSTALL_PATH}/stop.sh << EOF
#!/bin/bash
INSTALL_PATH='${INSTALL_PATH}'
ps aux | grep "\${INSTALL_PATH}/jdk/bin/java" | grep -v grep | awk '{print \$2}' | xargs kill &>/dev/null
EOF
# 给脚本添加执行权限
chmod +x ${INSTALL_PATH}/{start,stop}.sh
${INSTALL_PATH}/start.sh

1.2.3. 安装 kibana

1.2.3.1. 解压
tar xzvf /root/kibana-${VERSION}-linux-x86_64.tar.gz 
mv /root/kibana-${VERSION}-linux-x86_64  /data/kibana-${VERSION}
1.2.3.2. 配置 kibana 读取 es 数据源
# 获取本机的 IP 地址
ip_address=$(hostname -I | awk '{print $1}')

# 使用 cat 命令生成 kibana.yml 文件
cat > /data/kibana-7.17.17/config/kibana.yml << EOF
server.port: 5601
server.host: "${ip_address}"
server.publicBaseUrl: "http://${ip_address}:5601"
elasticsearch.hosts: ["http://${ip_address}:9200"]
kibana.index: ".kibana"
i18n.locale: "zh-CN"
EOF
1.2.3.3. 配置启动关闭脚本
# 定义 Kibana 安装路径
KIBANA_PATH="/data/kibana-${VERSION}"

# 生成启动脚本
cat > ${KIBANA_PATH}/start.sh << EOF
#!/bin/bash
INSTALL_PATH='${KIBANA_PATH}'
nohup \${INSTALL_PATH}/bin/kibana --allow-root &>\${INSTALL_PATH}/kibana.log & echo \$! >\${INSTALL_PATH}/kibana.pid
EOF

# 生成停止脚本
cat > ${KIBANA_PATH}/stop.sh << EOF
#!/bin/bash
INSTALL_PATH='${KIBANA_PATH}'
PIDFILE="\${INSTALL_PATH}/kibana.pid"
GETPIDNUM=\$(cat \${PIDFILE} 2>/dev/null)
if [ -n "\${GETPIDNUM}" ];
then
    kill \${GETPIDNUM} &>/dev/null
fi
EOF

# 给脚本添加执行权限
chmod +x ${KIBANA_PATH}/{start,stop}.sh
${KIBANA_PATH}/start.sh

1.2.4. 安装 Logstash

1.2.4.1. 解压
tar xzvf /root/logstash-${VERSION}-linux-x86_64.tar.gz
mv /root/logstash-${VERSION}  /data/
1.2.4.2. 配置基本环节 logstash
# 修改logstash使用自带jdk./bin/logstash.lib.sh
export_java_home="export JAVA_HOME=/data/logstash-${VERSION}/jdk"
sed -i "1i\\
${export_java_home}\\
" /data/logstash-${VERSION}/bin/logstash.lib.sh

# 指定内存大小.config/jvm.options
HEAP_SIZE="1g"
sed -i "s|^\(-Xms\).*|\1${HEAP_SIZE}|" /data/logstash-${VERSION}/config/jvm.options
sed -i "s|^\(-Xmx\).*|\1${HEAP_SIZE}|" /data/logstash-${VERSION}/config/jvm.options
1.2.4.3. 配置启动关闭脚本
LOGSTASH_PATH="/data/logstash-${VERSION}"

# 生成启动脚本
cat > ${LOGSTASH_PATH}/start.sh << EOF
#!/bin/bash
INSTALL_PATH='${LOGSTASH_PATH}'
nohup \${INSTALL_PATH}/bin/logstash -f \${INSTALL_PATH}/conf.d/ --config.reload.automatic &>\${INSTALL_PATH}/logstash.log &
EOF

# 生成关停脚本
cat > ${LOGSTASH_PATH}/stop.sh << EOF
#!/bin/bash
INSTALL_PATH='${LOGSTASH_PATH}'
ps aux | grep "\${INSTALL_PATH}/jdk/bin/java" | grep -v grep | awk '{print \$2}' | xargs kill &>/dev/null
EOF

# 给脚本添加执行权限
chmod +x ${LOGSTASH_PATH}/{start,stop}.sh
1.2.4.4. 配置 logstash 接入 redis
# 配置文件加载目录
mkdir -p /data/logstash-${VERSION}/conf.d

# 获取本机的 IP 地址
ip_address=$(hostname -I | awk '{print $1}')

# 定义 Logstash 安装路径
LOGSTASH_PATH="/data/logstash-${VERSION}"

# 定义 Logstash 配置文件路径
CONFIG_PATH="${LOGSTASH_PATH}/conf.d/filebeat.conf"

# 使用 cat 命令生成 filebeat.conf 文件
cat > ${CONFIG_PATH} << EOF
input {
    beats {
        port => 5044
        codec => plain { charset => "ISO-8859-1" }
    }
    redis {
    data_type => "list"
    key => "filebeat-redis-web"
    #redis中的键值,与filebeat中output.redis中的key: "filebeat-redis-web",保持一致
    host => "${ip_address}"
    port => "6379"
    db => "0"
  }
}

output {
    elasticsearch {
        hosts => ["http://${ip_address}:9200"]
        index => "%{log_type}_%{+YYYY-MM}"
    }
}

EOF
${LOGSTASH_PATH}/start.sh

1.2.5. 安装 redis

1.2.5.1. 略

此处为语雀内容卡片,点击链接查看:https://www.yuque.com/zhongzelin-k13tx/nc4np3/vgy4kehoq5n3684g

2. filebeat

2.1. 下载 filebeat

VERSION="7.17.17" 
FB_URL="https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${VERSION}-x86_64.rpm"
wget ${FB_URL}

2.2. 安装 filebeat

2.2.1. rpm 安装

rpm -ivh filebeat-${VERSION}-x86_64.rpm

2.2.2. 配置文件

2.2.2.1. 配置 filebeat 接入 redis

/etc/filebeat/filebeat.yml

#自动加载
filebeat.config.inputs:
  enabled: true
  path: config/*.yml
  reload.enabled: true
  reload.period: 5s

# ---------------------------- Redis Output -----------------------------------
output.redis:
  hosts: ["192.168.6.200:6379"]
  #password: "123456"
  key: "filebeat-redis-web"
  db: 0
  timeout: 10
  #ttl过期
setup.template.name: "filebeat-redis-web"
setup.template.pattern: "filebeat-redis-web-*"


processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~
  - script:
      lang: javascript
      id: add_current_time
      source: >
        function process(event) {
          var currentTime = new Date();
          // 获取当前时间的时间戳(以毫秒为单位)
          var timestamp = currentTime.getTime();
          // 东八区的时区偏移量(单位:毫秒,东八区比 UTC 时间早 8 小时)
          var offset = 8 * 60 * 60 * 1000;
          // 根据偏移量调整时间戳,得到 CST 时间对应的时间戳
          var cstTimestamp = timestamp + offset;
          // 使用调整后的时间戳创建新的日期对象,代表 CST 时间
          var cstTime = new Date(cstTimestamp);
          // 将 CST 时间格式化为 ISO 8601 类似格式,但包含了时区信息 '+08:00',符合 CST 时间显示要求
          var cstTimeString = cstTime.toISOString().replace('Z', '+08:00');
          event.Put("custom_time", cstTimeString);
        }
2.2.2.2. /etc/filebeat/config/ssh.yml
mkdir -p /etc/filebeat/config/

vim config/ssh.yml

- type: log
  paths:
    - /var/log/secure
  scan_frequency: 5s
  ##允许添加自定义字段
  fields_under_root: true
  ##指定时区
  timezone: Asia/Shanghai
  ##字段名称
  fields:
    level: "secure_log"
    log_type: "secure_log"
    log_hostip: "192.168.6.100"

systemctl enable filebeat --now

1. elasticsearch+logstash+redis+kibana

1.1. 下载 elastic,logstash,kibana,redis

VERSION="7.17.17"  
ES_URL="https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${VERSION}-linux-x86_64.tar.gz"
LG_URL="https://artifacts.elastic.co/downloads/logstash/logstash-${VERSION}-linux-x86_64.tar.gz"
KB_URL="https://artifacts.elastic.co/downloads/kibana/kibana-${VERSION}-linux-x86_64.tar.gz"
wget ${ES_URL} -O /root/elasticsearch-${VERSION}-linux-x86_64.tar.gz
wget ${LG_URL} -O /root/logstash-${VERSION}-linux-x86_64.tar.gz
wget ${KB_URL} -O /root/kibana-${VERSION}-linux-x86_64.tar.gz

1.2. 安装elastic,logstash,kibana,redis

elk7.17安装.txt

1.2.1. 系统优化

1.2.1.1. 增加最大文件打开数

永久生效方法:echo "* - nofile 65536" >> /etc/security/limits.conf

1.2.1.2. 增加最大进程数
[root@mes-1 ~]# vim /etc/security/limits.d/20-nproc.conf   ---在文件最后面添加如下内容
*          soft    nproc     65536
*          hard    nproc     65536
*          soft    nofile    65536
*          hard    nofile     65536
更多的参数调整可以直接用这个
1.2.1.3. 增加最大内存映射数
[root@mes-1 ~]# vim /etc/sysctl.conf   ---添加如下
vm.max_map_count=262144
vm.swappiness=0
[root@mes-1 ~]# sysctl -p
@@一键脚本实现
# (1)增加最大文件打开数 - 永久生效
echo "* - nofile 65536" >> /etc/security/limits.conf

# (2)增加最大进程数
# 创建或修改 /etc/security/limits.d/20-nproc.conf 文件
cat > /etc/security/limits.d/20-nproc.conf << EOF
*          soft    nproc     65536
*          hard    nproc     65536
*          soft    nofile    65536
*          hard    nofile    65536
EOF

# (3)增加最大内存映射数
# 修改 /etc/sysctl.conf 文件
cat >> /etc/sysctl.conf << EOF
vm.max_map_count=262144
vm.swappiness=0
EOF

# 使 sysctl 配置生效
sysctl -p

1.2.2. 安装elastic

1.2.2.1. 解压
mkdir -p /data/
tar xzvf /root/elasticsearch-${VERSION}-linux-x86_64.tar.gz 
mv /root/elasticsearch-${VERSION} /data/elasticsearch${VERSION}
mkdir  -p /data/elasticsearch${VERSION}/{data,logs}
1.2.2.2. 配置基础环境elastic
# 系统中有其他版本jdk环境,直接使用elasticsearch-7.17.17安装包的jdk环境
# 修改/data/elasticsearch7.17/bin/elasticsearch-env,如下所示
# 定义要添加的内容
export_java_home="export JAVA_HOME=/data/elasticsearch${VERSION}/jdk"
export_es_java_home="export ES_JAVA_HOME=/data/elasticsearch${VERSION}/jdk"
sed -i "2i\\
$export_java_home\\
$export_es_java_home\\
" /data/elasticsearch${VERSION}/bin/elasticsearch-env

# 添加运行用户
id elsearch &>/dev/null || useradd elsearch

# 本地解析
cat >>/etc/hosts<< eof
192.168.6.200  elk01
eof

# 修改配置文件./config/elasticsearch.yml
ip_address=$(hostname -I | awk '{print $1}')
cat > /data/elasticsearch${VERSION}/config/elasticsearch.yml << EOF
cluster.name: elk
node.name: elk01
node.master: true
node.data: true
path.data: /data/elasticsearch${VERSION}/data
path.logs: /data/elasticsearch${VERSION}/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
##cluster为单机模式参数
cluster.initial_master_nodes: ["elk01"]
discovery.seed_hosts: ["${ip_address}:9300"]
##cluster为群集模式参数其他节点参数,注释单机模式参数,修改各node.name,在/etc/hosts中添加解析记录
#cluster.initial_master_nodes: ["elk02","elk03"]
#discovery.seed_hosts: ["192.168.241.25:9300","192.168.241.26:9300"]
EOF

# 指定内存大小./config/jvm.options
# 定义堆内存大小变量
HEAP_SIZE="512m"
# 使用 sed 命令取消注释并修改 -Xms 和 -Xmx 的值
sed -i "s|^\(## \)\(-Xms\).*|\2${HEAP_SIZE}|" /data/elasticsearch${VERSION}/config/jvm.options
sed -i "s|^\(## \)\(-Xmx\).*|\2${HEAP_SIZE}|" /data/elasticsearch${VERSION}/config/jvm.options

# 授权elsearch
chown -R  elsearch:elsearch  /data/elasticsearch${VERSION}
1.2.2.3. 配置启动关闭脚本
# 定义安装路径
INSTALL_PATH="/data/elasticsearch${VERSION}"
# 生成启动脚本
cat > ${INSTALL_PATH}/start.sh << EOF
#!/bin/bash
INSTALL_PATH='${INSTALL_PATH}'
su - elsearch -c "nohup \${INSTALL_PATH}/bin/elasticsearch &>\${INSTALL_PATH}/es.log &"
EOF
# 生成关停脚本
cat > ${INSTALL_PATH}/stop.sh << EOF
#!/bin/bash
INSTALL_PATH='${INSTALL_PATH}'
ps aux | grep "\${INSTALL_PATH}/jdk/bin/java" | grep -v grep | awk '{print \$2}' | xargs kill &>/dev/null
EOF
# 给脚本添加执行权限
chmod +x ${INSTALL_PATH}/{start,stop}.sh
${INSTALL_PATH}/start.sh

1.2.3. 安装 kibana

1.2.3.1. 解压
tar xzvf /root/kibana-${VERSION}-linux-x86_64.tar.gz 
mv /root/kibana-${VERSION}-linux-x86_64  /data/kibana-${VERSION}
1.2.3.2. 配置 kibana 读取 es 数据源
# 获取本机的 IP 地址
ip_address=$(hostname -I | awk '{print $1}')

# 使用 cat 命令生成 kibana.yml 文件
cat > /data/kibana-7.17.17/config/kibana.yml << EOF
server.port: 5601
server.host: "${ip_address}"
server.publicBaseUrl: "http://${ip_address}:5601"
elasticsearch.hosts: ["http://${ip_address}:9200"]
kibana.index: ".kibana"
i18n.locale: "zh-CN"
EOF
1.2.3.3. 配置启动关闭脚本
# 定义 Kibana 安装路径
KIBANA_PATH="/data/kibana-${VERSION}"

# 生成启动脚本
cat > ${KIBANA_PATH}/start.sh << EOF
#!/bin/bash
INSTALL_PATH='${KIBANA_PATH}'
nohup \${INSTALL_PATH}/bin/kibana --allow-root &>\${INSTALL_PATH}/kibana.log & echo \$! >\${INSTALL_PATH}/kibana.pid
EOF

# 生成停止脚本
cat > ${KIBANA_PATH}/stop.sh << EOF
#!/bin/bash
INSTALL_PATH='${KIBANA_PATH}'
PIDFILE="\${INSTALL_PATH}/kibana.pid"
GETPIDNUM=\$(cat \${PIDFILE} 2>/dev/null)
if [ -n "\${GETPIDNUM}" ];
then
    kill \${GETPIDNUM} &>/dev/null
fi
EOF

# 给脚本添加执行权限
chmod +x ${KIBANA_PATH}/{start,stop}.sh
${KIBANA_PATH}/start.sh

1.2.4. 安装 Logstash

1.2.4.1. 解压
tar xzvf /root/logstash-${VERSION}-linux-x86_64.tar.gz
mv /root/logstash-${VERSION}  /data/
1.2.4.2. 配置基本环节 logstash
# 修改logstash使用自带jdk./bin/logstash.lib.sh
export_java_home="export JAVA_HOME=/data/logstash-${VERSION}/jdk"
sed -i "1i\\
${export_java_home}\\
" /data/logstash-${VERSION}/bin/logstash.lib.sh

# 指定内存大小.config/jvm.options
HEAP_SIZE="1g"
sed -i "s|^\(-Xms\).*|\1${HEAP_SIZE}|" /data/logstash-${VERSION}/config/jvm.options
sed -i "s|^\(-Xmx\).*|\1${HEAP_SIZE}|" /data/logstash-${VERSION}/config/jvm.options
1.2.4.3. 配置启动关闭脚本
LOGSTASH_PATH="/data/logstash-${VERSION}"

# 生成启动脚本
cat > ${LOGSTASH_PATH}/start.sh << EOF
#!/bin/bash
INSTALL_PATH='${LOGSTASH_PATH}'
nohup \${INSTALL_PATH}/bin/logstash -f \${INSTALL_PATH}/conf.d/ --config.reload.automatic &>\${INSTALL_PATH}/logstash.log &
EOF

# 生成关停脚本
cat > ${LOGSTASH_PATH}/stop.sh << EOF
#!/bin/bash
INSTALL_PATH='${LOGSTASH_PATH}'
ps aux | grep "\${INSTALL_PATH}/jdk/bin/java" | grep -v grep | awk '{print \$2}' | xargs kill &>/dev/null
EOF

# 给脚本添加执行权限
chmod +x ${LOGSTASH_PATH}/{start,stop}.sh
1.2.4.4. 配置 logstash 接入 redis
# 配置文件加载目录
mkdir -p /data/logstash-${VERSION}/conf.d

# 获取本机的 IP 地址
ip_address=$(hostname -I | awk '{print $1}')

# 定义 Logstash 安装路径
LOGSTASH_PATH="/data/logstash-${VERSION}"

# 定义 Logstash 配置文件路径
CONFIG_PATH="${LOGSTASH_PATH}/conf.d/filebeat.conf"

# 使用 cat 命令生成 filebeat.conf 文件
cat > ${CONFIG_PATH} << EOF
input {
    beats {
        port => 5044
        codec => plain { charset => "ISO-8859-1" }
    }
    redis {
    data_type => "list"
    key => "filebeat-redis-web"
    #redis中的键值,与filebeat中output.redis中的key: "filebeat-redis-web",保持一致
    host => "${ip_address}"
    port => "6379"
    db => "0"
  }
}

output {
    elasticsearch {
        hosts => ["http://${ip_address}:9200"]
        index => "%{log_type}_%{+YYYY-MM}"
    }
}

EOF
${LOGSTASH_PATH}/start.sh

1.2.5. 安装 redis

1.2.5.1. 略

此处为语雀内容卡片,点击链接查看:https://www.yuque.com/zhongzelin-k13tx/nc4np3/vgy4kehoq5n3684g

2. filebeat

2.1. 下载 filebeat

VERSION="7.17.17" 
FB_URL="https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${VERSION}-x86_64.rpm"
wget ${FB_URL}

2.2. 安装 filebeat

2.2.1. rpm 安装

rpm -ivh filebeat-${VERSION}-x86_64.rpm

2.2.2. 配置文件

2.2.2.1. 配置 filebeat 接入 redis

/etc/filebeat/filebeat.yml

#自动加载
filebeat.config.inputs:
  enabled: true
  path: config/*.yml
  reload.enabled: true
  reload.period: 5s

# ---------------------------- Redis Output -----------------------------------
output.redis:
  hosts: ["192.168.6.200:6379"]
  #password: "123456"
  key: "filebeat-redis-web"
  db: 0
  timeout: 10
  #ttl过期
setup.template.name: "filebeat-redis-web"
setup.template.pattern: "filebeat-redis-web-*"


processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~
  - script:
      lang: javascript
      id: add_current_time
      source: >
        function process(event) {
          var currentTime = new Date();
          // 获取当前时间的时间戳(以毫秒为单位)
          var timestamp = currentTime.getTime();
          // 东八区的时区偏移量(单位:毫秒,东八区比 UTC 时间早 8 小时)
          var offset = 8 * 60 * 60 * 1000;
          // 根据偏移量调整时间戳,得到 CST 时间对应的时间戳
          var cstTimestamp = timestamp + offset;
          // 使用调整后的时间戳创建新的日期对象,代表 CST 时间
          var cstTime = new Date(cstTimestamp);
          // 将 CST 时间格式化为 ISO 8601 类似格式,但包含了时区信息 '+08:00',符合 CST 时间显示要求
          var cstTimeString = cstTime.toISOString().replace('Z', '+08:00');
          event.Put("custom_time", cstTimeString);
        }
2.2.2.2. /etc/filebeat/config/ssh.yml
mkdir -p /etc/filebeat/config/

vim config/ssh.yml

- type: log
  paths:
    - /var/log/secure
  scan_frequency: 5s
  ##允许添加自定义字段
  fields_under_root: true
  ##指定时区
  timezone: Asia/Shanghai
  ##字段名称
  fields:
    level: "secure_log"
    log_type: "secure_log"
    log_hostip: "192.168.6.100"

systemctl enable filebeat --now
飞思卡尔智能车竞赛是一项备受关注的科技赛事,旨在激发学生的创新和实践能力,尤其是在嵌入式系统、自动控制和机器人技术等关键领域。其中的“电磁组”要求参赛队伍设计并搭建一辆能够自主导航的智能车,通过电磁感应线圈感知赛道路径。本压缩包文件提供了一套完整的电磁组智能车程序,这是一套经过实战验证的代码,曾在校级比赛中获得第二名的优异成绩。 该程序的核心内容可能涉及以下关键知识点: 传感器处理:文件名“4sensor”表明车辆配备了四个传感器,用于获取环境信息。这些传感器很可能是电磁感应传感器,用于探测赛道上的导电线圈。通过分析传感器信号的变化,车辆能够判断自身的行驶方向和位置。 数据采集与滤波:在实际运行中,传感器读数可能受到噪声干扰,因此需要进行数据滤波以提高精度。常见的滤波算法包括低通滤波、高斯滤波和滑动平均滤波等,以确保车辆对赛道的判断准确无误。 路径规划:车辆需要根据传感器输入实时规划行驶路径。这可能涉及PID(比例-积分-微分)控制、模糊逻辑控制或其他现代控制理论方法,从而确保车辆能够稳定且快速地沿赛道行驶。 电机控制:智能车的驱动通常依赖于直流电机或无刷电机,电机控制是关键环节。程序中可能包含电机速度和方向的调节算法,如PWM(脉宽调制)控制,以实现精准的运动控制。 嵌入式系统编程:飞思卡尔智能车的控制器可能基于飞思卡尔微处理器(例如MC9S12系列)。编程语言通常为C或C++,需要掌握微控制器的中断系统、定时器和串行通信等功能。 软件架构:智能车软件通常具有清晰的架构,包括任务调度、中断服务程序和主循环等。理解和优化这一架构对于提升整体性能至关重要。 调试与优化:程序能够在比赛中取得好成绩,说明经过了反复的调试和优化。这可能涉及代码效率提升、故障排查以及性能瓶颈的识别和解决。 团队协作与版本控制:在项目开发过程中,团队协作和版本控制工具(如Git)的应用不可或缺,能够保
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值