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