我想通过nginx发送日志到rsyslog,但似乎没有被发送。 这里是nginx conf,我定义了一个自定义的日志格式, log_format rsyslog '$remote_addr – $remote_user [$time_iso8601] "$request "' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/api_access.log rsyslog; access_log syslog:server=localhost:514 rsyslog; error_log /var/log/nginx/api_error.log debug; 我也将这些日志存储在文件中,并发送到rsyslog也。 alphauser@AlphaServer:/etc/rsyslog.d$ sudo netstat -nulp | grep 514 udp 0 0 0.0.0.0:514 0.0.0.0:* 41335/rsyslogd udp6 0 0 :::514 :::* 41335/rsyslogd rsyslog udp端口514已打开。 这里是rsyslogconfiguration, template(name="all-json-nginx" type="list"){ constant(value="{ ") constant(value="\"level\":\"") property(name="syslogseverity-text") […]
我是新的elasticsearch,并找出如何设置日志系统日志的ELK堆栈。 我成功安装了所有的ELK堆栈,并且工作正常。 但是,在我安装了ELK堆栈之后,当我重新启动时, var/log/elasticsearch被删除了,所以elasticsearch无法启动。 为什么var/log/elasticsearch在重启系统后被删除? 我应该如何configuration不要删除重新启动? 提前致谢。
所以我试图设置模板,而弹性search不可用于networking的其余部分,然后以可用于networking其余部分的模式重新启动elasticsearch。 当弹性search重新启动时,模板消失,失败的目的。 这里发生了什么? 我这样做的原因是因为我想确保Elasticsearch中的所有内容都设置为1个分片和0个副本。 如果我不限制对Elasticsearch的networking访问,Filebeat和Kibana将不断尝试联系Elasticsearch,有时会跳入并在我的模板应用之前创build一个不是1个碎片和0个副本的索引。 所以这是我现在的解决scheme。 如果有人有任何想法,我很乐意听到他们。 使用iptables不是一个选项。 Elasticsearch 2.3.3 – 升级目前不是一个选项。 在Docker上运行CentOS 6。 Bash脚本,一切: set -m su -c "/opt/elasticsearch/bin/elasticsearch -Des.default.path.home=/opt/elasticsearch \ -Des.default.path.logs=/opt/elasticsearch/logs \ -Des.default.path.data=/opt/elasticsearch/data \ -Des.default.path.work=/opt/elasticsearch/tmp \ -Des.discovery.zen.ping.multicast.enabled=false \ -Des.threadpool.bulk.queue_size=500 \ -Des.node.name=localNode \ -Des.network.host=_local_" elasticsearch & curl -XPUT 'http://elasticsearch:9200/_template/global_1' -H 'Content-Type: application/json' -d' { "template": "*", "order": 9, "settings": { "number_of_shards": 1, "number_of_replicas": 0 […]
我已经设置了Elasticsearch来在Amazon S3上存储每日一天的快照。 计划是写出前五天的快照,意图是如果存在四个将被覆盖。 如果前一天的演习失败了,它们就不存在了。 我的绊脚石是我找不到一个定义S3文件名的方法。 目前他们有独特的名字,如: snap-lHS3zrv3RzWXzwbwwjwR1ng.dat ,虽然在策展人命令我定义它像snapshot-2017-09-15 我猜测它必须是Amazon S3插件中的东西,因为我可以手动将文件推送到S3,并且不会混淆名称。
build立: azure Ubuntu 16.04 Elasticsearch 1.7.3(是的,我知道它是旧的,但我们还没有准备好改变它) 挑战:我们实施了备份。 在某些时候,path.repo与备份脚本尝试创build回购的位置不匹配。 那是在四月份。 从那时起到现在,系统一直在试图创build这些回购,尽pipe重新启动了Elastic,并重新启动了一个完整的系统。 任务队列是空的。 日志示例: [2017-09-20 06:15:02,295] [WARN] [repositories] [Dev Client ES Node 1]未能创build仓库[fs] [2017-04-25] org.elasticsearch.common.inject.CreationException:Guice创build错误: 错误注入构造函数org.elasticsearch.repositories.RepositoryException:[2017-04-25] location [/ media / backups2 / es / 2017-04-25]与org处的path.repo指定的位置不匹配。 elasticsearch.repositories.fs.FsRepository。(Unknown Source)定位org.elasticsearch.repositories.fs.FsRepository定位org.elasticsearch.repositories.Repository 我如何摆脱这个? 现在已经到了让Elasticsearch变为现实的地步。 提前致谢!
突然间,ES再也不能正常启动了。 我不知道为什么。 试过2.3.4 试了5.6.1(新鲜下载!) 通过Docker尝试5.6.1 删除了我的索引 当我启动ES(2.3.4)时,我得到这个: Cluster health status changed from [RED] to [YELLOW] (reason: shards started [[wa-search][3] …]). 该安装的我的ESconfiguration: # ======================== Elasticsearch Configuration ========================= # # NOTE: Elasticsearch comes with reasonable defaults for most settings. # Before you set out to tweak and tune the configuration, make sure you # understand what are […]
我从elasticsearch开始,注意到为了启动elasticsearch的目录 / usr / share / elasticsearch /和所有的子需要通过elasticsearch:elasticsearch自己。 如果是拥有755权限的root拥有elasticsearch正在抛出: Starting elasticsearch: bash: /usr/share/elasticsearch/bin/elasticsearch: Permission denied 即使root是所有者弹性应该能够启动为其他可以r + x吗?
我正试图在ElasticSearch v5.6.3节点(Ubuntu 16)上自动设置堆大小, 这些计算机托pipe在Azure上,我希望这样做,以便在扩展计算机时自动将堆大小设置为适当的级别,而无需手动打开/etc/elasticsearch/jvm.options文件并将其设置为然后重新启动服务。 据我所知,build议的方法来设置堆大小(在ElasticSearch 5中)是: 在jvm.options文件中 通过ES_JAVA_OPTS环境variables。 因此,如果在弹性search服务启动之前运行脚本来设置ES_JAVA_OPTS, 我尝试了很多东西来试图设置ES_JAVA_OPTS,但是在查看日志时,我可以看到它使用了默认值。 我尝试了各种各样的东西: 编辑/etc/init.d/elasticsearch脚本并重新安装服务 编辑elasticsearch-systemd-pre-exec来设置variables。 在rc.local中设置variables 最后,我在init.d中放了一个脚本,并使用运行级别首先执行它。 该脚本使用sed更新jvm.options文件,如下所示: #!/bin/bash memoryInKb="$(awk '/MemTotal/ {print $2}' /proc/meminfo)" heapSize="$(expr $memoryInKb / 1024 / 1000 / 2)" sed -i "s/#*-Xmx[0-9]\+g/-Xmx${heapSize}g/g" /etc/elasticsearch/jvm.options sed -i "s/#*-Xms[0-9]\+g/-Xms${heapSize}g/g" /etc/elasticsearch/jvm.options 但是我觉得这真的很肮脏。 必须有一个更好的方法来做到这一点? 我尝试以相同的方式设置ES_JAVA_OPTS,但它不起作用。 我的最终目标是使扩展更容易。
我有一个“ELK堆栈”的configuration,首先是执行标准的'filebeat'系统日志从logstash提供elasticsearch输出插件。 它工作得很好。 现在我已经添加了一个TCPinput端口(为这个数据分配“types”,以便在[type] ==“thistype”中区分filter),自己的grokfilter,并输出到两个elasticsearch索引名称和document_type名称和文件。 当数据通过TCP端口进入时,它将正确格式化的数据写入输出文件,如文件输出插件所期望的那样,但是当我select给定索引时,没有数据显示在Kibana中。 Kibana从我的输出configuration中识别索引,并列出我在grokfilter中分配的所有字段/键; 然而,再次,没有数据是可search的。 正如我所提到的那样,这些数据肯定是正确的,正好在文件插件输出中出现。 我在这里做错了什么? 我的configuration如下: input { tcp { host => "10.1.1.10" port => 12345 type => "odata" id => "odata" codec => line } } filter { if [type] == "odata" { grok { match => { "message" => "%{QUOTEDSTRING:oid},\"%{WORD:oword1}\",\"%{IPV4:oclientip}\",\"%{DATA:otimestamp}\",%{QUOTEDSTRING:opl},%{QUOTEDSTRING:oos},%{QUOTEDSTRING:oua}" } remove_field => "message" } date { match => […]
我有一个主服务器(专用的CentOS 7,XFS文件系统,2X1TB SSD,软件RAID1)通过局域网连接到我的备份服务器(专用的CentOS 7,XFS文件系统,2X2TB硬盘,软件RAID1)。 我会赞赏我的备份策略的批评。 要点 – 备份频率 – 每天凌晨1点(在24小时内假设最低的stream量点),通过cron工作。 主服务器使用elasticsearch和mongodb – 启动备份过程,我首先在刷新当前写操作(elasticsearch – _flush(相当于lucene提交),随后closures所有索引,mongodb – fsync:1,lock :是)。 在mongodb被locking并且所有弹性索引被closures之后,调用xfs_freeze -f(这会冻结XFS文件系统以防止写入)。 接下来,我使用LVM(逻辑卷pipe理器)快照 – 使用lvcreate命令创build一个新的LVM设备,并拍摄XFS文件系统的快照。 装入新的快照(不带uuid选项)。 解冻XFS – xfs_freeze -u 解锁mongodb并重新打开所有elasticsearch索引。 主服务器再次变为function。 使用rsnapshot (大致rsync +版本)发送装载的快照到备份服务器。 在备份服务器上删除t-7日备份(我保留7个版本t,t-1日,… t-6日)。 在主服务器上卸载并删除快照。 我担心主服务器从locking数据库的时间到处于“停顿”状态,直到它们再次运行。 我不知道这个时间是否微不足道? 如果不是微不足道,大家怎么克服这个“备份失速”呢? 鉴于备份服务器不是共享实体,它对encryption备份服务器上的数据有多重要? 如果需要对1TB的encryption备份数据进行完全恢复备份,则在encryption数据解密过程中会浪费多less时间?