cyberflow_gravatar

Cyberflow

I am linux system administrator.


Navigation
» Home
» Categories
» Code
» XML Feed

Cyberflow


    Оптимизация standalone сервера elasticsearch

    12 May 2016 | Comments

    При использовании elasticsearch для сбора и анализа логов возникает вопрос оптимизации для одного сервера. Т.к. elasticsearch расчитан для использования в кластере, то большинство настроек “по умолчанию” выставлены так, что один сервер работает не эффективно. В этой заметке я разберу несколько примеров оптимизации elasticsearch для работы на одном сервере.

    Grafana/nginx auth proxy httpaswd

    17 Mar 2016 | Comments

    Краткое описание настройки Grafana (> 2.0) и nginx с использованием auth basic авторизации через файлы htpasswd.

    Необходимые настройки конфига Grafana:

    [server]
    protocol = http
    http_port = 3000
    domain = localhost
    http_addr = 127.0.0.1
    ...
    [auth.basic]
    enabled=false
    [users]
    allow_sign_up = false
    auto_assign_org = true
    auto_assign_org_role = Editor
    [auth.proxy]
    enabled = true
    header_name = X-WEBAUTH-USER
    auto_sign_up = true
    

    Пробрасывание X сессии от пользователя к root

    09 Sep 2015 | Comments

    Сталкнулся с необходимостью запуска графической утилиты на удаленном сервере под пользователем root, но доступ для root по ssh закрыт.

    В итоге нашел такой workaround:

    Заходим на сервер под пользователем прокинув X сессию через ssh:

    ~$ ssh -X user@hostname
    

    Находим X сессию, потом свитчемся в root:

    ~$ xauth list
    hostname/unix:10  MIT-MAGIC-COOKIE-1  f714ef310193878cae851635b871d840
    ~$ sudo -s
    

    Добавляем имеющуюся сессию пользователю root

    ~# xauth add hostname/unix:10  MIT-MAGIC-COOKIE-1 f714ef310193878cae851635b871d840
    

    Все! Можно запускать X приложение под root-ом.

    Мониторинг dmesg

    02 Jul 2014 | Comments

    Задача

    Необходимо организовать централизованный сбор логов, в частности сообщений ядра dmesg и реакции на них со стороны событийного мониторинга (например nagios).

    Передача сообщений ядра на сервер логов

    Для передачи сообщения ядра можно использовать модуль netconsole. Он позволяет передавать сообщения журнала ядра (dmesg) на удаленный компьютер по сети, без участия пространства пользователя (например, syslogd). Для сбора данных можно использовать, например logstash.

    Netconsole может быть встроен в ядро, так и загружен как модуль. Я использую загрузка модуля после загрузки системы, чтобы гарантировать, что сеть уже работает настроена.

    # dmesg -n 7
    # modprobe netconsole netconsole="6665@10.13.77.99/eth1,6666@10.13.77.1/d4:ae:52:cf:33:96"
    

    Первая команда устанавливает уровень логирования для dmesg. Вторая загружает модуль netconsole с параметрами, где:

    Erchef no_connect Error

    28 May 2014 | Comments

    Предпосылки

    Столкнулся с тем, что при большом количестве нод в chef-server версий 11.0.4 и 11.0.8 поставленных из omnibus пакетов для Ubuntu, он с большой периодичностью стал отдавать 500 Internal server error нодам при выполнении куска рецепта, который делает поиск по data_bag’ам. При изучении логов выяснилось следующее: В логах nginx’a видно, что запросы на поиск отправляются на бэкэнд erchef’а (ядро chef-server написанное на эрланге) и в ответ получаем 500:

    192.168.1.111 - - [27/May/2014:11:45:28 +0000] "GET /search/databag1?q=id:node1&sort=X_CHEF_id_CHEF_X%20asc&start=0&rows=1000 HTTP/1.1" 500 "0.051" 36 "-" "Chef Client/11.6.0 (ruby-1.9.3-p429; ohai-6.18.0; x86_64-linux; +http://opscode.com)" "127.0.0.1:8000" "500" "0.046" "11.6.0" "algorithm=sha1;version=1.0;" "auth1" "2014-05-27T11:45:28Z" "2jmj7l5rSw0yVb/vlWAYkK/YBwk=" 1011
    

    Смотрим далее в логи erchef:

    =ERROR REPORT==== 27-May-2014::11:45:28 ===
    webmachine error: path="/search/databag1"
    {error,
        {error,function_clause,
            [{chef_wm_search,'-make_bulk_get_fun/5-lc$^1/1-2-',
                 [{error,no_connections},
                 <<"databag1">>],
                 [{file,"src/chef_wm_search.erl"},{line,233}]},
             {chef_wm_search,fetch_result_rows,4,
                 [{file,"src/chef_wm_search.erl"},{line,351}]},
             {chef_wm_search,make_search_results,5,
                 [{file,"src/chef_wm_search.erl"},{line,324}]},
             {chef_wm_search,to_json,2,
                 [{file,"src/chef_wm_search.erl"},{line,130}]},
             {webmachine_resource,resource_call,3,
                 [{file,"src/webmachine_resource.erl"},{line,166}]},
             {webmachine_resource,do,3,
                 [{file,"src/webmachine_resource.erl"},{line,125}]},
             {webmachine_decision_core,resource_call,1,
                 [{file,"src/webmachine_decision_core.erl"},{line,48}]},
             {webmachine_decision_core,decision,1,
                 [{file,"src/webmachine_decision_core.erl"},{line,532}]}]}}
    

    К сожалению то, что erchef пишет в свой лог не информативно. Однако путём длительного перебора удалось понять, что проблема в соединении к базе.