location /
}
error_page 503 /50x.html;
location = /50x.html {
root /usr/share/nginx/html/error;
internal;
}
rewrite ^/(.*)/$ /$1 permanent;
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
вторник, 25 августа 2020 г.
понедельник, 10 августа 2020 г.
sqlplus: command not found
После установки базы Oracle версии 12.2.0, не мог зайти в базу с помощью SQL Plus.
Проблема решил вот такой командой:
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
пятница, 6 марта 2020 г.
Curator автоудаление индексов в ElasticSearch/autodelete elasticsearch indices with curator
Появилась необходимость удалять индексы с логами в ElasticSearch автоматически. В моем примере удаляются логи старше 4 дней.
Для этой задачи решил использовать curator: https://www.elastic.co/guide/en/elasticsearch/client/curator/current/yum-repository.html
Версия софта на момент написания статьи.
curator: 5.8.1
Elasticsearch: 7.5.0
1. Создаем два файла в /etc/elasticsearch/ curator-clients.yml и curator-actions.yml
Содержание curator-clients.yml.
client:
hosts:
- 192.168.1.110
port: 9200
http_auth: elastic:mypassword
logging:
loglevel: INFO
logfile: /var/log/curator
logformat: default
Содержание curator-actions.yml
actions:
1:
action: delete_indices
description: >-
Delete indices older than 4 days (based on index name), for logstash-
options:
ignore_empty_list: True
disable_action: False
filters:
- filtertype: pattern
kind: prefix
value: logstash-
- filtertype: age
source: name
direction: older
timestring: '%Y.%m.%d'
unit: days
unit_count: 4
2. Запускаем curator: curator --config /etc/elasticsearch/curator-clients.yml /etc/elasticsearch/curator-actions.yml
3. Проверяем лог удаления индексов в /var/log/curator.
020-03-06 10:36:06,704 INFO Successfully created Elasticsearch client object with provided settings
2020-03-06 10:36:06,707 INFO Trying Action ID: 1, "delete_indices": Delete indices older than 4 days (based on index name), for logstash- prefixed indices. Ignore the error if the filter does not result in an actionable list of indices (ignore_empty_list) and exit cleanly.
2020-03-06 10:36:07,120 INFO Deleting 2 selected indices: ['logstash-2020.02.24', 'logstash-2020.03.01']
2020-03-06 10:36:07,120 INFO ---deleting index logstash-2020.02.24
2020-03-06 10:36:07,120 INFO ---deleting index logstash-2020.03.01
2020-03-06 10:36:07,807 INFO Action ID: 1, "delete_indices" completed.
2020-03-06 10:36:07,807 INFO Job completed.
Для этой задачи решил использовать curator: https://www.elastic.co/guide/en/elasticsearch/client/curator/current/yum-repository.html
Версия софта на момент написания статьи.
curator: 5.8.1
Elasticsearch: 7.5.0
1. Создаем два файла в /etc/elasticsearch/ curator-clients.yml и curator-actions.yml
Содержание curator-clients.yml.
client:
hosts:
- 192.168.1.110
port: 9200
http_auth: elastic:mypassword
logging:
loglevel: INFO
logfile: /var/log/curator
logformat: default
Содержание curator-actions.yml
actions:
1:
action: delete_indices
description: >-
Delete indices older than 4 days (based on index name), for logstash-
options:
ignore_empty_list: True
disable_action: False
filters:
- filtertype: pattern
kind: prefix
value: logstash-
- filtertype: age
source: name
direction: older
timestring: '%Y.%m.%d'
unit: days
unit_count: 4
2. Запускаем curator: curator --config /etc/elasticsearch/curator-clients.yml /etc/elasticsearch/curator-actions.yml
3. Проверяем лог удаления индексов в /var/log/curator.
020-03-06 10:36:06,704 INFO Successfully created Elasticsearch client object with provided settings
2020-03-06 10:36:06,707 INFO Trying Action ID: 1, "delete_indices": Delete indices older than 4 days (based on index name), for logstash- prefixed indices. Ignore the error if the filter does not result in an actionable list of indices (ignore_empty_list) and exit cleanly.
2020-03-06 10:36:07,120 INFO Deleting 2 selected indices: ['logstash-2020.02.24', 'logstash-2020.03.01']
2020-03-06 10:36:07,120 INFO ---deleting index logstash-2020.02.24
2020-03-06 10:36:07,120 INFO ---deleting index logstash-2020.03.01
2020-03-06 10:36:07,807 INFO Action ID: 1, "delete_indices" completed.
2020-03-06 10:36:07,807 INFO Job completed.
понедельник, 3 февраля 2020 г.
GitLab CI - git fetch-pack: expected shallow
не работал CI в GitLab. Оказывается необходим git версии 2.16.6 и выше.
* Решение.
sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum -y install git2u-all
предварительно удалив старую версию.
* Решение.
sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum -y install git2u-all
предварительно удалив старую версию.
суббота, 28 декабря 2019 г.
смена версии python на ansible
Смена версии Python на Ansible 2.9. В /etc/ansible/hosts меняем в inventory интерпретатор на python3
[local]
## alpha.example.org
## beta.example.org
192.168.0.11
## 192.168.1.110
[local:vars]
ansible_python_interpreter=/usr/bin/python3
среда, 23 октября 2019 г.
nginx location regexp/регулярка
Регулярка для закрытия/открытия доступа к определенным папкам.
В этом примере закрываем доступ в папку sms и voice.
location ~* (/path/to/folder/sms|/path/to/folder/voice)($|\/) {
...
deny all;
}
В этом примере закрываем доступ в папку sms и voice.
location ~* (/path/to/folder/sms|/path/to/folder/voice)($|\/) {
...
deny all;
}
понедельник, 21 октября 2019 г.
Снимаем свои метрики в node_exporter
Понадобилось снимать свои метрики в Prometheus и Node Exporter. Больше информации тут: https://www.robustperception.io/using-the-textfile-collector-from-a-shell-script
1) Создаем service в /etc/systemd/system/node_exporter.service и запускаем service с ключом --collector.textfile.directory=/var/lib/node_exporter/textfile_collector
[Unit]
Description=node_exporter
[Service]
User=root
Group=root
Type=Simple
ExecStart=/etc/node_exporter/node_exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector
WorkingDirectory=/etc/node_exporter
TimeoutSec=15
Restart=always
[Install]
WantedBy=multi-user.target
2) Сам баш скрипт.
1) Создаем service в /etc/systemd/system/node_exporter.service и запускаем service с ключом --collector.textfile.directory=/var/lib/node_exporter/textfile_collector
[Unit]
Description=node_exporter
[Service]
User=root
Group=root
Type=Simple
ExecStart=/etc/node_exporter/node_exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector
WorkingDirectory=/etc/node_exporter
TimeoutSec=15
Restart=always
[Install]
WantedBy=multi-user.target
2) Сам баш скрипт.
| #!/bin/bash | |
| # Adjust as needed. | |
| #https://www.robustperception.io/using-the-textfile-collector-from-a-shell-script | |
| TEXTFILE_COLLECTOR_DIR=/var/lib/node_exporter/textfile_collector/ | |
| # Note the start time of the script. | |
| # Your code goes here. | |
| sleep 10 | |
| # Write out metrics to a temporary file. | |
| END="$(cat /var/log/cron | wc -l)" | |
| cat << EOF > "$TEXTFILE_COLLECTOR_DIR/test.prom.$$" | |
| test $END | |
| EOF | |
| # Rename the temporary file atomically. | |
| # This avoids the node exporter seeing half a file. | |
| mv "$TEXTFILE_COLLECTOR_DIR/test.prom.$$" \ | |
| "$TEXTFILE_COLLECTOR_DIR/test.prom" |
Подписаться на:
Сообщения (Atom)