aws操作日志
日志收集对于正确分析生产中的问题至关重要。 必须有一个用于搜索所有服务器上的异常并收到有关异常通知的接口。 好吧,如果您有一台服务器,则当然可以轻松地将其SSH并检查日志,但是对于较大的部署,集中收集日志比记录10台计算机以查找“发生的情况”更可取。
有很多方法可以做到,大致分为两组-第三者服务和您要安装的软件。
第三方(如果需要,也可以“基于云”)的日志收集服务包括Splunk , Loggly , Papertrail , Sumologic 。 它们非常易于设置,您只需为使用的东西付费。 基本上,您将每条消息(例如,通过自定义的logback附加程序)发送到提供者的端点,然后使用仪表板来分析数据。 在许多情况下,这是首选的方式。
但是,在其他情况下,使用第三方服务存储公司特定的数据可能会令公司政策不满意,或者可能会不希望有额外的费用。 在这种情况下,需要花费更多的精力来安装和管理内部日志收集软件。 它们以类似的方式工作,但是实现细节可能有所不同(例如,不是使用带有附加程序的消息向目标端点发送消息,而是使用某种代理程序的软件收集本地日志并进行汇总)。 开源选项包括Graylog , FluentD , Flume , Logstash 。
经过快速研究,我认为Graylog最适合我们的需求,因此以下是对AWS上安装过程的描述(尽管无论基础架构如何,第一部分都适用)。
首先要看的是Graylog提供的即用型映像 ,包括docker,openstack,vagrant和AWS。 不幸的是,AWS版本有两个缺点–使用Ubuntu,而不是Amazon AMI。 这不是一个大问题,尽管您可能需要重写堆栈中使用的一些通用脚本。 另一个是dealbreaker –启动它时,尽管声称应该运行,但它没有运行Web界面。 仅启动mongodb,elasticsearch和graylog-server。 有2个实例–一个Web,一个用于其余实例,会使事情复杂化,因此我选择了手动安装。
Graylog有两个组件–服务器,用于处理输入,索引和搜索;以及Web界面,它是与服务器通信的漂亮UI。 Web界面使用mongodb作为元数据,而服务器使用elasticsearch存储传入的日志。 以下是处理安装的bash脚本(CentOS)。 请注意,没有“ sudo”,因为初始化脚本在AWS上以root用户身份执行。
#!/bin/bash# install pwgen for password-generation
yum upgrade ca-certificates --enablerepo=epel
yum --enablerepo=epel -y install pwgen# mongodb
cat >/pos.po <<'EOT'
[mongodb-org]
name=MongoDB Repository
baseurl=/
gpgcheck=0
enabled=1
EOTyum -y install mongodb-org
chkconfig mongod on
service mongod start# elasticsearch
rpm --import >/pos.po <<'EOT'
[elasticsearch-1.4]
name=Elasticsearch repository for 1.4.x packages
baseurl=.4/centos
gpgcheck=1
gpgkey=
enabled=1
EOTyum -y install elasticsearch
chkconfig --add elasticsearch# configure elasticsearch
sed -i -- 's/#cluster.name: elasticsearch/cluster.name: graylog2/g' /etc/l
sed -i -- 's/#network.bind_host: localhost/network.bind_host: localhost/g' /etc/lservice elasticsearch stop
service elasticsearch start# java
yum -y update
yum -y install java-1.7.0-openjdk
update-alternatives --set java /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java# graylog
wget .
tar xvzf graylog-1. -C /opt/
mv /opt/graylog-1.0.1/ /opt/graylog/
cp /opt/graylog/bin/graylogctl /etc/init.d/graylog
sed -i -e 's/GRAYLOG2_SERVER_JAR=${GRAYLOG2_SERVER_JAR:=graylog.jar}/GRAYLOG2_SERVER_JAR=${GRAYLOG2_SERVER_JAR:=/opt/graylog/graylog.jar}/' /etc/init.d/graylog
sed -i -e 's/LOG_FILE=${LOG_FILE:=log/graylog-server.log}/LOG_FILE=${LOG_FILE:=/var/log/graylog-server.log}/' /etc/init.d/graylogcat >/etc/init.d/graylog <<'EOT'
#!/bin/bash
# chkconfig: 345 90 60
# description: graylog control
sh /opt/graylog/bin/graylogctl $1
EOTchkconfig --add graylog
chkconfig graylog on
chmod +x /etc/init.d/graylog# graylog web
wget .
tar xvzf graylog-web-interface-1. -C /opt/
mv /opt/graylog-web-interface-1.0.1/ /opt/graylog-web/cat >/etc/init.d/graylog-web <<'EOT'
#!/bin/bash
# chkconfig: 345 91 61
# description: graylog web interface
sh /opt/graylog-web/bin/graylog-web-interface > /dev/null 2>&1 &
EOTchkconfig --add graylog-web
chkconfig graylog-web on
chmod +x /etc/init.d/graylog-web#configure
mkdir --parents /etc/graylog/server/
cp /opt/f.example /etc/graylog/f
sed -i -e 's/password_secret =.*/password_secret = '$(pwgen -s 96 1)'/' /etc/graylog/fsed -i -e 's/root_password_sha2 =.*/root_password_sha2 = '$(echo -n password | shasum -a 256 | awk '{print $1}')'/' /etc/graylog/fsed -i -e 's/application.secret=""/application.secret="'$(pwgen -s 96 1)'"/g' /opt/graylog-web/f
sed -i -e 's/graylog2-server.uris=""/graylog2-server.uris="http://127.0.0.1:12900/"/g' /opt/graylog-web/fservice graylog start
sleep 30
service graylog-web start
您可能还希望为邮件设置TTL(自动过期),这样就不会永远存储旧日志。 这是如何做
# wait for the index to be created
INDEXES=$(curl --silent "localhost:9200/_cat/indices")
until [[ "$INDEXES" =~ "graylog2_0" ]]; dosleep 5echo "Index not yet created. Indexes: $INDEXES"INDEXES=$(curl --silent "localhost:9200/_cat/indices")
done# set each indexed message auto-expiration (ttl)
curl -XPUT "localhost:9200/graylog2_0/message/_mapping" -d'{"message": {"_ttl" : { "enabled" : true, "default" : "15d" }}}'
现在,您可以在实例上运行所有内容。 然后,您必须做一些特定于AWS的事情(如果使用CloudFormation,那将包括一堆JSON)。 清单如下:
这不是一个微不足道的过程,但是必须进行日志收集,因此我希望该指南对您有所帮助。
翻译自: .html
aws操作日志
本文发布于:2024-02-05 02:43:11,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170722148762283.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |