Инструмент для сбора логов GrayLog2

Еще одна система по сбору логов в Web—интерфейс с целью наглядного отображения собираемого с систем, сервисов.




Помимо использования LogAnalyzer я бы хотел попробовать что-нибудь еще, вдруг окажется что есть инструмент работающий быстрее и проще в настройке (хотя это вряд ли возможно).




Так вот я хочу самостоятельно посмотреть что есть приложение/сервис Graylog2 который мне бы хотелось развернуть на Ubuntu Trusty Server. Как я понял Graylog2 (лог обработчик) имеет связку: ElasticSearch (Сервис хранения сообщений) + Java + MongoDB (Сервис хранения конфигурации и метаданных)




Текущие характеристики тестовой системы: RAM = 2,CPU =1,HDD = 50




По документации схема работы:







ekzorchik@srv-trusty:~$ sudo rm -Rf /var/lib/apt/lists/




ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get upgrade -y




ekzorchik@srv-trusty:~$ sudo apt-get install linux-generic-lts-xenial linux-image-generic-lts-xenial -y




ekzorchik@srv-trusty:~$ uname -a




Linux srv-trusty 4.4.0-79-generic #100~14.04.1-Ubuntu SMP Fri May 19 18:36:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux




Устанавливаю Java в систему, пусть будет пока восьмая версия:




ekzorchik@srv-trusty:~$ sudo apt-add-repository ppa:webupd8team/java




ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get install oracle-java8-installer -y




You MUST agree to the license available in http://java.com/license if you want to use Oracle JDK. - Ok




Do you accept the Oracle Binary Code license terms? - Yes




Как говорят различные руководства нужно в систему установить репозитарий установки MongoDB:




ekzorchik@srv-trusty:~$ echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list




deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen




ekzorchik@srv-trusty:~$ sudo apt-get update




ekzorchik@srv-trusty:~$ sudo gpg --keyserver keyserver.ubuntu.com --recv 9ECBEC467F0CEB10




ekzorchik@srv-trusty:~$ sudo bash -c "gpg --export --armor 9ECBEC467F0CEB10 | apt-key add -"




OK




ekzorchik@srv-trusty:~$ sudo apt-get update




ekzorchik@srv-trusty:~$ sudo apt-get install mongodb-org -y




ekzorchik@srv-trusty:~$ mongo --version




MongoDB shell version: 2.6.12




Далее устанавливаем ElasticSearch в систему по такому же принципу как добавления репозитария:




ekzorchik@srv-trusty:~$ wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -




OK




ekzorchik@srv-trusty:~$ echo "deb https://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list




deb https://packages.elastic.co/elasticsearch/2.x/debian stable main




ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get install elasticsearch -y




ekzorchik@srv-trusty:~$ sudo update-rc.d elasticsearch defaults 95 10




Далее нужно подправить параметр cluster.name конфигурационного файла ElasticSearch:




ekzorchik@srv-trusty:~$ sudo nano /etc/elasticsearch/elasticsearch.yml




cluster.name: srv-trusty




network.host: localhost




ekzorchik@srv-trusty:~$ sudo service elasticsearch restart




Для проверки, что ElasticSearch работает существует вот такой вот запрос через консоль: (если вывод есть, такой как представлен у меня то все работает)




ekzorchik@srv-trusty:~$ curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'




{




"cluster_name" : "srv-trusty",




"status" : "green",




"timed_out" : false,




"number_of_nodes" : 1,




"number_of_data_nodes" : 1,




"active_primary_shards" : 0,




"active_shards" : 0,




"relocating_shards" : 0,




"initializing_shards" : 0,




"unassigned_shards" : 0,




"delayed_unassigned_shards" : 0,




"number_of_pending_tasks" : 0,




"number_of_in_flight_fetch" : 0,




"task_max_waiting_in_queue_millis" : 0,




"active_shards_percent_as_number" : 100.0




}




Устанавливаем GrayLog2 в систему:




ekzorchik@srv-trusty:~$ sudo apt-get install apt-transport-https




ekzorchik@srv-trusty:~$ wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb




ekzorchik@srv-trusty:~$ sudo dpkg -i graylog-2.2-repository_latest.deb




ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get install graylog-server -y




Чтобы сервис graylog мог стартовать в автоматическом режиме при загрузке систему нужно:




ekzorchik@srv-trusty:~$ sudo rm -f /etc/init/graylog-server.override




ekzorchik@srv-trusty:~$ sudo service graylog-server start




graylog-server start/running, process 4206




Генерируем секретную фразу




ekzorchik@srv-trusty:~$ sudo apt-get install pwgen -y




ekzorchik@srv-trusty:~$ SECRET=$(pwgen -s 99 1)




ekzorchik@srv-trusty:~$ sudo -E sed -i -e 's/password_secret =.*/password_secret = '$SECRET'/' /etc/graylog/server/server.conf




Теперь создаем пароль на вход в Web—интерфейс Graylog:




ekzorchik@srv-trusty:~$ PASSWORD=$(echo -n 712mbddr@ | shasum -a 256 | awk '{print $1}')




ekzorchik@srv-trusty:~$ sudo -E sed -i -e 's/root_password_sha2 = .*/root_password_sha2 = '$PASSWORD'/' /etc/graylog/server/server.conf




ekzorchik@srv-trusty:~$ ip r




default via 10.7.8.100 dev eth0




10.7.8.0/23 dev eth0 proto kernel scope link src 10.7.9.130




ekzorchik@srv-trusty:~$ sudo nano /etc/graylog/server/server.conf




root_username = admin




#rest_listen_uri = http://127.0.0.1:9000/api/




rest_listen_uri = http://10.7.9.130:12900/




#web_listen_uri = http://127.0.0.1:9000/




web_listen_uri = http://10.7.9.130:9000/




#elasticsearch_index_prefix = graylog




elasticsearch_index_prefix = srv-trusty




После не забываем сохранить внесенные изменения и перезапускаем всю систему с установленным Graylog:




ekzorchik@srv-trusty:~$ sudo reboot




ekzorchik@srv-trusty:~$ sudo netstat -tulpn | grep :9000




tcp6 0 0 10.7.9.130:9000 :::* LISTEN 806/java




Затем открываю браузер и в строку адресу ввожу http://IP&DNS:9000 адрес сервера где составляю данную заметку установки Graylog в систему Ubuntu Trusty Server. В ответ у меня окно приглашения на аутентификацию:







После ввода в соответствующие поля (Username: admin, Password: 712mbddr@) данных нажимаю Sign in. Вот только странно, что меня не пускает, пишет: Invalid credentials, please verify them and retry.




Проверяю:




ekzorchik@srv-trusty:~$ PASSWORD=$(echo -n 712mbddr@ | shasum -a 256 | awk '{print $1}')




ekzorchik@srv-trusty:~$ echo $PASSWORD




0f4e548e505360ce63d651aedf0befd2d01f4cc488344dfa3efdb15ec3e2384e




ekzorchik@srv-trusty:~$ sudo grep root_password_sha2 /etc/graylog/server/server.conf




root_password_sha2 =

Странно, а где значения?




Исправляю.




ekzorchik@srv-trusty:~$ sudo -E sed -i -e 's/root_password_sha2 =.*/root_password_sha2 = '$PASSWORD'/' /etc/graylog/server/server.conf




Проблема была в том, что в первом поиске был символ пробела между символом равенства и точкой.




ekzorchik@srv-trusty:~$ sudo service graylog-server restart




На заметку: сервис стартует не сразу, а через некоторое время.




После переходу к URL вкладе где авторизовываюсь, введя данные нажимаю Sign In. Виже надпись We are preparing Graylog for you… и после меня перекидывает к тому чему я стремился к Web-интерфейсу управления логами. Нажимаю на уведомление в виде красного кружка и в качестве подтверждения что GrayLog работает должно быть только одно уведомление, что не настроены входящие потоки то все хорошо. Но у меня почему-то не так.













Еще раз смотрю документацию и вижу, что рекомендуется в качестве имени кластера использовать надпись graylog. Ну что ж попробую:




ekzorchik@srv-trusty:~$ sudo nano /etc/elasticsearch/elasticsearch.yml




cluster.name: graylog




ekzorchik@srv-trusty:~$ sudo service elasticsearch restart




ekzorchik@srv-trusty:~$ sudo nano /etc/graylog/server/server.conf




elasticsearch_index_prefix = graylog




#elasticsearch_index_prefix = srv-trusty




ekzorchik@srv-trusty:~$ sudo service graylog-server restart
















И вот теперь все хорошо. Graylog успешно запущен и ошибок со стороны кластера ElasticSearch нет. Вот оно оказывается как, да же именование имеет значение. Ну пока я разобрал для себя как установить Graylog2, а далее буду разбирать как им пользоваться. На этом я для себя шпаргалку составил. До новых встреч, с уважением автор блога Олло Александр aka ekzorchik.




Документация по Graylog: https://docs.graylog.org/en/3.2/




Ещё небольшая инструкция по GrayLog: http://samag.ru/archive/article/3828




Источник: https://www.ekzorchik.ru/2017/06/graylog2-log-collection-tool/



2021-04-01T22:18:21
Software