ubuntu20.04下使用juju+maas环境部署k8s-5-使用graylog和Prometheus2监控k8s集群-2-部署和调试graylog模块并导入rsyslog转发的日志
参考文档:使用 Graylog 和 Prometheus 监视 Kubernetes 集群Kubernetes documentationPrometheus2 #22Grafana #40Telegraf #41Graylog #47Elasticsearch #49Mongodb #59Apache2多节点openstack charms 部署指南0.0.1-36-graylog实际-1多节点
参考文档:
使用 Graylog 和 Prometheus 监视 Kubernetes 集群
Prometheus2 #22
Grafana #40
Telegraf #41
Graylog #47
Elasticsearch #49
Mongodb #59
Apache2
多节点openstack charms 部署指南0.0.1-36-graylog实际-1
多节点openstack charms 部署指南0.0.1-37-graylog实际-2
多节点openstack charms 部署指南0.0.1-38-graylog实际-3
多节点openstack charms 部署指南0.0.1-39-graylog-4-filebeat
Rsyslog #18
Rsyslog Forwarder Ha #20
多节点OpenStack Charms 部署指南0.0.1.dev223–26–跨model 建立关系构建rsyslog 日志服务器构建实际
多节点OpenStack Charms 部署指南0.0.1.dev223–25–rsyslog 日志服务器构建实际
接上节,ubuntu20.04下使用juju+maas环境部署k8s-4-使用graylog和Prometheus2监控k8s集群-1-部署rsyslog模块:
本节部署graylog模块,分别接收k8s模块rsyslog-forward-ha应用转发来的log和rsyslog模块由filebeat应用转发来的log。
作者:llama-charmers Stable, Candidate
支持:Xenial Bionic Focal
使用命令:
juju deploy cs:graylog-47
描述
安装 Graylog 日志管理系统。一个功能齐全的系统需要连接到 elasticsearch 和 mongodb。 https://www.graylog.org/
系列: xenial › bionic › focal ›
标签: misc ›
概述
此charm使用 snap 包安装 Graylog。
用法:
juju deploy cs:~graylog-charmers/graylog
juju run-action --wait graylog/X show-admin-password
Graylog 需要运行 MongoDB 和 Elasticsearch 才能使用。
juju deploy cs:~mongodb-charmers/mongodb
juju relate graylog:mongodb mongodb:database
juju deploy cs:~elasticsearch-charmers/elasticsearch
juju relate graylog:elasticsearch elasticsearch:client
然后您可以浏览到 http://ip-address:9000 并以用户“admin”的身份登录。默认情况下,密码是一个随机值,因此必须运行 juju run-action --wait graylog/X show-admin-password 以便管理员访问安装。
反向代理关系
Graylog 支持使用 http 关系向充当反向代理的应用程序通告其端口。 webUI 的端口通过关系的 all_services 变量中的关系公开。
注意:对于 Graylog 版本 2,API 端口也通过 http 关系公开。 Graylog 版本 3 硬编码 /api/ 位置,并为 webUI 和 API 使用默认端口 (9000)。
有关使用此功能的更多详细信息,请参阅 Apache2 charm的反向代理说明。
用于 apache2 charm的示例 Graylog 2 vhost 模板:
$ cat graylog-vhost.tmpl
<Location "/">
RequestHeader set X-Graylog-Server-URL "http://{{servername}}/api/"
ProxyPass http://{{graylog_web}}/
ProxyPassReverse http://{{graylog_web}}/
</Location>
<Location "/api/">
ProxyPass http://{{graylog_api}}/api/
ProxyPassReverse http://{{graylog_api}}/api/
</Location>
用于 apache2 charm的示例 Graylog 3 vhost 模板:
$ cat graylog-vhost.tmpl
<Location "/">
RequestHeader set X-Graylog-Server-URL "http://{{servername}}/"
ProxyPass http://{{graylog_web}}/
ProxyPassReverse http://{{graylog_web}}/
</Location>
现在部署和配置 apache2 作为您的 Graylog 反向代理:
juju deploy apache2
juju config apache2 "enable_modules='headers proxy_html proxy_http'"
juju config apache2 "vhost_http_template=$(base64 ./graylog-vhost.tmpl)"
juju expose apache2
juju relate apache2:reverseproxy graylog:website
访问 http:// 以访问 Graylog Web 界面。
扩展使用
MongoDB 和 Elasticsearch 应用程序都可以扩展或缩减。 Graylog 将根据需要重新配置自身。 Graylog charm尚不支持多个单元的集群。
配置
根据使用的 Elasticsearch charm,集群名称可能不会传递给 Graylog。在这种情况下,应该设置 elasticsearch_cluster_name 配置选项。
日志输入
一个可选的配置选项 log_inputs 使我们能够指定额外的日志输入。这需要一个 yaml 列表作为输入。 yaml 可以包含四个值:名称、类型、bind_address 和 bind_port,并且可以包含多个输入。例如,要启用 Syslog UDP 输入,yaml 可能如下所示:
- name: SyslogUDP
type: Syslog UDP
bind_address: 0.0.0.0
bind_port: 514
升级
Graylog 可以通过设置通道配置选项升级到不同的快照版本。例如,使用以下内容切换到最新版本 3 edge snap。
juju config graylog channel='3/edge'
注意:从 Graylog 版本 2 升级到版本 3 时,请参阅升级指南以确保您的环境满足最低要求。
如果新的通道配置选项导致安装新的 snap,则charm将在 /var/snap/graylog/common/server.conf.$prev 中的 Graylog 单元上备份先前的配置文件。如果将来需要将 graylog 恢复到以前的版本,这可能很有用。
以下是实际配置过程:
参见
多节点openstack charms 部署指南0.0.1-36-graylog实际-1
多节点openstack charms 部署指南0.0.1-37-graylog实际-2
多节点openstack charms 部署指南0.0.1-38-graylog实际-3
多节点openstack charms 部署指南0.0.1-39-graylog-4-filebeat
在mass上配置虚机
为了做nat转换,需要将graylog,elasticsearch,apache2IP地址固定。故需要先在maas中先compose三台虚机,并编辑tag和ip。具体步骤,请参见多节点OpenStack Charms 部署指南0.0.1.dev223–2-安装MAAS
节点名 | 标签 | vCPU数 | 网卡数 | 内存g数 | 硬盘数 | 硬盘g数 | ip |
---|---|---|---|---|---|---|---|
elasticsearch.maas | elasticsearch | 2 | 1 | 8 | 1 | 80 | 10.0.9.3 |
apache2.maas | apache2 | 2 | 1 | 8 | 1 | 60 | 10.0.9.18 |
graylog.maas | graylog | 2 | 1 | 8 | 1 | 60 | 10.0.9.13 |
配置NAT
参见:
Ubuntu 20.04防火墙 UFW做NAT转换,IP伪装,端口重定向,端口映射
编写graylog-vhost.tmpl
vim graylog-vhost.tmpl
<Location “/”>
RequestHeader set X-Graylog-Server-URL “http://{{servername}}/api/”
ProxyPass http://{{graylog_web}}/
ProxyPassReverse http://{{graylog_web}}/
<Location “/api/”>
ProxyPass http://{{graylog_api}}/api/
ProxyPassReverse http://{{graylog_api}}/api/
部署graylog
#部署相关应用,apache2,graylog,elasticsearch,mongodb
juju deploy cs:elasticsearch-49 --constraints tags=elasticsearch --series focal --debug
juju deploy cs:graylog-47 --constraints tags=graylog --series focal --debug
juju deploy cs:mongodb-59 --to lxd:0 --series focal --debug
juju deploy cs:apache2-36 --constraints tags=apache2 --series focal --debug
#建立关系
juju relate graylog:mongodb mongodb:database
juju relate graylog:elasticsearch elasticsearch:client
juju relate apache2:reverseproxy graylog:website
#配置
juju config apache2 "enable_modules='headers proxy_html proxy_http'"
juju config apache2 "vhost_http_template=$(base64 ./graylog-vhost.tmpl)"
juju config elasticsearch firewall_enabled="false"
juju expose apache2
juju config graylog elasticsearch_cluster_name="<es-cluster>"
#获取graylog密码
juju run-action --wait graylog/0 show-admin-password
上面的 "es-cluster"使用juju config elasticsearch cluster-name
获得
调试apache2
需要进入apache2/0单元执行
juju ssh apache2/0
启用代理模块
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
重启apache2
sudo service apache2 restart
查看apache2状态:
systemctl status apache2.service
开启header功能
sudo a2enmod headers
再次重启apache2,并查看状态
sudo service apache2 restart
systemctl status apache2.service
配置graylog
先在nat网关,配置地址映射,公网ip:50080映射到graylog服务器内网地址:80
juju config graylog web_endpoint_uri=http://NAT网关公网ip:50080/api/
然后:
http://nat网关公网ip:9000/api/
期待了许久的graylog页面出现了:
导入rsyslog日志:
参见:
多节点openstack charms 部署指南0.0.1-38-graylog实际-3
切换到使用rsyslog-forward-ha所在模块
juju switch k8s
juju config rsyslog forward_host="10.0.9.13" #graylog/0所在ip地址或域名
juju config rsyslog forward_protocol="tcp"
juju config rsyslog forward_port="514"
web配置:
http://nat网关公网ip:9000/api/
选择system->input
选择input数据的来源类型:
这里选的是刚才在rysylog模块中配置的协议syslog tcp,端口514,bind ip:0.0.0.0
Launch new input
根据刚才在rysylog中配置进行配置:node选择一个可用graylog节点,端口514,bind ip:0.0.0.0
测试log信息发送链条:
生成测试log信息
切换到某个rsyslog-forward-ha所在unit,输入loger信息,参见多节点OpenStack Charms 部署指南0.0.1.dev223–25–rsyslog 日志服务器构建实际:
juju switch openstack
juju ssh etcd/0
logger "a testing"
检查rsyslog是否收到信息
切换到rsyslog,并检查测试信息 “a testing”
juju switch rsyslog
juju ssh primary-rsyslog/0
grep testing /var/log/syslog
输出类似
Apr 15 08:13:46 juju-db6013-0-lxd-10 ubuntu: a testing
检查graylog是否收到信息
上文生成的rsyslog input
点击show input message
选择时间范围:这里选的是所有
选择搜索内容:testing
input下的一个log数据源:
更多推荐
所有评论(0)