Notes personnelles
install ~ setup
Orchestré avec du tissu
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
Recevez les journaux de divers serveurs sur le serveur de journaux contenant la recherche élastique Il est bon d'utiliser le plug-in de forêt de td-agent (fluentd) pour le branchement conditionnel ou l'extraction d'informations des balises.
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>
C'est un peu flush_interval 3s
n'est pas bon.
Peut-être qu'en production, c'est si fréquent que cela affecte les performances.
En passant, si vous définissez l'intervalle sur le timing comme Akan avec td-agent, les données qui auraient dû être PUT vers Elastic Search ne seront pas reflétées facilement, donc si vous pensez que la réflexion est lente, vous voudrez peut-être jouer avec.
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
Si vous y réfléchissez maintenant, il est préférable d'utiliser l'outil de test de tissu envassert, et je devrais le refactoriser maintenant.
envassert est facile à configurer et n'a pas besoin d'être aussi robuste que serverspec. Non, c'est très bien de pouvoir écrire en notation rspec, et je pense que mocha est également bon en JS, mais serverspec a trop à préparer et je veux tester l'environnement pour les tests d'infrastructure. Je suis venu et je l'ai touché, mais je suis un peu timide. C'est donc rubisiste mais fiblique, pas chef.
Sale Réécrire autour de python
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
Vous devez utiliser ʻelasticsearch-py`. Je suis rubisiste, mais python peut être utilisé dans l'infrastructure. Fit pour l'équipe. Je ne suis pas particulier à ce sujet.
curl -X GET 'http://hoge.com:9200/_index/_type/_search?pretty=true&size=1000&sort=desc'
Vous pouvez également le vérifier.
curl -X GET 'http://hoge.com:9200/_stats?pretty
Des milliers de lignes d'informations statistiques sortent. Je regarde généralement la quantité de documents (et le stockage). Je n'ai pas encore partagé ou répliqué, je le ferai donc plus tard.
Ceux qui obtiennent régulièrement des statistiques ES et les visualisent.
quelque chose comme ca.
Recommended Posts