ELK6可视化统一展示,方便开发、运维技术等人员查看日志用
off999 2025-01-24 13:24 50 浏览 0 评论
ELK可集中式、收集管理各服务器节点的日志信息,可视化统一展示,方便开发、运维技术等人员查看日志。
· 环境准备1). ELK软件版本elastic系列6.8.0版本,使用yum方式安装。elastic系列软件下载地址:2). OS环境CentOS73). JDK版本JDK8版本4). ELK架构实现方案ELK + Filebeat方式实现,架构如下图:
Filebeat 日志收集器,负责收集各服务器节点系统、应用的日志,并发送给Logstash。Logstash 负责处理来自Filebeat的日志,处理后日志保存ElasticSearch索引。ElasticSearch 存储来自Logstash的日志。Kibana 从ElasticSearch搜索日志,并可视化展示。5). ELK Stack此架构缺陷以上架构适用于日志量不是特别大的企业,一般都能满足日志需求,前提ELK各节点(ES集群、logstash集群、kibana)做到高可用。但对于大并发量场景,产生巨大日志量,大量的日志会涌入ES集群、Logstash集群,可能ELK系统会遇到流量瓶颈。这时一般解决方案是加入消息队列(Kafka、Redis、zookeeper),数据转储,让数据有一定缓冲。
· 安装部署1). 安装Java8
yum install -y java-1.8.0-openjdk
2). 配置elastic的yum仓库导入PGP Key
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
配置yum源
cat >>/etc/yum.repos.d/elk.repo<<EOF
[ELK-6.x]
name=ELK repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
3). 安装配置ElasticSearch
yum install -y elasticsearch
ElasticSearch主配置文件修改 /etc/elasticsearch/elasticsearch.yml
cluster.name: preventfraud-elk #ES集群
node.name: preventfraud-node #节点
path.data: /data/elasticsearch/data #数据存储
path.logs: /data/elasticsearch/logs #log信息
network.host: 10.20.1.75
http.port: 9200 #http端口
主要修改cluster集群、node节点名称,这里ElasticSearch为单节点;还有data数据节点,ElasticSearch存储大量索引信息,需要大容量磁盘空间;log日志目录;网络及端口信息。9200端口是 http 协议端口,用于外部通信;9300端口是 tcp 协议端口,用于集群间传递信息。elasticsearch目录文件授权
chown -R elasticsearch.elasticsearch /usr/share/elasticsearch/
chown -R elasticsearch.elasticsearch /etc/elasticsearch/
启动ElasticSearch服务
systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch
检查elasticsearch服务启动状态,如下看到的json信息:
[root@srv-elk ~]# curl http://10.20.1.75:9200/
{
"name" : "preventfraud-node",
"cluster_name" : "preventfraud-elk",
"cluster_uuid" : "ETKr4fyTTAG-_x2Xalnr9w",
"version" : {
"number" : "6.8.12",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "7a15d2a",
"build_date" : "2020-08-12T07:27:20.804867Z",
"build_snapshot" : false,
"lucene_version" : "7.7.3",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
4). 安装配置Logstash
yum install -y logstash
生成SSL证书,crt文件后面需加入到Filebeat中。
openssl req -subj '/CN=server.example.com/' -x509 -days 3650 -nodes -batch -newkey rsa:2048 -keyout /etc/pki/tls/private/logstash.key -out /etc/pki/tls/certs/logstash.crt
主配置文件/etc/logstash/logstash.yml
path.data: /data/logstash/data #数据
path.logs: /data/logstash/logs #日志目录
Logstash目录文件授权
chown -R logstash.logstash /usr/share/logstash/
chown -R logstash.logstash /etc/logstash/
启动Logstash服务
systemctl enable logstash
systemctl start logstash
处理来自Filebeat的系统、应用的配置文件目录 /etc/logstash/conf.d/,目录下文件需手动创建,如处理收集的nginx日志,创建/etc/logstash/conf.d/filebeat-nginx.conf。5). 安装配置Kibana
yum install -y kibana
主配置文件 /etc/kibana/kibana.yml
server.port: 5601 #http端口,默认5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://10.20.1.75:9200"] #ES地址
logging.dest: /data/kibana/kibana.log #kibana不配置日志输出,默认输出到/var/log/message里,会导致系统日志文件越来越大,不好区分。
i18n.locale: "zh-CN" #配置中文显示
Kibana目录文件授权
chown -R kibana.kibana /usr/share/kibana/
chown -R kibana.kibana /etc/kibana/
chown kibana.kibana /var/log/kibana.log启动kibana服务
systemctl daemon-reload
systemctl enable kibana
systemctl start kibana
访问Kibana地址:
6). 安装Filebeat各日志目标客户端配置yum源
cat >>/etc/yum.repos.d/elk.repo<<EOF
[ELK-6.x]
name=ELK repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
安装filebeat
yum install -y filebeat
从ELK服务端copy SSL证书 logstash.crt文件到filebeat的/etc/pki/tls/certs/中。
scp server.example.com:/etc/pki/tls/certs/logstash.crt /etc/pki/tls/certs/
filebeat基本配置,主配置文件 /etc/filebeat/filebeat.yml注释掉默认的 output.elasticsearch 配置项,修改out logstash 配置输出项。
output.logstash:
# The Logstash hosts
hosts: ["10.20.1.75:5044"] #logstash beat配置端口
启动filebeat服务
systemctl enable filebeat
systemctl start filebeat
ELK此部分安装参考:
· ELK + Filebeat案例实施1). Beats介绍这里架构引入 的是 Beats 作为日志搜集器。目前 Beats 包括:Packetbeat:搜集网络流量数据Topbeat:搜集系统、进程和文件系统级别的CPU、内存使用情况等数据Filebeat:搜集文件数据,这里的日志收集器使用该FilebeatWinlogbeat:搜集 Windows 事件日志数据Beats 将搜集到的数据发送到Logstash,经Logstash解析、过滤后,将其发送到Elasticsearch集群。作为日志收集器Logstash也可以,只是Logstash比较厚重,安装后在各服务器节点上占用系统资源高。而Filebeat比较轻量,占用系统资源几乎可忽略不计,从两者安装包的大小可直接看出差距。2). Filebeat配置收集syslog、nginx日志filebeat配置 /etc/filebeat/filebeat.yml
· # Syslog
· -type: log
· enabled: true
· paths:
· -/var/log/secure
· -/var/log/messages
· tags: ["syslog"]
· fields:
· log_type: syslog
· # Nginx Access log
· -type: log
· # Change to true to enable this input configuration.
· enabled: true
· # Paths that should be crawled and fetched. Glob based paths.
· paths:
· - /data/nginx_logs/*fzlm.org.cn-access.log
· json.keys_under_root: true
· json.overwrite_keys: true
· #tail_files: true
· #fields_under_root: true
· fields:
· service: filebeat-nginx-accesslog
· scan_frequency: 10s
· # Nginx Error log
· -type: log
· enable: true
· paths:
· - /data/nginx_logs/*fzlm.org.cn-error.log
· #json.keys_under_root: true
· #json.overwrite_keys: true
· #tail_files: true
· #fields_under_root: true
· fields:
· service: filebeat-nginx-errorlog
· scan_frequency: 10s
· #multiline.pattern: '^\['
· #multiline.negate: true
#multiline.match: after
重启filebeat服务
systemctl restart filebeat.service
enabled: true 配置收集该配置项里的日志,false 为不收集配置项下的日志。tags: 定义标签fields: 自定义属性,可以定义多个paths: 配置收集日志文件路径multiline.pattern: ^\d{4}-\d{1,2}-\d{1,2}\s\d{2}\:\d{2}\:\d{2}\,\d{3}' #匹配值 2020-09-23 17:31:21,756 作为log的开始multiline.negate: true 默认为 false,匹配 pattern 的行合并到上一行;true,不匹配pattern的行合并到上一行multiline.match: after 值 after 或 before,合并到上一行的末尾或开头3). 配置LogstashLogstash中创建处理syslog日志的logstash文件 /etc/logstash/conf.d/logstash-filebeat-syslog.conf
#syslog log
input {
beats {
port => 5044
client_inactivity_timeout => "1200"
}
}
filter {
if [fields][log_type] == "syslog" {
grok {
match => {
"message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}"
}
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
mutate { #muate插件参考: https://www.elastic.co/guide/en/logstash/6.8/plugins-filters-mutate.html
remove_field => [ "[beat][hostname]" ]
remove_field => [ "[beat][name]" ]
remove_field => [ "[log][file][path]" ]
remove_tag => [ "beats_input_codec_plain_applied" ]
}
syslog_pri { }
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
output {
if [fields][log_type] == "syslog" {
elasticsearch {
hosts => ["10.20.1.75:9200"]
sniffing => true
index => "syslog-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
user => "elastic"
password => "******"
}
}
创建处理nginx日志的logstash文件 /etc/logstash/conf.d/logstash-filebeat-nginx.conf
# nginx log
input {
beats {
port => 5044
client_inactivity_timeout => "1200"
}
}
filter {}
output {
if [fields][service] == "filebeat-nginx-accesslog" {
elasticsearch {
hosts => ["10.20.1.75:9200"]
index => "nginx-accesslog-%{+YYYY.MM.dd}"
}
}
if [fields][service] == "filebeat-nginx-errorlog" {
elasticsearch {
hosts => ["10.20.1.75:9200"]
index => "nginx-errorlog-%{+YYYY.MM.dd}"
}
}
}
测试验证Logstash配置文件是否正确
/usr/share/logstash/bin/logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/logstash-filebeat-api.conf --config.test_and_exit
输出 Configuration OK 字样说明配置正确。
重启logstash 服务
systemctl restart logstash.service
4). ElasticSearch查看索引终端命令查看ES集群索引列表
curl http://10.20.1.75:9200/_cat/indices?v
后期计划安装Elasticsearch-head插件操作、查看、管理Elasticsearch集群索引信息。ElasticSearch5.0版本后需单独安装,不作为Elasticsearch的plugin安装。5). Kibana日志可视化操作登录Kibana,添加索引,查看日志。管理 -> 索引模式 -> 创建索引模式 -> 填写索引名称 -> Next step -> 选择@timestamp -> 创建索引完成
上面有几个已添加完的索引。6). 配置Nginx访问ELKNginx反向代理配置kibana地址。
server {
listen 80;
server_name server.example.com;
location / {
proxy_pass http://10.20.1.75:5601/;
}
}
测试配置域名访问。
· 配置用户认证权限管理(X-pack)1). ELK Stack部署完成后,默认情况Elasticsearch索引数据信息通过head插件能直接访问,无需Elasticsearch认证。只要知道Elasticsearch IP+端口信息,就能进去管理操作了,生产环境下这是非常危险的。接下来对Elasticsearch设置安全认证操作,用到Elasticsearch的X-pack。Elastic Stack 6.3版本及之后,已经集成在一起发布,无需额外安装了,基础安全属于付费黄金版内容。Elastic Stack7 .1版本:基础安全免费。2). Elasticsearch单机节点认证修改Elasticsearch配置 /etc/elasticsearch/elasticsearch.yml。如果是ES集群配置用户认证,需在ES每个节点生成私钥、证书,需配置项会少多些,后面单独配置说明。
· xpack.security.enabled: true # 开启xpack认证机制
· xpack.security.transport.ssl.enabled: true
· http.cors.enabled: true
· http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type #不加此配置项,Elasticsearch服务无法启动。
重启elasticsearch服务
systemctl restart elasticsearch.service
3). Elastic内置账户添加密码Elastic中多个内置的用户,用来管理其他集成组件的账户,主要有:elastic 账号:拥有 superuser 角色,是内置的超级用户。kibana 账号:拥有 kibana_system 角色,用户 kibana 用来连接 elasticsearch 并与之通信。Kibana 服务器以该用户身份提交请求以访问集群监视 API 和 .kibana 索引。不能访问 index。logstash_system 账号:拥有 logstash_system 角色。用户 Logstash 在 Elasticsearch 中存储监控信息时使用。beats_system账号:拥有 beats_system 角色。用户 Beats 在 Elasticsearch 中存储监控信息时使用。也可在kibana管理中查看内置账户:
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
或者
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
interactive:为elastic用户一一添加密码auto:自动生产密码
接下来如果直接访问查看 elasticsearch索引服务,curl ,直接报错:
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication token for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication token for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}
这是因为访问ES的安全认证已生效,需带上授权的认证用户信息才可访问。4). Kibana配置ES开启了安全认证之后,Kibana连接ES以及访问ES都需要认证。kibana配置文件 /etc/kibana/kibana.yml, 添加如下内容,访问的认证用户登录信息:
# x-pack auth
elasticsearch.username: "elastic"
elasticsearch.password: "xxxxxx"
重启 kibana 服务
systemctl restart kibana.service
5). Logstash配置自定义的logstash的配置文件logstash-nginx.conf,在output中增加elasticsearch认证的用户名和密码。
output {
if [fields][service] == "filebeat-nginx-accesslog" {
elasticsearch {
hosts => ["10.20.1.75:9200"]
index => "nginx-accesslog-%{+YYYY.MM.dd}"
}
}
if [fields][service] == "filebeat-nginx-errorlog" {
elasticsearch {
hosts => ["10.20.1.75:9200"]
index => "nginx-errorlog-%{+YYYY.MM.dd}"
user => "elastic"
password => "******"
}
}
}
6). 测试认证插件x-pack配置完毕之后,不能直接访问elasticsearch服务了。 通过如下方式访问elasticsearch服务,需带上用户认证信息才可访问:
curl -XGET -u elastic 'http://10.20.1.75:9200/_cat/indices?v'
输入elastic用户密码后:
登录elasticsearch,提示输入登录用户名和密码:
登录进去发现elasticsearch集群无法连接,这时应该这样访问: ,URL地址要带上认证用户登录信息。使用域名登录ELK,提示输入认证的用户信息,如下:
7). kibana创建用户为了方便开发人员通过kibana查看系统、应用的log信息,在kibana上创建一只读用户。创建角色。进入 kibana 选择管理 -> 安全 -> Roles角色,创建一角色,赋予角色相关的索引,并给read权限,如下图:
创建用户。进入 kibana 选择管理 -> 安全 -> 用户,创建一用户,配置角色选择上面创建的角色名称,如下图:
相关推荐
- 安全教育登录入口平台(安全教育登录入口平台官网)
-
122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...
- 大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)
-
大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...
-
- 哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
-
要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...
-
2026-02-04 09:03 off999
- 电信宽带测速官网入口(电信宽带测速官网入口app)
-
这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...
- 植物大战僵尸95版手机下载(植物大战僵尸95 版下载)
-
1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...
- 免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)
-
1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...
- 2025世界杯赛程表(2025世界杯在哪个国家)
-
2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...
- 下载搜狐视频电视剧(搜狐电视剧下载安装)
-
搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...
- 永久免费听歌网站(丫丫音乐网)
-
可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...
- 音乐格式转换mp3软件(音乐格式转换器免费版)
-
有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...
- 电子书txt下载(免费的最全的小说阅读器)
-
1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...
- 最好免费观看高清电影(播放免费的最好看的电影)
-
在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...
- 孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)
-
要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...
欢迎 你 发表评论:
- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
