Persönliche Notizen
install ~ setup
Mit Stoff orchestriert
fabfile.py
def install_elastic_search():
sudo("wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.2.1.deb")
sudo("dpkg -i elasticsearch-1.2.1.deb")
sudo("service elasticsearch start")
run("echo export PATH=\$PATH:/usr/share/elasticsearch/bin/ >> ~/.bashrc")
def es_init():
//changing permission
//see document
Empfangen Sie Protokolle von verschiedenen Servern auf dem Protokollserver, die eine elastische Suche enthalten Es ist gut, den Forest Plug von td-agent (fluentd) zum bedingten Verzweigen oder Extrahieren von Informationen aus Tags zu verwenden.
td-agent.conf
<source>
type forward
port 24224
</source>
<match **>
type forest
subtype elasticsearch
<template>
host localhost
port 9200
index_name ${tag_parts[2]}
type_name ${tag_parts[1]}
buffer_type memory
flush_interval 3s
retry_limit 17
retry_wait 1.0
num_threads 1
flush_at_shutdown true
</template>
</match>
Dies ist ein wenig flush_interval 3s
ist nicht gut.
Vielleicht ist es in der Produktion so häufig, dass es die Leistung beeinträchtigt.
Übrigens, wenn Sie das Intervall wie bei Akan mit td-agent auf das Timing einstellen, werden die Daten, die für die elastische Suche verwendet werden sollten, nicht leicht wiedergegeben. Wenn Sie also der Meinung sind, dass sie nur langsam wiedergegeben werden, möchten Sie möglicherweise damit spielen.
fabfile_test.py
def all():
availability_test("td-agent")
availability_test("elasticsearch")
def availability_test(name):
env.warn_only = True
if name == "td-agent":
version_checker = name + " --version"
elif name == "elasticsearch":
version_checker = "export PATH=$PATH:/usr/share/elasticsearch/bin/ && " + name + " -v"
if "command not found" in run(version_checker):
print(name + " hasn't been installed")
else:
print(name + " has been installed")
env.warn_only = False
Wenn Sie jetzt darüber nachdenken, ist es besser, das Stoff-Test-Tool envassert zu verwenden, und ich sollte es jetzt überarbeiten.
envassert ist einfach einzurichten und muss nicht so robust sein wie serverspec. Nein, es ist sehr gut, in rspec-Notation schreiben zu können, und ich denke, Mokka ist auch in JS gut, aber serverspec muss zu viel vorbereiten, und ich möchte die Umgebung für Infrastrukturtests testen. Ich kam und berührte es, aber ich bin ein bisschen schüchtern. Es ist also rubinistisch, aber fiblisch, kein Koch.
Schmutzig Schreiben Sie um Python herum
bash
#! /bin/bash
###############################################
# function
###############################################
initializing () {
if ! expr $before : '[0-9]*' 1> /dev/null 2> /dev/null ; then
before=0
fi
if [ -z $num ]; then
num=0
fi
if [ $num -le $before ]; then
num=$(($before+1))
fi
}
buffering () {
waiting=$*
for i in `seq 1 $waiting`
do
left=$(($waiting - $i))
echo $left sec
sleep 1
done
}
log_into_td_es () {
fab -u <your_name> -i <your_pem> -H <your_domain> all
buffering 1
}
diff_check () {
diff=$(($after - $before))
if [ $diff -eq 1 ]; then
echo diff: $diff
else
echo not changed
exit 1
fi
}
# delete_all () {
# curl -XDELETE 'http://$*:9200/*' 1> /dev/null 2> /dev/null
# }
###############################################
# main
###############################################
before=`curl -XGET http://$*:9200/fluentd/_count 2> /dev/null | cut -d "," -f 1 | cut -d ":" -f 2`
echo before_count: $before
initializing
curl -XPUT http://$*:9200/fluentd/info/$num -d '{ "test" : "hoge" }' 1> /dev/null 2> /dev/null
after=`curl -XGET http://$*:9200/fluentd/_count 2> /dev/null | cut -d "," -f 1 | cut -d ":" -f 2`
echo after_count: $after
diff_check
Sie sollten elasticsearch-py
verwenden. Ich bin Rubyist, aber Python kann in der Infrastruktur verwendet werden. Passend zum Team. Ich bin nicht besonders darüber.
curl -X GET 'http://hoge.com:9200/_index/_type/_search?pretty=true&size=1000&sort=desc'
Sie können es auch überprüfen.
curl -X GET 'http://hoge.com:9200/_stats?pretty
Tausende Zeilen statistischer Informationen werden ausgegeben. Normalerweise schaue ich mir die Anzahl der Dokumente (und den Speicher) an. Ich habe bisher noch nicht geschert oder repliziert, also mache ich es später.
Diejenigen, die regelmäßig ES-Statistiken erhalten und diese visualisieren.
so ähnlich.
Recommended Posts