LINUX.ORG.RU

Сообщения Garcia

 

nginx редирект любого каталога на index.php

Форум — General

есть рабочий конфиг

location ~ ^/ajax/not/ {
   fastcgi_index  index.php;
   try_files $uri $uri/ /ajax/not/index.php?$query_string;
   fastcgi_pass   unix:/var/run/php-fpm.sock;
   fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
   include        fastcgi_params;
}
можно как-то это правило модифицировать, если добавятся еще несколько каталогов в ajax, что бы в конфиге не добавлять похожие правила, например

location ~ ^/ajax/set/ {
   fastcgi_index  index.php;
   try_files $uri $uri/ /ajax/set/index.php?$query_string;
   fastcgi_pass   unix:/var/run/php-fpm.sock;
   fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
   include        fastcgi_params;
}

а сделать одно общее правило для таких случаев?

 , ,

Garcia
()

git слетают права

Форум — General

слетают права на измененных файлах при git pull, добавляю что-нибудь в файл read.me

ls -la
total 5.8M
drwxrwxr-x 5 root root 4.0K Apr 25 14:31 .
drwxr-xr-x 3 root root 4.0K Apr 25 13:42 ..
drwxrwxr-x 2 root root 4.0K Apr 25 13:42 css
drwxrwxr-x 8 root root 4.0K Apr 25 14:32 .git
-rw-rwxr-- 1 root root 5.8M Apr 25 14:23 index.php
drwxrwxr-x 2 root root 4.0K Apr 25 13:42 js
-rw-rwxr-- 1 root root    7 Apr 25 14:31 read.me
# git add .
# git commit -m "test commit"
[master 551b471] test commit
 1 file changed, 1 insertion(+)

# git push -u origin master
Counting objects: 5, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 256 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To git@server:website/repo.git
   bb88999..551b471  master -> master
Branch master set up to track remote branch master from origin.

делаю на сервер git pull

$ ls -la
total 5.9M
drwxrwxr-x+ 5 user user 4.0K Apr 25 14:22 .
drwxr-x--x  9 user user 4.0K Apr 16 17:23 ..
drwxrwxr-x+ 8 user user 4.0K Apr 25 14:31 .git
drwxrwxr-x+ 2 user user 4.0K Apr 25 11:14 css
-rw-rwxr-x+ 1 user user 5.8M Apr 25 14:21 index.php
drwxrwxr-x+ 2 user user 4.0K Apr 25 11:14 js
-rw-rwxr--+ 1 user user    0 Apr 23 16:48 read.me

$ git pull
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From server:website/repo
   bb88999..551b471  master     -> origin/master
Updating bb88999..551b471
Fast-forward
 read.me | 1 +
 1 file changed, 1 insertion(+)
$ ls -la
total 5.9M
drwxrwxr-x+ 5 user user 4.0K Apr 25 14:32 .
drwxr-x--x  9 user user 4.0K Apr 16 17:23 ..
drwxrwxr-x+ 8 user user 4.0K Apr 25 14:32 .git
drwxrwxr-x+ 2 user user 4.0K Apr 25 11:14 css
-rw-rwxr-x+ 1 user user 5.8M Apr 25 14:21 index.php
drwxrwxr-x+ 2 user user 4.0K Apr 25 11:14 js
-rw-rw----+ 1 user user    7 Apr 25 14:32 read.me

пользователь root

umask
0022

пользователь user

umask
0002

везде стоит - core.filemode=false

из-за чего еще могу слетать права при git pull?

 ,

Garcia
()

prometheus grafana metrics

Форум — General

мне надо сделать что-то такое

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

metrics_user_active{user_active="0"} 3
metrics_user_active{user_active="1"} 5
metrics_user_banned{user_banned="0"} 2
metrics_user_banned{user_banned="1"} 1
metrics_post_status{post_status="Pending"} 13
metrics_post_status{post_status="Approved"} 7
metrics_post_status{post_status="Rejected"} 26
metrics_post_status{post_status="Trusted"} 8
metrics_post_status{post_status="Suspect"} 11
metrics_post_country{post_country="USA"} 30
metrics_post_country{post_country="Canada"} 50
metrics_post_state{post_state="AB"} 4
metrics_post_state{post_state="AL"} 6
metrics_post_state{post_state="AK"} 12
metrics_post_state{post_state="AZ"} 1
metrics_post_state{post_state="BA"} 22
metrics_post_city{post_city="Abbotsford"} 14
metrics_post_city{post_city="Adelaide"} 33
metrics_post_city{post_city="Albany"} 22
metrics_post_city{post_city="Achorage"} 55
metrics_post_city{post_city="Atlanta"} 6

как мне в графане выбирать только определенные метрики на графике?

 , ,

Garcia
()

prometheus nginx metrics url

Форум — General

добавил такие метрики, а как можно снимать метрики по url ?

 , , ,

Garcia
()

prometheus grafana nginx

Форум — General

для разделения по доменам, сделал так, в variables добавил

label_values(nginx_http_requests_total, host)
а в графине на графике снимаю метрики так
sum(rate(nginx_http_requests_total{host="$domain", instance="server:9145"}[1m])) by (status)
и вверху есть выбор по всем доменам

а как можно объединить все поддомены *.example.com и example.com на один график?

 , ,

Garcia
()

MySQL Query Error

Форум — General

есть портал на bitrix, перенесен на другой сервер test, при смене пароля у пользователя, на перенесенном сервере выходит ошибка

MySQL Query Error: INSERT INTO b_user_group ( USER_ID, ) VALUES ( 1231, ) [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') VALUES ( 1231, )' at line 3]

сама таблица такая

CREATE TABLE `b_user_group` (
  `USER_ID` int(18) NOT NULL,
  `GROUP_ID` int(18) NOT NULL,
  `DATE_ACTIVE_FROM` datetime DEFAULT NULL,
  `DATE_ACTIVE_TO` datetime DEFAULT NULL,
  UNIQUE KEY `ix_user_group` (`USER_ID`,`GROUP_ID`),
  KEY `ix_user_group_group` (`GROUP_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

такие же действия на бою ошибку не выдают и пароль меняется у пользователя

после ошибки, команда

select * from b_user_group where USER_ID=1231;
ничего не выдает

что ему не нравится с синтаксисом?

 , ,

Garcia
()

prometheus alertmanager telegram

Форум — General

настроил уведомления в slack, хочу добавить, что бы еще в телеграм приходили уведомления, установил этот бот и запустил

tcp6       0      0 :::9087                 :::*                    LISTEN      12549/prometheus_bot

добавляю в конфиг altermanager

route:
    receiver: 'slack'

route:
    receiver: 'telegram'

receivers:
    - name: 'slack'
      slack_configs:
          - send_resolved: true
            text: "{{ .CommonAnnotations.description }}"
            username: 'Prometheus'
            channel: '#prometheus'
            api_url: 'https://hooks.slack.com/services/myhook'

receivers: 'telegram'
    - name: 'telegram'
      webhook_configs:
          - send_resolved: true
             url: http://127.0.0.1:9087/alert/id_chat

но при запуске ругается

level=info ts=2019-03-26T12:32:50.038918999Z caller=main.go:334 msg="Loading configuration file" file=./config.yml
level=error ts=2019-03-26T12:32:50.039110011Z caller=main.go:337 msg="Loading configuration file failed" file=./config.yml err="yaml: line 16: did not find expected key"
level=info ts=2019-03-26T12:32:50.039168891Z caller=cluster.go:641 component=cluster msg="gossip not settled but continuing anyway" polls=0 elapsed=15.564931ms

на 16 строку - receivers: 'telegram'

подскажите что не так или поделитесь готовым конфигом или примером?

 , ,

Garcia
()

prometheus elasticsearch

Форум — General

хочу добавить доп мониторинг эластика
взял этот exporter запустил через docker-compose на серверe prometheus

version: '2'
services:
  elasticsearch_exporter:
     image: justwatch/elasticsearch_exporter:latest
     container_name: elasticsearch_exporter
     command:
       - '-es.uri=http://my.elastic.server:9200'
     restart: always
     ports:
       - "127.0.0.1:9114:9114"

docker-compose ps
             Name                           Command               State                 Ports
------------------------------------------------------------------------------------------------------------
elasticsearch_exporter   /bin/elasticsearch_exporte ...   Up      9108/tcp, 127.0.0.1:9114->9114/tcp

добавил в prometheus.yml

  - job_name: "my.elastic.server:elasticsearch"
    scrape_interval: 10s
    static_configs:
       - targets: ['localhost:9114']

но никаких метрик я не вижу

curl 127.0.0.1:9114
curl: (56) Recv failure: Connection reset by peer
curl http://my.elastic.server:9200
{
  "name" : "4v0VI7s",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "RYyn7NQnRCabaXhjyUbLGg",
  "version" : {
    "number" : "6.6.2",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "3bd3e59",
    "build_date" : "2019-03-06T15:16:26.864148Z",
    "build_snapshot" : false,
    "lucene_version" : "7.6.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

ЧЯДНТ?

 , ,

Garcia
()

jenkins подставить свое значение

Форум — General

Jenkins ver. 2.150.3

есть работающая сборка, в сборке указан string parameter - API_KEY

cd ~/workspace/nginx/
API_CONF=`echo "$API_KEY.conf"`
cp api-XXX.conf $API_CONF
sed -i -e "s/##API##/$API_KEY/g" $API_CONF
mv $API_CONF /etc/nginx/api.conf
cd -
sudo nginx -s reload

как мне брать значение из /etc/nginx/api.conf и подставлять его в jenkins в API_KEY?

 , ,

Garcia
()

coredump httpd

Форум — General

начал падать дочерний процесс, в логах

[pid 17507] AH00051: child pid 12110 exit signal Segmentation fault (11), possible coredump in /tmp/coredump

смотрю файла coredump

gdb httpd core.12110
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-114.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/sbin/httpd...Reading symbols from /usr/lib/debug/usr/sbin/httpd.debug...done.
done.
[New LWP 12110]

warning: .dynamic section for "/lib64/libkrb5.so.3" is not at the expected address (wrong library or version mismatch?)

warning: .dynamic section for "/lib64/libk5crypto.so.3" is not at the expected address (wrong library or version mismatch?)

warning: .dynamic section for "/lib64/libkrb5support.so.0" is not at the expected address (wrong library or version mismatch?)

warning: Could not load shared library symbols for %0*Zx, 0x%0*Zx).
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/sbin/httpd -DFOREGROUND'.
Program terminated with signal 11, Segmentation fault.
#0  0x00007f2526da6073 in sljit_remove_free_block (free_block=0x7f2517a44a10, free_block=0x7f2517a44a10) at sljit/sljitExecAllocator.c:165
165                     free_block->next->prev = free_block->prev;
Missing separate debuginfos, use: debuginfo-install glibc-2.17-260.el7_6.3.x86_64 krb5-libs-1.15.1-37.el7_6.x86_64 sssd-client-1.16.2-13.el7_6.5.x86_64 systemd-libs-219-62.el7_6.3.x86_64
(gdb) bt
#0  0x00007f2526da6073 in sljit_remove_free_block (free_block=0x7f2517a44a10, free_block=0x7f2517a44a10) at sljit/sljitExecAllocator.c:165
#1  sljit_free_exec (ptr=0x7f2517a44010) at sljit/sljitExecAllocator.c:273
#2  0x00007f2526dc3a5a in sljit_free_code (code=<optimized out>) at sljit/sljitLir.c:397
#3  _pcre_jit_free (executable_funcs=0x558b56187240) at pcre_jit_compile.c:8542
#4  0x00007f2526dc55dc in pcre_free_study (extra=0x558b56187580) at pcre_study.c:1581
#5  0x00007f25199c1333 in php_free_pcre_cache (data=<optimized out>) at /usr/src/debug/php-7.1.26/ext/pcre/php_pcre.c:125
#6  0x00007f2519b16bf6 in zend_hash_destroy (ht=0x7f2519f10d60 <pcre_globals>) at /usr/src/debug/php-7.1.26/Zend/zend_hash.c:1246
#7  0x00007f25199c12b9 in zm_globals_dtor_pcre (pcre_globals=<optimized out>) at /usr/src/debug/php-7.1.26/ext/pcre/php_pcre.c:145
#8  0x00007f2519b0bdbd in module_destructor (module=module@entry=0x558b55e4d090) at /usr/src/debug/php-7.1.26/Zend/zend_API.c:2512
#9  0x00007f2519b0450c in module_destructor_zval (zv=<optimized out>) at /usr/src/debug/php-7.1.26/Zend/zend.c:633
#10 0x00007f2519b176f1 in _zend_hash_del_el_ex (prev=<optimized out>, p=<optimized out>, idx=<optimized out>, ht=<optimized out>) at /usr/src/debug/php-7.1.26/Zend/zend_hash.c:997
#11 _zend_hash_del_el (p=0x558b55e32180, idx=4, ht=0x7f2519f15380 <module_registry>) at /usr/src/debug/php-7.1.26/Zend/zend_hash.c:1020
#12 zend_hash_graceful_reverse_destroy (ht=ht@entry=0x7f2519f15380 <module_registry>) at /usr/src/debug/php-7.1.26/Zend/zend_hash.c:1476
#13 0x00007f2519b0a1dc in zend_destroy_modules () at /usr/src/debug/php-7.1.26/Zend/zend_API.c:1978
#14 0x00007f2519b050f1 in zend_shutdown () at /usr/src/debug/php-7.1.26/Zend/zend.c:876
#15 0x00007f2519aa0bfb in php_module_shutdown () at /usr/src/debug/php-7.1.26/main/main.c:2445
#16 0x00007f2519aa0cb9 in php_module_shutdown_wrapper (sapi_globals=<optimized out>) at /usr/src/debug/php-7.1.26/main/main.c:2413
#17 0x00007f2519bac091 in php_apache_child_shutdown (tmp=<optimized out>) at /usr/src/debug/php-7.1.26/sapi/apache2handler/sapi_apache2.c:435
#18 0x00007f2525ef91ae in run_cleanups (cref=<optimized out>) at memory/unix/apr_pools.c:2352
#19 apr_pool_destroy (pool=0x558b56047738) at memory/unix/apr_pools.c:814
#20 0x00007f251d4641dc in clean_child_exit (code=code@entry=0) at prefork.c:221
#21 0x00007f251d464687 in child_main (child_num_arg=child_num_arg@entry=0) at prefork.c:728
#22 0x00007f251d4649f5 in make_child (s=0x558b55d56350, slot=0) at prefork.c:810
#23 0x00007f251d46568e in perform_idle_server_maintenance (p=<optimized out>) at prefork.c:912
#24 prefork_run (_pconf=<optimized out>, plog=<optimized out>, s=<optimized out>) at prefork.c:1100
#25 0x0000558b54105ffe in ap_run_mpm (pconf=pconf@entry=0x558b55d2d138, plog=0x558b55d5a358, s=0x558b55d56350) at mpm_common.c:96
#26 0x0000558b540fed76 in main (argc=2, argv=0x7fff171a34d8) at main.c:783

но из этого вывода не понятно кто виновник падения процесса, что надо установить/поправить/добавить, что бы понять кто виновник падений

 , ,

Garcia
()

prometheus nginx

Форум — General

кто как собирает состояние ответов (200, 403, 404 и т.д.)?

через офф доку там минимальные параметры собираются, если через эту доку то надо доставлять дополнительные модули, а на centos 7 это проблема, тут описал уже проблему

 , ,

Garcia
()

centos 7 nginx lua module

Форум — General

есть centos 7, установлен nginx из репо epel

rpm -qa | grep nginx
nginx-mod-mail-1.12.2-2.el7.x86_64
nginx-1.12.2-2.el7.x86_64
nginx-filesystem-1.12.2-2.el7.noarch
nginx-mod-http-geoip-1.12.2-2.el7.x86_64
nginx-mod-http-xslt-filter-1.12.2-2.el7.x86_64
nginx-all-modules-1.12.2-2.el7.noarch
nginx-mod-stream-1.12.2-2.el7.x86_64
nginx-mod-http-perl-1.12.2-2.el7.x86_64
nginx-mod-http-image-filter-1.12.2-2.el7.x86_64

мне надо подключить два модуля ndk_http_module.so и ngx_http_lua_module.so

как их можно установить через репозиторий или только собирать с этими модулями?

на debian/ubuntu есть пакет nginx-extras и там нормально можно подключаться модули, а как правильно это делается на CentOS?

 , , ,

Garcia
()

ошибка при запуске скрипта jenkins

Форум — General

запускается удаленно скрипт

+ ssh user@server.com cd /var/www/commands && php push.php
Build step 'Execute shell' marked build as failure
Finished: FAILURE

если я на сервере server.com запускаю эту команду

cat test.sh 
#!/bin/bash

DIR="/var/www/commands"

cd $DIR && php push.php 
echo $?

bash -x test.sh 
+ DIR=/var/www/commands
+ cd /var/www/commands
+ php push.php
+ echo 0
0

что не нравится jenkins ?

 , ,

Garcia
()

прозрачный squid и роутер

Форум — General

уже есть настроенный прозрачный прокси squid, есть роутер EdgeOSEdgeRouter
хочу сделать схему
все компьютеры сети -> роутер -> squid

  • squid - 109.0.0.110
  • router - 109.0.0.1
  • тестовая винда - 109.0.0.8

пробую эту дока

iptables -t nat -A PREROUTING -i eth0 -s ! 109.0.0.110 -p tcp --dport 80 -j DNAT --to 109.0.0.110:3128
iptables -t nat -A POSTROUTING -o eth0 -s 109.0.0.8/32 -d 109.0.0.110/32 -j SNAT --to 109.0.0.1
iptables -A FORWARD -s 109.0.0.8/32 -d 109.0.0.110/32 -i eth0 -o eth0 -p tcp --dport 3128 -j ACCEPT

ввожу первое правило на роутере

iptables -t nat -I PREROUTING -i eth0 -s ! 109.0.0.110 -p tcp --dport 80 -j DNAT --to 109.0.0.110:3128
Bad argument `109.0.0.110'
Try `iptables -h' or 'iptables --help' for more information.

не пойму что ему не нравится?

 , ,

Garcia
()

переход с апача на nginx+php-fpm

Форум — General

не получается перенести все правила с htaccess в nginx

RewriteRule ^adv/?$ /adv/index.php [L]
RewriteRule ^contacts/?$ /contacts/index.php [L]
RewriteRule ^about/?$ /about/index.php [L]

RewriteRule ^politics/?$ /archive.php?cat=politics [L]
RewriteRule ^economy/?$ /archive.php?cat=economy [L]
RewriteRule ^society/?$ /archive.php?cat=society [L]
RewriteRule ^world/?$ /archive.php?cat=world [L]
RewriteRule ^culture/?$ /archive.php?cat=culture [L]
RewriteRule ^incident/?$ /archive.php?cat=incident [L]
RewriteRule ^sport/?$ /archive.php?cat=sport [L]
RewriteRule ^technology/?$ /archive.php?cat=technology [L]
RewriteRule ^interesting/?$ /archive.php?cat=interesting [L]

пробую такой вариант

rewrite ^/world/?$ /archive.php?cat=world break;                                                                 

ссылка example.com/world/ начинает открываться, но ссылки на странице world отдаются 404 подскажите как сделать правильно?

 , , ,

Garcia
()

каталог под другой версией php

Форум — General

есть два старых сервера центос 5 тест и прод на php 5.3 на тесте создаю файл htaccess в каталоге с таким содержанием

<FilesMatch "\.php">
SetHandler application/x-httpd-php5
</FilesMatch>
#ScriptAlias /php54-cgi /opt/php-5.4.45/bin/php-cgi
Action application/x-httpd-php5 /php54-cgi
AddHandler application/x-httpd-php5 .php

проверяю, каталог открывается на php 5.4

пробую все точно так же на прод, но при открытии каталога, происходит редирект на http://site.com/php54-cgi/hhh/index.php/

в корне сайта htaccess на тесте и прод - одинаковый

подскажите в чем может быть проблема?

 , ,

Garcia
()

zabbix мониторинг кодов 200 502 503 nginx

Форум — General

есть такое условие - если 502/503 - больше 1% от всех запросов за последние n минут то аларм

может быть есть уже готовое решение?

 , ,

Garcia
()

lsyncd restart app

Форум — General

настроен lsyncd

sync {
        default.rsyncssh,
        source="/home/ttt/",
        host=server,
        targetdir="/srv/hhh/",
        exclude={
                        "/perl.pm",
                        "/c.so",
                        "/c.pm",
        },
        delay=10,
        rsync = {
                _extra = {"-e", "/usr/bin/ssh -p 2222 -i /root/.ssh/id_rsa -o StrictHostKeyChecking=no -o BatchMode=yes"}
        },
        ssh = {
                port = 2222
        }
}
end
все нормально синхронизируется, но как мне перезапускать мое приложение, если были изменены файлы, т.е. если в каталоге /home/ttt изменился файл, то на server в /srv/hhh мне надо перезапустить приложение?

 , ,

Garcia
()

nomad logs elk

Форум — General

есть кластер из 6 серверов, как правильно настроить логирование в elk? поделитесь пожалуйста вариантами, кто как делает

 , ,

Garcia
()

kubernetes logs

Форум — General

сейчас на нодах kubernetes стоит filebeat, он отправляет в elasticsearch, а там уже настроена kibana, так вот сейчас логи отправляются в формате json, что не очень удобно смотреть в доке есть разные форматы логов, кто какие использует и вообще кто как анализирует логи kuberenetes?

 , ,

Garcia
()

RSS подписка на новые темы