Page_c76a3fcf https://linux-notes.org Unix/ Linux блог, на котором можно найти полезную информацию по настройке ОС и ПО. Thu, 27 Jun 2019 16:14:47 +0000 ru-RU hourly 1 https://wordpress.org/?v=6.7.2 Page_c76a3fcf https://linux-notes.org/ustanovka-filebeat-v-unix-linux/ https://linux-notes.org/ustanovka-filebeat-v-unix-linux/#comments Sat, 10 Jun 2017 00:01:00 +0000 http://linux-notes.org/?p=10412 Установка Filebeat в Unix/Linux Filebeat — клиент для передачи логов в logstash. Работает в совокупности с ELK стеком. Имеется: 192.168.13.100 — Filebeat клиент. 192.168.13.195 — ELK стек. Доступны четыре клиента (если ничего не изменилось с выходом релиза): Packetbeat – Анализ сетевых пакетных данных. Filebeat – Анализ лог-данных в реальном режиме времени. Topbeat – Получает представление о […]

The post Установка Filebeat в Unix/Linux first appeared on linux-notes.org.]]>

Установка Filebeat в Unix/Linux

Filebeat — клиент для передачи логов в logstash. Работает в совокупности с ELK стеком.

Имеется:

  1. 192.168.13.100 — Filebeat клиент.
  2. 192.168.13.195 — ELK стек.

Доступны четыре клиента (если ничего не изменилось с выходом релиза):

  • Packetbeat – Анализ сетевых пакетных данных.
  • Filebeat – Анализ лог-данных в реальном режиме времени.
  • Topbeat – Получает представление о данных инфраструктуры.
  • Metricbeat – Ship метрики для Elasticsearch.

Установка Filebeat в Unix/Linux

Прежде чем начать устанавливать файлбит, я бы рекомендовал прочитать установку ELK:

Установка ELK (ElasticSearch/Filebeat/Kibana) в Unix/Linux

Т.к данная утилита бессмысленна без этого стека.

Установка Filebeat в CentOS/Fedora/RHEL

-===СПОСОБ 1 — использовать репозиторий ===-

Загружаем и устанавливаем публичный ключ подписи:

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Открываем (создаем) файл:

# vim /etc/yum.repos.d/filebeat.repo

И прописываем:

[elastic-5.x]
name=Elastic repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Вы можете установить его с помощью команды:

# yum install filebeat -y

-===СПОСОБ 2 — использовать RPM пакет ===-

# cd /usr/local/src && curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.1-x86_64.rpm
# rpm -vi filebeat-5.4.1-x86_64.rpm

-===СПОСОБ 3 — использовать готовый архив ===-

Настройка и запуск утилиты будет немного ниже.

Установка Filebeat в Debian/Ubuntu

-===СПОСОБ 1 — использовать репозиторий ===-

Загружаем и устанавливаем публичный ключ подписи:

# wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -

Возможно, вам придется установить пакет apt-transport-https на Debian перед установкой утилиты:

# apt-get install apt-transport-https -y

Добавляем репозиторий:

# echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-5.x.list

Вы можете установить его с помощью команды:

# apt-get update && sudo apt-get install filebeat

-===СПОСОБ 2 — использовать DEB пакет ===-

# cd /usr/local/src && curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.1-amd64.deb
# dpkg -i filebeat-5.4.1-amd64.deb

-===СПОСОБ 3 — использовать готовый архив ===-

Настройка и запуск утилиты будет немного ниже.

Установка Filebeat в Mac OS X

Для начала, устанавливаем HOMEBREW — Установка HOMEBREW на Mac OS X после чего, выполняем поиск пакета:

$ brew search filebeat

Для установки:

$ brew install filebeat

-=== СПОСОБ 2 — использовать готовый архив==-

# curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.1-darwin-x86_64.tar.gz
# tar xzvf filebeat-5.4.1-darwin-x86_64.tar.gz

Настройка и запуск утилиты будет немного ниже.

Установка Filebeat на другие Unix/Linux ОС

-=== СПОСОБ 1 — использовать docker==-

Не было нужды использовать logstesh в докере. Как появиться, так сразу же обновлю данную статью.

-===СПОСОБ 2 — использовать готовый архив ===-

Настройка Filebeat в Unix/Linux

Я описывал создание ключей в статье с ELK (на приводится выше) и я говорил как это сделать. Но чтобы не открывать и не искать это — я приведу еще раз.

Если у вас нет DNS, то придется добавить свой собственный IP-адрес вашего ELK-сервера в subjectAltName (SAN). Это позволит вашим серверам собирать логи. И для этого, потребуется ключик.

Необходимо создать новый SSL сертификат. Сначала отредактируйте файл:

# vim /etc/pki/tls/openssl.cnf

В [ v3_ca ] разделе, прописываем:

subjectAltName = IP: 192.168.13.195

Где, localhost — Это ваш ИП адрес сервера с логстешем.

……….СПОСОБ 1 — использовать IP……….

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

# openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/logstash-forwarder.key -out /etc/pki/tls/certs/logstash-forwarder.crt

У меня это — 192.168.13.195!

……….СПОСОБ 2 — использовать доменное имя……….

# openssl req -config /etc/pki/tls/openssl.cnf -subj '/CN=domain_name/'-x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/logstash-forwarder.key -out /etc/pki/tls/certs/logstash-forwarder.crt

Где:

domain_name — Ваше доменное имя!

НО ВСЕ ЭТИ ДЕЙСТВИЯ НУЖНО ВЫПОЛНИТЬ БЫЛО НА СТОРОНЕ LOGSTASH!

Чтобы файлбит использовать шифрованый канал (TLS/SSL), стоит скопировать данный сгенерированный сертификат себе на клиентскую машину, где будет использоваться filebeat для отправки логов на logstash сервер.

Скопируйте SSL-сертификат с сервера на клиент:

# scp /etc/pki/tls/certs/logstash-forwarder.crt root@192.168.13.100:/etc/pki/tls/certs/

PS: Как использовать SCP — Как скопировать данные через SCP в Linux

Открываем файл самого файлбита:

# vim /etc/filebeat/filebeat.yml

И приводим к виду:

filebeat.prospectors:
- input_type: log
  paths:
    - /var/log/*.log
output.elasticsearch:
  hosts: ["192.168.13.195:9200"]
output.logstash:
  hosts: ["192.168.13.195:5044"]
  ssl.certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]

Т.к у меня используется 1 сервер для ELK, то я указал 192.168.13.195. А вы измените параметры.

Вот пример более подробный:

filebeat:
  # List of prospectors to fetch data.
  prospectors:
    # Magento log prospector
    -
      paths:
        - /var/www/html/my_domain.org/var/log/*.log
      encoding: plain
      input_type: log
      exclude_files: ["exception.log"]
      document_type: magento
      scan_frequency: 1s
      multiline:
        # The regexp Pattern that has to be matched. The example pattern matches all lines starting with [
        pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\+[0-9]{2}:[0-9]{2} [A-Z]+ \([0-9]\):.*'
        negate: true
        match: after
        max_lines: 500
        timeout: 5s
    # Magento exception log prospector
    -
      paths:
        - /var/www/html/my_domain.org/var/log/exception.log
      encoding: plain
      input_type: log
      document_type: magento_exception
      scan_frequency: 1s
      multiline:
        # The regexp Pattern that has to be matched. The example pattern matches all lines starting with [
        pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\+[0-9]{2}:[0-9]{2} [A-Z]+ \([0-9]\):.*'
        negate: true
        match: after
        max_lines: 500
        timeout: 5s
    # Services Log Prospector
    -
      paths:
        - /var/log/httpd/*-error.log
        - /var/log/nginx/*-error.log
        - /var/log/php-fpm/*error.log

    # php-fpm slow log prospector
    -
      paths:
        - /var/log/php-fpm/*slow.log
      encoding: plain
      input_type: log
      document_type: phpfpm_slow
      scan_frequency: 1s
      multiline:
        # The regexp Pattern that has to be matched. The example pattern matches all lines starting with [
        pattern: '^\[[0-9]{2}-[A-Za-z]{3}-[0-9]{4} [0-9:]{8}\].*'
        negate: true
        match: after
        max_lines: 500
        timeout: 5s


        #- c:\programdata\elasticsearch\logs\*

      # Configure the file encoding for reading files with international characters
      # following the W3C recommendation for HTML5 (http://www.w3.org/TR/encoding).
      # Some sample encodings:
      #   plain, utf-8, utf-16be-bom, utf-16be, utf-16le, big5, gb18030, gbk,
      #    hz-gb-2312, euc-kr, euc-jp, iso-2022-jp, shift-jis, ...
      encoding: plain

      # Type of the files. Based on this the way the file is read is decided.
      # The different types cannot be mixed in one prospector
      #
      # Possible options are:
      # * log: Reads every line of the log file (default)
      # * stdin: Reads the standard in
      input_type: log

      # Exclude lines. A list of regular expressions to match. It drops the lines that are
      # matching any regular expression from the list. The include_lines is called before
      # exclude_lines. By default, no lines are dropped.
      # exclude_lines: ["^DBG"]

      # Include lines. A list of regular expressions to match. It exports the lines that are
      # matching any regular expression from the list. The include_lines is called before
      # exclude_lines. By default, all the lines are exported.
      # include_lines: ["^ERR", "^WARN"]

      # Exclude files. A list of regular expressions to match. Filebeat drops the files that
      # are matching any regular expression from the list. By default, no files are dropped.
      exclude_files: [".gz$"]

      # Optional additional fields. These field can be freely picked
      # to add additional information to the crawled log files for filtering
      #fields:
      #  level: debug
      #  review: 1

      # Set to true to store the additional fields as top level fields instead
      # of under the "fields" sub-dictionary. In case of name conflicts with the
      # fields added by Filebeat itself, the custom fields overwrite the default
      # fields.
      #fields_under_root: false

      # Ignore files which were modified more then the defined timespan in the past
      # Time strings like 2h (2 hours), 5m (5 minutes) can be used.
      #ignore_older: 24h

      # Type to be published in the 'type' field. For Elasticsearch output,
      # the type defines the document type these entries should be stored
      # in. Default: log
      document_type: os_log

      # Scan frequency in seconds.
      # How often these files should be checked for changes. In case it is set
      # to 0s, it is done as often as possible. Default: 10s
      scan_frequency: 1s

      # Defines the buffer size every harvester uses when fetching the file
      #harvester_buffer_size: 16384

      # Maximum number of bytes a single log event can have
      # All bytes after max_bytes are discarded and not sent. The default is 10MB.
      # This is especially useful for multiline log messages which can get large.
      #max_bytes: 10485760

      # Mutiline can be used for log messages spanning multiple lines. This is common
      # for Java Stack Traces or C-Line Continuation
      #multiline:

        # The regexp Pattern that has to be matched. The example pattern matches all lines starting with [
        #pattern: ^\[

        # Defines if the pattern set under pattern should be negated or not. Default is false.
        #negate: false

        # Match can be set to "after" or "before". It is used to define if lines should be append to a pattern
        # that was (not) matched before or after or as long as a pattern is not matched based on negate.
        # Note: After is the equivalent to previous and before is the equivalent to to next in Logstash
        #match: after

        # The maximum number of lines that are combined to one event.
        # In case there are more the max_lines the additional lines are discarded.
        # Default is 500
        #max_lines: 500

        # After the defined timeout, an multiline event is sent even if no new pattern was found to start a new event
        # Default is 5s.
        #timeout: 5s

      # Setting tail_files to true means filebeat starts readding new files at the end
      # instead of the beginning. If this is used in combination with log rotation
      # this can mean that the first entries of a new file are skipped.
      #tail_files: false

      # Backoff values define how agressively filebeat crawls new files for updates
      # The default values can be used in most cases. Backoff defines how long it is waited
      # to check a file again after EOF is reached. Default is 1s which means the file
      # is checked every second if new lines were added. This leads to a near real time crawling.
      # Every time a new line appears, backoff is reset to the initial value.
      #backoff: 1s

      # Max backoff defines what the maximum backoff time is. After having backed off multiple times
      # from checking the files, the waiting time will never exceed max_backoff idenependent of the
      # backoff factor. Having it set to 10s means in the worst case a new line can be added to a log
      # file after having backed off multiple times, it takes a maximum of 10s to read the new line
      #max_backoff: 10s

      # The backoff factor defines how fast the algorithm backs off. The bigger the backoff factor,
      # the faster the max_backoff value is reached. If this value is set to 1, no backoff will happen.
      # The backoff value will be multiplied each time with the backoff_factor until max_backoff is reached
      #backoff_factor: 2

      # This option closes a file, as soon as the file name changes.
      # This config option is recommended on windows only. Filebeat keeps the files it's reading open. This can cause
      # issues when the file is removed, as the file will not be fully removed until also Filebeat closes
      # the reading. Filebeat closes the file handler after ignore_older. During this time no new file with the
      # same name can be created. Turning this feature on the other hand can lead to loss of data
      # on rotate files. It can happen that after file rotation the beginning of the new
      # file is skipped, as the reading starts at the end. We recommend to leave this option on false
      # but lower the ignore_older value to release files faster.
      #force_close_files: false

    # Additional prospector
    #-
      # Configuration to use stdin input
      #input_type: stdin

  # General filebeat configuration options
  #
  # Event count spool threshold - forces network flush if exceeded
  spool_size: 1

  # Defines how often the spooler is flushed. After idle_timeout the spooler is
  # Flush even though spool_size is not reached.
  #idle_timeout: 5s

  # Name of the registry file. Per default it is put in the current working
  # directory. In case the working directory is changed after when running
  # filebeat again, indexing starts from the beginning again.
  registry_file: /var/lib/filebeat/registry

  # Full Path to directory with additional prospector configuration files. Each file must end with .yml
  # These config files must have the full filebeat config part inside, but only
  # the prospector part is processed. All global options like spool_size are ignored.
  # The config_dir MUST point to a different directory then where the main filebeat config file is in.
  #config_dir:

###############################################################################
############################# Libbeat Config ##################################
# Base config file used by all other beats for using libbeat features

############################# Output ##########################################

# Configure what outputs to use when sending the data collected by the beat.
# Multiple outputs may be used.
output:
  ### Logstash as output
  logstash:
    # The Logstash hosts
    hosts: ["logstash_server:5044"]

    # Number of workers per Logstash host.
    #worker: 1

    # Set gzip compression level.
    #compression_level: 3

    # Optional load balance the events between the Logstash hosts
    #loadbalance: true

    # Optional index name. The default index name depends on the each beat.
    # For Packetbeat, the default is set to packetbeat, for Topbeat
    # top topbeat and for Filebeat to filebeat.
    #index: filebeat

    # Optional TLS. By default is off.
    #tls:
      # List of root certificates for HTTPS server verifications
      ssl.certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]

      # Certificate for TLS client authentication
      #certificate: "/etc/pki/tls/certs/logstash-forwarder.crt"

      # Client Certificate Key
      #certificate_key: "/etc/pki/client/cert.key"

      # Controls whether the client verifies server certificates and host name.
      # If insecure is set to true, all server host names and certificates will be
      # accepted. In this mode TLS based connections are susceptible to
      # man-in-the-middle attacks. Use only for testing.
      #insecure: true

      # Configure cipher suites to be used for TLS connections
      #cipher_suites: []

      # Configure curve types for ECDHE based cipher suites
      #curve_types: []


  ### File as output
  #file:
    # Path to the directory where to save the generated files. The option is mandatory.
    #path: "/tmp/filebeat"

    # Name of the generated files. The default is `filebeat` and it generates files: `filebeat`, `filebeat.1`, `filebeat.2`, etc.
    #filename: filebeat

    # Maximum size in kilobytes of each file. When this size is reached, the files are
    # rotated. The default value is 10 MB.
    #rotate_every_kb: 10000

    # Maximum number of files under path. When this number of files is reached, the
    # oldest file is deleted and the rest are shifted from last to first. The default
    # is 7 files.
    #number_of_files: 7


  ### Console output
  # console:
    # Pretty print json event
    #pretty: false


############################# Shipper #########################################

shipper:
  # The name of the shipper that publishes the network data. It can be used to group
  # all the transactions sent by a single shipper in the web interface.
  # If this options is not defined, the hostname is used.
  #name:

  # The tags of the shipper are included in their own field with each
  # transaction published. Tags make it easy to group servers by different
  # logical properties.
  #tags: ["service-X", "web-tier"]

  # Uncomment the following if you want to ignore transactions created
  # by the server on which the shipper is installed. This option is useful
  # to remove duplicates if shippers are installed on multiple servers.
  #ignore_outgoing: true

  # How often (in seconds) shippers are publishing their IPs to the topology map.
  # The default is 10 seconds.
  #refresh_topology_freq: 10

  # Expiration time (in seconds) of the IPs published by a shipper to the topology map.
  # All the IPs will be deleted afterwards. Note, that the value must be higher than
  # refresh_topology_freq. The default is 15 seconds.
  #topology_expire: 15

  # Internal queue size for single events in processing pipeline
  #queue_size: 1000

  # Configure local GeoIP database support.
  # If no paths are not configured geoip is disabled.
  #geoip:
    #paths:
    #  - "/usr/share/GeoIP/GeoLiteCity.dat"
    #  - "/usr/local/var/GeoIP/GeoLiteCity.dat"


############################# Logging #########################################

# There are three options for the log ouput: syslog, file, stderr.
# Under Windos systems, the log files are per default sent to the file output,
# under all other system per default to syslog.
logging:

  # Send all logging output to syslog. On Windows default is false, otherwise
  # default is true.
  #to_syslog: true

  # Write all logging output to files. Beats automatically rotate files if rotateeverybytes
  # limit is reached.
  #to_files: false

  # To enable logging to files, to_files option has to be set to true
  files:
    # The directory where the log files will written to.
    #path: /var/log/mybeat

    # The name of the files where the logs are written to.
    #name: mybeat

    # Configure log file size limit. If limit is reached, log file will be
    # automatically rotated
    rotateeverybytes: 10485760 # = 10MB

    # Number of rotated log files to keep. Oldest files will be deleted first.
    #keepfiles: 7

  # Enable debug output for selected components. To enable all selectors use ["*"]
  # Other available selectors are beat, publish, service
  # Multiple selectors can be chained.
  #selectors: [ ]

  # Sets log level. The default log level is error.
  # Available log levels are: critical, error, warning, info, debug
  #level: error

 

Как-то так.

Запуск Filebeat в Unix/Linux

Перед запуском (если использовали СПОСОБ 1 и 2), проверяем что у нас используется «SysV init vs systemd»:

# ps -p 1

Запуск filebeat с SysV init

Чтобы запустить/остановить службу filebeat, используйте:

$ sudo -i service filebeat start
$ sudo -i service filebeat stop

Если filebeat не запускается по какой-либо причине, он выведет причину отказа на STDOUT. Лог-файлы можно найти в /var/log/filebeat/ папке.

Незабываем пробросить порт в iptables!

Используйте команду update-rc.d чтобы добавить службу в автозагурзку ОС Debian/Ubuntu:

# update-rc.d filebeat defaults 95 10

Используйте команду chkconfig, чтобы добавить службу в автозагрузку ОС RHEL/CentOS:

# chkconfig --add filebeat

Для просмотра, можно использовать:

# chkconfig --list filebeat

Запуск filebeat с systemd

Чтобы добавить filebeat в автозагрузку системы, используйте:

# /bin/systemctl daemon-reload
# systemctl enable filebeat.service

Чтобы запустить/остановить службу filebeat, используйте:

# systemctl start filebeat.service
# systemctl stop filebeat.service

Чтобы получить вывод лога, используйте:

# journalctl -f

Чтобы показать логи конкретно для filebeat:

# journalctl --unit filebeat

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

# journalctl --unit filebeat --since "2017-12-10 15:12:33"

Переходим к тестированию

Запуск filebeat на Mac OS X

# chown root filebeat.yml 
# ./filebeat -e -c filebeat.yml -d "publish"

Вот и все!

Тестирование filebeat в Unix/Linux

Если установка стека ELK прошла успешно, Filebeat должен собирать логи клиентов и передавать их на сервер ELK. Logstash будет загружать данные Filebeat в Elasticsearchс индексом filebeat-YYYY.MM.DD.

Перейдите на сервер ELK и убедитесь, что Elasticsearch получает данные, запросив индекс Filebeat:

# curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'

Загрузка дашборда Kibana

Elastic предоставляет несколько образцов дашбордов Kibana и шаблонов индексов Beats. Загрузите дашборды, чтобы использовать их с индексом Filebeat.

# cd /usr/local/src && curl -L -O https://artifacts.elastic.co/downloads/beats/beats-dashboards/beats-dashboards-5.4.1.zip

Распаковываем:

$ unzip beats-dashboards-*.zip

Загружаем образец дашборда, визуализацию и шаблоны индексов Beats в Elasticsearch.

$ bash beats-dashboards-*/load.sh

Ну, на этом, у меня все. если появятся дополнения, то обязательно допишу.

Статья «Установка Filebeat в Unix/Linux» завершена.

The post Установка Filebeat в Unix/Linux first appeared on linux-notes.org.]]>
https://linux-notes.org/ustanovka-filebeat-v-unix-linux/feed/ 1
Page_c76a3fcf https://linux-notes.org/nastrojka-grafana-s-graphite-zabbix-prometheus-mysql-influxdb-elasticsearch-cloudwatch-dlya-sbora-i-otobrazheniya-metrik-v-unix-linux/ https://linux-notes.org/nastrojka-grafana-s-graphite-zabbix-prometheus-mysql-influxdb-elasticsearch-cloudwatch-dlya-sbora-i-otobrazheniya-metrik-v-unix-linux/#respond Mon, 05 Jun 2017 18:32:05 +0000 http://linux-notes.org/?p=11975 Настройка Grafana с Graphite/Zabbix/Prometheus/MySQL/InfluxDB/Elasticsearch/CloudWatch для сбора и отображения метрик в Unix/Linux Сейчас стало модно использовать разные «хипстерские штуки» и Grafana взяла тренд — это тулза для создания дашбордов по различным метрикам и графиков, которые берутся из других систем.   Я в своей статье, хотел бы рассказать как можно работать с grafana и собирать, строить и использовать различные […]

The post Настройка Grafana с Graphite/Zabbix/Prometheus/MySQL/InfluxDB/Elasticsearch/CloudWatch для сбора и отображения метрик в Unix/Linux first appeared on linux-notes.org.]]>

Настройка Grafana с Graphite/Zabbix/Prometheus/MySQL/InfluxDB/Elasticsearch/CloudWatch для сбора и отображения метрик в Unix/Linux

Сейчас стало модно использовать разные «хипстерские штуки» и Grafana взяла тренд — это тулза для создания дашбордов по различным метрикам и графиков, которые берутся из других систем.   Я в своей статье, хотел бы рассказать как можно работать с grafana и собирать, строить и использовать различные дашборы для своих целей.

Это не означает что все что тут будет описано, вы должны у себя использовать, но если есть необходимость в этом — то можете настроить под свои нужды. Я для своих личных, ознакомительных целей, установил все это дело локально на машине и протестировал работу.

Установка grafana в Unix/Linux

И так, я начну с установки свой графаны:

Установка grafana в Unix/Linux

Хочу отметить следующее, — это то, что grafana слушает 3000-й порт и для удобства, я сейчас сделаю прокси на 80-й порт. Есть много прокси-сервисов, но я предпочитаю nginx. Я приведу статьи по установке nginx:

Установка PHP 7(php-fpm) с nginx 1.9 в Debian 8

Установка Nginx, PHP-FPM, MariaDB на CentOS 7 / RHEL 7

Виртуальный хост для отдельного пользователя с PHP-FPM и nginx

Уcтановка nginx, MySQL, PHP (LEMP) stack на Debian/Ubuntu

Nginx уже имеется в системе, и сейчас нужно создать конфиг для графаны:

# vim /etc/nginx/conf.d/grafana.conf

И прописываем:

server {
 	listen 80;
 	server_name grafana.local;
 	access_log /var/log/nginx/access-grafana.log;
 	error_log /var/log/nginx/error-frafana.log info;
	location / {
		proxy_pass http://127.0.0.1:3000;
		proxy_set_header   Host $host;
		proxy_set_header   X-Real-IP        $remote_addr;
            	proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
		}
}

Где:

  • grafana.local — это мое доменное имя ( я прописал в /etc/hosts свой IP и сопоставил его с grafana.local)

PS: Нужно прописать в исключения 3000-й и 80-й порты. Если используете iptables, то добавьте правило. Если SELinux, вот чтиво:

Настройка SELinux для Apache/Nginx в Unix/Linux

Отключить SELinux на CentOS

Собственно, — это все что нужно было сделать с nginx —  это и есть прокси. Переходим к конфигу графаны:

# vim /etc/grafana/grafana.ini

И приводим к виду:

[paths]
data = /var/lib/grafana
logs = /var/log/grafana
plugins = /var/lib/grafana/plugins

[server]
protocol = http
http_addr = 127.0.0.1
http_port = 3000
domain = localhost
root_url = http://localhost:3000

Вот такой конфиг заработает ( проверялось не одиножды)! Некоторые люди пишут, что можно выполнить следующую команду:

# setcap 'cap_net_bind_service=+ep' /usr/sbin/grafana-server

Но я не проверял этого. Оставил на всякий случай.

Перезапускаем службы:

# service nginx restart
# service grafana-server

Переходим к установке и настройке дургих компонентов.

Установка MYSQL/MariaDB в Unix/Linux

Я тоже не буду приводить подробности по установке, а приведу чтиво:

Установка MySQL на Debian/Ubuntu/Linux Mint

Установка MySQL 5.5 на RHEL / CentOS и Fedora

Установка MariaDB 10 на CentOS 7

Вот может еще пригодится:

Разрешить доступ к MySQL с определенной подсети в Unix/Linux

Сейчас, я создаю пользователя, базу и пароль:

# mysql -uroot -p

Создаем базу и пользователя с паролем:

> create database grafana character set utf8 collate utf8_bin;
> grant all privileges on grafana.* to 'grafana'@'127.0.0.1' IDENTIFIED BY 'Your_passwd_user_grafana';
> flush privileges;

Заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> MYSQL и вводим свои данные. У меня выглядит вот так:

добавляем data source для grafana

добавляем data source для grafana

PS: Нам говорят что данный плагин находится в тестовом виде и его не особо стоит пока-что юзать.

Нажимаем на «Add», потом на «Save & Test» и у вас будет уже mysql. Открываем когфиг:

# vim /etc/grafana/grafana.ini

И приводим к виду:

[database]
type = mysql
host = 127.0.0.1:3306
name = grafana
user = grafana
password = Your_passwd_user_grafana

Перезапускаем grafana-server:

# service grafana-server restart

После чего, в созданной БД, будут созданы таблицы для работы с графаной.

PS: Это довольно хороший способ хранить хранить, т.к легко можно создать бэкап и ничего не потерять.

Как по мне — очень хорошее решение. Идем далее….

Установка Zabbix в Unix/Linux

Я не буду сильно расписывать что и как ставится, вот чтиво:

Установка Zabbix + nginx+php-fpm + mariaDB в Unix/Linux

Чтобы заюзать grafana дашборд  и настроить все это дело с zabbix, нужно установить плагин (выполните установку на сервере где установлена графана):

# grafana-cli plugins install alexanderzobnin-zabbix-app

После установке каждого плагина, стоит перезапускать grafana сервер:

# service grafana-server restart

Сейчас, стоит активировать установленный плагин, для этого стоит зайти в панель самой графаны ( заюзайте ваш логин и пароль) и открыть «plugins» -> «zabbix» -> «enable».

Плагин активировали, но сейчас нужно добавить Data Sources, для этого заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> Zabbix и вводим свои данные.

Как это выглядит:

Dashboard grafana с CloudWatch

Dashboard grafana с CloudWatch

Я использую графану только в сочетании с заббикс. Выглядит очень круто. Не так ли?

Установка Graphite в Unix/Linux

Не было нужды в использовании ( я дополню статью). Но если имеется уже готовый сервер с графитом, то вы можете

добавить Data Sources, для этого заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> Graphite и вводим свои данные.

Как-то так.

Установка Elasticsearch в Unix/Linux

Выполняем установку:

Установка ElasticSearch (один сервер) кластер в Unix/Linux

Сейчас нужно добавить Data Sources, для этого заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> Elasticsearch и вводим свои данные.

Как-то так.

Установка CloudWatch в Unix/Linux

Сейчас нужно добавить Data Sources, для этого заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> CloudWatch и вводим свои данные.

Как это выглядит:

Dashboard grafana с CloudWatch

Dashboard grafana с CloudWatch

Как-то так.

Установка Prometheus в Unix/Linux

Установка этого чуда еще предстоит в будущем. Но если имеется уже сервер с CollectD, то можно добавить Data Sources, для этого заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> Prometheus и вводим свои данные.

Как-то так.

Установка InfluxDB в Unix/Linux

Выполняем установку:

Установка InfluxDB в Unix/Linux

Установка этого чуда еще предстоит в будущем. Но если имеется уже сервер с InfluxDB, то можно добавить Data Sources, для этого заходим в графана веб панель. Открываем:

Data Sources ->  Add data source -> InfluxDB и вводим свои данные. Строим графики и наслаждаемся. Наверное стоит рассказать как строятся графики, но на все времени нет…. При первой возможности, обязательно дополню статью.

Как-то так.

 

Настройка Grafana уведомлений

Для начала, устанавливаем почтовый сервер, я описывал все это дело в своей статье:

Установка почтового сервера Postfix, Dovecot и SquirrelMail в CentOS/Redhat/Fedora

Удалить/Очистить/Сбросить очередь в postfix

Если имеется почтовый сервер, то нужно немного настроить конфиг графаны:

# vim /etc/grafana/grafana.ini

И приводим к виду:

[smtp]
enabled = true
host = localhost:25
cert_file =
key_file =
skip_verify = true
from_address = admin@localhost
from_name = Grafana

Конечно же, перезапускаем сервер:

# service grafana-server restart

А сейчас, открываем графана:

Alerting -> Configure notifications ->  New Channel ->  Заполняем данные и пробуем отправить тестовое сообщение на почту.

Вот и все. Статья «Настройка Grafana с Graphite/Zabbix/Prometheus/MySQL/InfluxDB/Elasticsearch/CloudWatch для сбора и отображения метрик в Unix/Linux» завершена.

The post Настройка Grafana с Graphite/Zabbix/Prometheus/MySQL/InfluxDB/Elasticsearch/CloudWatch для сбора и отображения метрик в Unix/Linux first appeared on linux-notes.org.]]>
https://linux-notes.org/nastrojka-grafana-s-graphite-zabbix-prometheus-mysql-influxdb-elasticsearch-cloudwatch-dlya-sbora-i-otobrazheniya-metrik-v-unix-linux/feed/ 0
Page_c76a3fcf https://linux-notes.org/kakie-protsessy-zanyali-swap-v-unix-linux/ https://linux-notes.org/kakie-protsessy-zanyali-swap-v-unix-linux/#respond Wed, 22 Feb 2017 22:54:06 +0000 http://linux-notes.org/?p=11912 Какие процессы заняли SWAP в Unix/Linux Утилиты top/htop и free отображают общее количество свободной, занятой физической памяти, а так же SWAP на сервере. Как определить, какой процесс использует пространство подкачки в Unix/Linux? Вы можете использовать любой из следующих методов (но имейте в виду, что из-за общих страниц, нет никакого надежного способа получить данную информацию): Используйте «/proc/meminfo» – Утилита, которая […]

The post Какие процессы заняли SWAP в Unix/Linux first appeared on linux-notes.org.]]>

Какие процессы заняли SWAP в Unix/Linux

Утилиты top/htop и free отображают общее количество свободной, занятой физической памяти, а так же SWAP на сервере. Как определить, какой процесс использует пространство подкачки в Unix/Linux?

Вы можете использовать любой из следующих методов (но имейте в виду, что из-за общих страниц, нет никакого надежного способа получить данную информацию):

  • Используйте «/proc/meminfo» – Утилита, которая покажет общие сведения об RAM/SWAP. Данная статистика используется с утилитой «free», чтобы сообщить количество свободной и используемой памяти (как физической, так и swap) в системе, а также общей памяти и буферов используемых ядром. Вы также можете использовать free, vmstat и другие инструменты чтобы узнать ту же информацию.
  • «/proc/${PID}/smaps», «/proc/${PID}/status» и «/proc/${PID}/stat» — Используя эти утилиты, чтобы найти информацию о памяти, страницах и swap-е используемых каждым процессом( зная PID процесса).
  • Используя smem.

Какие процессы заняли SWAP в Unix/Linux

Можно добиться желаемого результата несколькими способами.

Находим идентификатор процесса (PID):

# pidof memcached

Альтернатива, использовать «pgrep» команду для поиска PID-а:

# pgrep memcached

И так, одна из команд выведет подобный результат:

79225

Чтобы увидеть сколько использует swap служба memcached можно следующим образом:

# cat /proc/79225/status | grep -E "VmSwap"

И так, я показал сколько используется swap-а по указанному процессу ( memcached), но это не совсем удобно т.к имеется и ряд других процессов которые могут или использует swap, по этому — я сейчас покажу как можно красиво использовать данные утилиты для проверки.

Введите следующую команду в терменале, чтобы увидеть использование свопа по каждому процессу:

# for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done

Небольшая оптимизация — используем сортировку и вывод частями:

for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less

Еще варианты….

{ date;for f in /proc/[0-9]*/status; do awk '{k[$1]=$2} END { if (k["VmSwap:"]) print k["Pid:"],k["Name:"],k["VmSwap:"];}' $f 2>/dev/null; done | sort -n ; }

Нашел небольшой bash скрипт:

# vim /usr/local/src/swap_processes_checker.sh

И прописываем в него:

#!/bin/bash
# Get current swap usage for all running processes
# Erik Ljungstrom 27/05/2011
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]"` ; do
        PID=`echo $DIR | cut -d / -f 3`
        PROGNAME=`ps -p $PID -o comm --no-headers`
        for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
        do
                let SUM=$SUM+$SWAP
        done
        echo "PID=$PID - Swap used: $SUM - ($PROGNAME )"
        let OVERALL=$OVERALL+$SUM
        SUM=0

done
echo "Overall swap used: $OVERALL"

Запускайте его от суперпользователя для того, чтобы иметь возможность собрать точные цифры. Скрипт будет работать и от любого другого пользователя в системе, но если у него не поулчится получить доступ к процессу которые не принадлежат вашему пользователю, то он не сможет показать данные по процессам. Например, чтобы найти процесс с большим использованием свопа, просто запустите скрипт вот так:

$ sudo bash /usr/local/src/swap_processes_checker.sh | sort -n -k 5

Данные скрипт покажет все процессы которые используют или не используют SWAP, но можно убрать ненужно ( отображать только те процессы, которые имеют обращение к свапу):

$ sudo bash /usr/local/src/swap_processes_checker.sh| egrep -v "Swap used: 0" |sort -n -k 5

Выход будет в килобайтах.

Вот уже готовый, упрощенный скрипт:

#!/bin/bash 

SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"`
do
    PID=`echo $DIR | cut -d / -f 3`
    PROGNAME=`ps -p $PID -o comm --no-headers`
    for SWAP in `grep VmSwap $DIR/status 2>/dev/null | awk '{ print $2 }'`
    do
        let SUM=$SUM+$SWAP
    done
    if (( $SUM > 0 )); then
        echo "PID=$PID swapped $SUM KB ($PROGNAME)"
    fi
    let OVERALL=$OVERALL+$SUM
    SUM=0
done
echo "Overall swap used: $OVERALL KB"

Хочу показать отличную вариацию данного скрипта ( на мой взгляд — одно из самых лучших):

#!/bin/bash

SCRIPT_NAME=`basename $0`;
SORT="kb";                 # {pid|kB|name} as first parameter, [default: kb]
[ "$1" != "" ] && { SORT="$1"; }

[ ! -x `which mktemp` ] && { echo "ERROR: mktemp is not available!"; exit; }
MKTEMP=`which mktemp`;
TMP=`${MKTEMP} -d`;
[ ! -d "${TMP}" ] && { echo "ERROR: unable to create temp dir!"; exit; }

>${TMP}/${SCRIPT_NAME}.pid;
>${TMP}/${SCRIPT_NAME}.kb;
>${TMP}/${SCRIPT_NAME}.name;

SUM=0;
OVERALL=0;
    echo "${OVERALL}" > ${TMP}/${SCRIPT_NAME}.overal;

for DIR in `find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"`;
do
    PID=`echo $DIR | cut -d / -f 3`
    PROGNAME=`ps -p $PID -o comm --no-headers`

    for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
    do
        let SUM=$SUM+$SWAP
    done

    if (( $SUM > 0 ));
    then
        echo -n ".";
        echo -e "${PID}\t${SUM}\t${PROGNAME}" >> ${TMP}/${SCRIPT_NAME}.pid;
        echo -e "${SUM}\t${PID}\t${PROGNAME}" >> ${TMP}/${SCRIPT_NAME}.kb;
        echo -e "${PROGNAME}\t${SUM}\t${PID}" >> ${TMP}/${SCRIPT_NAME}.name;
    fi
    let OVERALL=$OVERALL+$SUM
    SUM=0
done
echo "${OVERALL}" > ${TMP}/${SCRIPT_NAME}.overal;
echo;
echo "Overall swap used: ${OVERALL} kB";
echo "========================================";
case "${SORT}" in
    name )
        echo -e "name\tkB\tpid";
        echo "========================================";
        cat ${TMP}/${SCRIPT_NAME}.name|sort -r;
        ;;

    kb )
        echo -e "kB\tpid\tname";
        echo "========================================";
        cat ${TMP}/${SCRIPT_NAME}.kb|sort -rh;
        ;;

    pid | * )
        echo -e "pid\tkB\tname";
        echo "========================================";
        cat ${TMP}/${SCRIPT_NAME}.pid|sort -rh;
        ;;
esac
rm -fR "${TMP}/";

Вот еще один вариант использования:

#!/bin/bash
grep VmSwap /proc/[0-9]*/status | awk -F':' -v sort="$1" '
  {
    split($1,pid,"/") # Split first field on /
    split($3,swp," ") # Split third field on space
    cmdlinefile = "/proc/"pid[3]"/cmdline" # Build the cmdline filepath
    getline pname[pid[3]] < cmdlinefile # Get the command line from pid
    swap[pid[3]] = sprintf("%6i %s",swp[1],swp[2]) # Store the swap used (with unit to avoid rebuilding at print)
    sum+=swp[1] # Sum the swap
  }
  END {
    OFS="\t" # Change the output separator to tabulation
    print "Pid","Swap used","Command line" # Print header
    if(sort) {
      getline max_pid < "/proc/sys/kernel/pid_max"
      for(p=1;p<=max_pid;p++) {
        if(p in pname) print p,swap[p],pname[p] # print the values
      }
    } else {
      for(p in pname) { # Loop over all pids found
        print p,swap[p],pname[p] # print the values
      }
    }
    print "Total swap used:",sum # print the sum
  }'

Они все работают и их можно использовать для своих нужд. А можно использовать утилиту smem. О ней можно прочитать тут:

Установка smem для проверки RAM/SWAP активности в Unix/Linux

А на этом, у меня все! Статья «Какие процессы заняли SWAP в Unix/Linux» завершена.

 

The post Какие процессы заняли SWAP в Unix/Linux first appeared on linux-notes.org.]]>
https://linux-notes.org/kakie-protsessy-zanyali-swap-v-unix-linux/feed/ 0
Page_c76a3fcf https://linux-notes.org/ustanovka-smem-dlya-proverki-swap-aktivnosti-v-unix-linux/ https://linux-notes.org/ustanovka-smem-dlya-proverki-swap-aktivnosti-v-unix-linux/#respond Wed, 22 Feb 2017 20:42:02 +0000 http://linux-notes.org/?p=11914 Установка smem для проверки RAM/SWAP активности в Unix/Linux Smem — утилита, которая показывает довольно много полезной информации о взаимодействии RAM, SWAP, USS, RSS по каждому процессу, процессу по пользователю. В отличие от существующих инструментов, smem может показывать пропорциональный размер памяти (PSS), который показывает более значимое представление о использовании памяти приложений и библиотек в настройках виртуальной памяти. […]

The post Установка smem для проверки RAM/SWAP активности в Unix/Linux first appeared on linux-notes.org.]]>

Установка smem для проверки RAM/SWAP активности в Unix/Linux

Smem — утилита, которая показывает довольно много полезной информации о взаимодействии RAM, SWAP, USS, RSS по каждому процессу, процессу по пользователю.

В отличие от существующих инструментов, smem может показывать пропорциональный размер памяти (PSS), который показывает более значимое представление о использовании памяти приложений и библиотек в настройках виртуальной памяти.

Установка smem для проверки RAM/SWAP активности в Unix/Linux

И так, приступим к установке данной утилиты. Я приведу пример установки для некоторых Unix/Linux ОС.

Установка smem для проверки SWAP активности в Debian/Ubuntu/Kali/Mint

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

$ sudo apt-get install smem -y

Очень изи, да?)

PS: Чтобы строить графики, нужно установить:

# apt-get install python-matplotlib

Установка smem для проверки SWAP активности в RHEL/CentOS/Fedora

Для установки, используйте:

# yum install smem -y

Как-то так.

PS: Чтобы строить графики, нужно установить:

# yum install python-matplotlib python-tk -y

Установка smem для проверки SWAP активности в других Unix/Linux ОС

Если не имеется пакета с smem утилитой, то его можно собрать или скомпилировать. Скачиваем исходный код:

$ cd /usr/local/src && wget https://www.selenic.com/smem/download/smem-1.4.tar.gz && tar xvf smem-*tar.gz

Скопируем утилиту:

# cd smem-* && cp smem  /usr/local/bin/

Выставляем права:

# chmod +x /usr/local/bin/smem

Перейдем к использованию.

Использование smem для проверки SWAP активности в Unix/Linux

Простое использование:

# smem

Вывод:

 PID User     Command                         Swap      USS      PSS      RSS
  210 root     /sbin/agetty --noclear --ke        0      116      116      120
  218 root     /sbin/agetty --noclear tty2        0      124      124      128
79084 avahi    avahi-daemon: chroot helpe         0      100      168      236
123086 varnishlog /usr/bin/varnishncsa -a -w         0      180      208      272
122819 root     varnishncsa -a -w /var/log/        0      184      212      276
123017 varnishlog /usr/bin/varnishlog -a -w /        0      200      214      264
79298 root     /usr/sbin/atd -f                   0      220      220      236
39071 nagios   /usr/local/nagios/bin/nagio        0      268      300      536
39072 nagios   /usr/local/nagios/bin/nagio        0      272      304      540
39070 nagios   /usr/local/nagios/bin/nagio        0      276      308      544
39073 nagios   /usr/local/nagios/bin/nagio        0      276      308      544
39074 nagios   /usr/local/nagios/bin/nagio        0      276      308      544
39075 nagios   /usr/local/nagios/bin/nagio        0      276      308      544
39085 nagios   /usr/local/nagios/bin/nagio        0      268      314      372
162672 nginx    /usr/local/sbin/fcgiwrap           0      328      340      424
66064 root     /usr/lib/systemd/systemd-ud        0      392      392      396
79083 avahi    avahi-daemon: running [capt        0      348      417      568
79194 rpc      /sbin/rpcbind -w                   0      548      548      564
36783 root     /bin/sh /usr/bin/mysqld_saf        0      324      625     1564
79225 memcached /usr/bin/memcached -u memca        0      664      668      688
65954 root     /usr/sbin/crond -n                 0      708      715     1008
37204 root     /usr/sbin/sshd                     0      856      903     1340

Посмотреть какая библиотека что использует:

# smem -m


Map                                       PIDs   AVGPSS      PSS
(deleted)/etc/udev/hwdb.bin                  1        0        0
/run/systemd/journal/kernel-seqnum           1        0        0
/usr/lib64/gconv/gconv-modules.cache        44        0        0
/usr/lib64/libICE.so.6.3.0                  48        0        0
/usr/lib64/libMagickWand.so.5.0.0           48        0        0
/usr/lib64/libSM.so.6.0.1                   48        0        0
/usr/lib64/libX11-xcb.so.1.0.0              48        0        0

Посмотреть какой пользователь, что и сколько использует:

# smem -u


User     Count     Swap      USS      PSS      RSS
varnishlog     2        0      380      422      536
rpc          1        0      548      548      564
avahi        2        0      448      585      804
memcached     1        0      664      668      688
dbus         1        0      868      994     1216
nagios      13        0    25908    28958    89268
nginx        6        0    39460    44566    70816
root        17        0   115516   119300   152516
mysql        1        0   506100   506500   508244
www         42        0  1172120  1280634  5078252

Чтобы отфильтровать вывод по имени процесса, используйте «-P» или ‘—processfilter=»regex»‘ опцию:

$ sudo smem --processfilter="mysql"

  PID User     Command                         Swap      USS      PSS      RSS
36783 root     /bin/sh /usr/bin/mysqld_saf        0      324      625     1564
73198 root     python /usr/bin/smem --proc        0     7172     7239     8048
37097 mysql    /usr/sbin/mysqld --basedir=        0   508160   508560   510304

Или:

# smem -m -p | grep mysql

Чтобы показать необходимые столбцы, используйте «-c» или «—columns» опцию:

$ sudo smem -c "name user pss rss"

Есть много вариантов вызовов smem, например — для просмотра потребления памяти в системе, выполните следующую команду:

# smem -w

Показать отчет об использованной памяти в процентах:

$ sudo smem -p

Опция «-t» покажет общее количество задействованой памяти:

$ sudo smem -t

Комбинированный вывод:

# smem -t -p


 PID User     Command                         Swap      USS      PSS      RSS 
 3245 root     /usr/sbin/rpc.idmapd           0.02%    0.00%    0.00%    0.13% 
 3111 root     /usr/sbin/vmware-vmblock-fu    0.06%    0.00%    0.00%    0.13% 
 3231 statd    /sbin/rpc.statd                0.06%    0.00%    0.01%    0.22% 
 3255 daemon   /usr/sbin/atd -f               0.02%    0.00%    0.01%    0.18% 
 3286 root     /usr/sbin/acpid                0.01%    0.01%    0.01%    0.15% 
 3301 root     /usr/sbin/minissdpd -i 0.0.    0.01%    0.01%    0.01%    0.11% 
 3222 root     /sbin/rpcbind -w               0.04%    0.01%    0.01%    0.22% 
 3266 avahi    avahi-daemon: chroot helpe     0.02%    0.00%    0.01%    0.13% 
 3254 root     /usr/sbin/cron -f              0.02%    0.01%    0.02%    0.25% 
 4102 captain  /bin/cat                       0.00%    0.01%    0.02%    0.17% 
 4375 captain  gnome-pty-helper               0.00%    0.02%    0.02%    0.17% 
 3338 root     /sbin/agetty --noclear tty1    0.00%    0.02%    0.02%    0.18% 
 3154 root     /usr/lib/vmware-vgauth/VGAu    0.33%    0.00%    0.02%    0.41% 
 3960 captain  /bin/sh /usr/bin/start-puls    0.00%    0.02%    0.02%    0.10% 
 3769 rtkit    /usr/lib/rtkit/rtkit-daemon    0.00%    0.03%    0.03%    0.24% 
 3902 captain  /usr/bin/dbus-launch --exit    0.00%    0.03%    0.03%    0.18% 
 3961 captain  /usr/bin/xprop -root -spy      0.00%    0.03%    0.03%    0.22% 
 3899 captain  /usr/bin/ssh-agent /usr/bin    0.00%    0.04%    0.04%    0.08% 
 3284 root     /usr/sbin/cups-browsed         0.07%    0.02%    0.04%    0.52% 
 3258 avahi    avahi-daemon: running [debi    0.01%    0.03%    0.05%    0.27% 
 3622 root     tpvmlpd2                       0.00%    0.04%    0.05%    0.29% 
 3275 root     /lib/systemd/systemd-logind    0.02%    0.06%    0.06%    0.27% 
 5787 captain  /usr/lib/dconf/dconf-servic    0.00%    0.06%    0.06%    0.45% 
 3910 captain  /usr/bin/dbus-daemon --conf    0.00%    0.05%    0.06%    0.34% 
 4386 root     su -                           0.00%    0.04%    0.07%    0.34% 

Более того, есть опции для вывода информации в графическом моде. Вы можете произвести гистограмму процессов и их PSS и RSS значений. Например, покажем гистограмму процессов, находящихся в использовании root пользователя.

Вертикальная плоскость показывает PSS и RSS измерение процессов и горизонтальная плоскость представляет каждый пользовательский процесс:

$ sudo smem --userfilter="root" --bar pid -c"pss rss"

И получим:

smem в графическом использовании

Вы также можете использовать круговую диаграмму, показывающую процессы и их потребление памяти, основанные на PSS или RSS значениях.

Опция «—pie» назначает имя диаграмы и «-s»  опция помогает сортировать по PSS значению:

$ sudo smem --userfilter="root" --pie name -s pss

Для получения полного списка команд, используйте:

# smem --help

Или:

# smem -h

Довольно простая утилита для проверки swap активности в Unix/Linux.

The post Установка smem для проверки RAM/SWAP активности в Unix/Linux first appeared on linux-notes.org.]]>
https://linux-notes.org/ustanovka-smem-dlya-proverki-swap-aktivnosti-v-unix-linux/feed/ 0
Page_c76a3fcf https://linux-notes.org/ustanovka-ps_mem-dlya-proverki-zanyatoj-pamyati-protsessami-v-unix-linux/ https://linux-notes.org/ustanovka-ps_mem-dlya-proverki-zanyatoj-pamyati-protsessami-v-unix-linux/#respond Sun, 19 Feb 2017 01:04:59 +0000 http://linux-notes.org/?p=9215 Установка ps_mem для проверки занятой памяти процессами в Unix/Linux При настройке php-fpm, nginx, apache нужно знать сколько памяти используется. И с ps_mem утилитой, можно узнать некоторую полезную информацию (какое количество памяти занято процессами). Тулза написанная на Python. Установка ps_mem для проверки занятой памяти процессами в Unix/Linux Расскажу как можно установить данную утилиту на различные Unix/Linux ОС. Установка […]

The post Установка ps_mem для проверки занятой памяти процессами в Unix/Linux first appeared on linux-notes.org.]]>

Установка ps_mem для проверки занятой памяти процессами в Unix/Linux

При настройке php-fpm, nginx, apache нужно знать сколько памяти используется. И с ps_mem утилитой, можно узнать некоторую полезную информацию (какое количество памяти занято процессами). Тулза написанная на Python.

Установка ps_mem для проверки занятой памяти процессами в Unix/Linux

Расскажу как можно установить данную утилиту на различные Unix/Linux ОС.

Установка ps_mem для проверки занятой памяти процессами в CentOS/Fedora/RedHat

Установка очень простая:

# yum install ps_mem -y

Установка ps_mem для проверки занятой памяти процессами в других Unix/Linux ОС

Выполняем:

# cd /usr/local/src && wget http://linux-notes.org/wp-content/uploads/python/ps_mem.py && mv ps_mem.py /usr/local/sbin/ps_mem && chmod 755 /usr/local/sbin/ps_mem

Или через «pip» установщик:

# pip install ps_mem

Использование ps_mem для проверки занятой памяти процессами в Unix/Linux

Некоторые полезные опции:

  • -w N – Ключ позволяет запустить  утилиту через N секунд;
  • -p – Ключ позволяет выводить информацию только по указанном PID-у (можно использовать несколько PID-ов, но использую разделитель — запятая);
  • -s – Ключ который позволяет выводить команду полностью, а не только имя процесса.

Мне хватает запуска:

# ps_mem 
 Private  +   Shared  =  RAM used	Program 

200.0 KiB +  36.0 KiB = 236.0 KiB	varnishlog
220.0 KiB +  31.0 KiB = 251.0 KiB	atd
240.0 KiB +  24.0 KiB = 264.0 KiB	agetty (2)
328.0 KiB +  63.0 KiB = 391.0 KiB	fcgiwrap
392.0 KiB +  39.5 KiB = 431.5 KiB	systemd-udevd
364.0 KiB + 100.0 KiB = 464.0 KiB	varnishncsa (2)
548.0 KiB +  69.0 KiB = 617.0 KiB	rpcbind
448.0 KiB + 201.0 KiB = 649.0 KiB	avahi-daemon (2)
328.0 KiB + 337.0 KiB = 665.0 KiB	mysqld_safe
664.0 KiB +  41.0 KiB = 705.0 KiB	memcached
712.0 KiB +  35.5 KiB = 747.5 KiB	crond
780.0 KiB + 346.5 KiB =   1.1 MiB	bash
  1.0 MiB + 157.0 KiB =   1.2 MiB	dbus-daemon
  1.2 MiB + 152.5 KiB =   1.4 MiB	systemd-logind
  2.3 MiB +  76.5 KiB =   2.4 MiB	systemd
  2.1 MiB + 662.0 KiB =   2.8 MiB	sshd (2)
 10.2 MiB +   3.7 MiB =  13.9 MiB	systemd-journald
 16.2 MiB + 527.5 KiB =  16.8 MiB	nagios (8)
 32.0 MiB +   5.8 MiB =  37.9 MiB	nginx (6)
 82.3 MiB + 299.0 KiB =  82.6 MiB	snmpd
180.5 MiB + 421.5 KiB = 180.9 MiB	mysqld
894.0 MiB + 107.9 MiB =   1.0 GiB	php-fpm (41)
---------------------------------
                          1.3 GiB
=================================

Утилита очень помогает при настройке php-fpm, apache, nginx. У меня все, статья «Установка ps_mem для проверки занятой памяти процессами в Unix/Linux» завершена.

The post Установка ps_mem для проверки занятой памяти процессами в Unix/Linux first appeared on linux-notes.org.]]>
https://linux-notes.org/ustanovka-ps_mem-dlya-proverki-zanyatoj-pamyati-protsessami-v-unix-linux/feed/ 0
Page_c76a3fcf https://linux-notes.org/primery-ispol-zovaniya-openssl-v-unix-linux/ https://linux-notes.org/primery-ispol-zovaniya-openssl-v-unix-linux/#respond Sun, 20 Nov 2016 10:44:38 +0000 http://linux-notes.org/?p=9560 Примеры использования OpenSSL в Unix/Linux При работе с SSL, нужно уметь работать с утилитой OpenSSL чтобы создавать, конвертировать, управляют SSL-сертификатами. В этой статье «Примеры использования OpenSSL в Unix/Linux» я буду говорить о примерах использования OpenSSL. Некоторые из сокращений, связанных с сертификатами: SSL – Secure Socket Layer (Безопасный уровень сокета). CSR – Certificate Signing Request (Запрос […]

The post Примеры использования OpenSSL в Unix/Linux first appeared on linux-notes.org.]]>

Примеры использования OpenSSL в Unix/Linux

При работе с SSL, нужно уметь работать с утилитой OpenSSL чтобы создавать, конвертировать, управляют SSL-сертификатами. В этой статье «Примеры использования OpenSSL в Unix/Linux» я буду говорить о примерах использования OpenSSL.

Некоторые из сокращений, связанных с сертификатами:

  • SSL – Secure Socket Layer (Безопасный уровень сокета).
  • CSR – Certificate Signing Request (Запрос на подпись сертификата).
  • TLS – Transport Layer Security (Транспортный уровень безопастности).
  • PEM – Privacy Enhanced Mail
  • DER – Distinguished Encoding Rules
  • SHA – Secure Hash Algorithm (Безопасный hash алгорит).
  • PKCS – Public-Key Cryptography Standards (Стандарты шифрования публичных ключей).

Создание нового приватного ключа (Private Key) и Certificate Signing Request (CSR).

Выполняем команду:

# openssl req -out linux-notes.org.csr -newkey rsa:2048 -nodes -keyout linux-notes.org.key

Команда выше будет генерировать CSR и 2048-битный RSA ключ. Если вы собираетесь использовать этот сертификат в Apache или Nginx, то вам необходимо отправить этот CSR файл в службу сертификации и они дадут вам подписанный сертификат в «der» или «pem» формате. После чего вы настроите его на веб-сервере Apache или Nginx.

Так же, можно использовать такой вариант:

$ openssl req -new -newkey rsa:2048 -nodes -out linux-notes.org.csr -keyout linux-notes.org.key -subj "/C=US/ST=Wisconsin/L=Waukesha/O=IT Dept/OU=Linux Notes/CN=linux-notes.org"

Создание самоподписанного сертификата (Self-Signed Certificate).

Выполняем команду:

# openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout LN-selfsigned.key -out LN-cert.pem

Команда выше будет генерировать самоподписанный сертификат (self-signed) и 2048-битный RSA ключ. Я также использую алгорит шифрования — SHA256. Так как он считается наиболее безопасным в данный момент.

Замечание: По умолчанию, будет сгенерирован ключ толкьо на 1 месяц, если нужно создать на более длительное время — используйте опцию «–days», пример использования ниже.

Пример: Чтобы создать self-signed сертификат на 2 год, используйте:

# openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout LN-selfsigned.key -out LN-cert.pem

Проверка CSR файла.

Выполням проверку:

# openssl req -noout -text -in linux-notes.org.csr

и вы получите информацию.

Проверка подписи (signature):

$ openssl req -in linux-notes.org.csr -noout -verify

Кем(кому) был выдан сертификат:

$ openssl req -inlinux-notes.org.csr -noout -subject

Показать открытый ключ (public key):

$ openssl req -inlinux-notes.org.csr -noout -pubkey

Создать приватный RSA  ключ (Private Key).

Чтобы это сделать, выполните:

# openssl genrsa -out my_private_rsa.key 2048

Если вам просто нужно генерировать RSA закрытый ключ, вы можете использовать команду что выше. Я включил 2048 шифрование, для безопастности.

Удалить ключевую фразу (Passphrase) с ключа.

# openssl rsa -in linux-notes.org.key -check -out nopassphrase.key

Если вы установили ключевую фразу для ключа, то при каждом старте веб-сервера (Apache/Nginx) вы должны будите вводить пароль. Если это вас злит, вы можете с легкостью удалить  passphrase с RSA ключа.

Проверка приватного ключа (Private Key)

# openssl rsa -in my_private.key -check

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

Проверка сертификата (Certificate).

Если вы хотите проверить данные сертификата( CN, OU, и т.д.), то вы можете использовать команду, которая даст вам сведения о сертификате:

# openssl x509 -in certfile.pem -text –noout

Команда довольна простая в использовании.

Проверка подписанного сертификата (Certificate Signer Authority).

# openssl x509 -in some_cert.pem -noout -issuer -issuer_hash

Можно узнать много полезного.

Создать тестовый SSL сервер.

Команда OpenSSL s_server реализует общий SSL/TLS-сервер. Она должна использоваться только для целей тестирования. В приведенном ниже примере данный сервер прослушивает соединения на порту 8080 и возвращает отформатированную HTML страницу статуса, который включает много информации о ciphers:

$ openssl s_server -key key.pem -cert cert.pem -accept 8080 -www

Проверить хеш вашего сертификата.

# openssl x509 -noout -hash -in my_cert.pem

Конвертирование сертификатов с DER в PEM формат.

# openssl x509 -inform der -in LN.der -out LN.pem

Как правило, при покупке SSL сертификатов, его отдают вам в формате .der и если вам нужно использовать его в веб-сервере или .pem формате, вы можете использовать команду выше, чтобы преобразовать такие сертификаты.

Конвертирование сертификатов с PEM в DER формат.

В случае, если вам необходимо изменить .pem формат в .der:

# openssl x509 -outform der -in linux-notes.pem -out linux-notes.der

Конвертирование CSR c DER в PEM формат.

$ openssl req -in csr.der -inform DER -out csr.pem -outform PEM

Конвертирование сертификата и приватного ключа  в PKCS#12 фотмат.

# openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem

Если вам необходимо использовать сертификат с приложением Java или с любым другим, кто принимает формат PKCS# 12.

Совет: Вы можете включить «chain certificate» используя «-chain» опцию:

# openssl pkcs12 -export -out my_cert.pfx -inkey my_key.pem -in your_cert.pem -chain the_cert.pem

Создание CSR используя  приватный ключ (private key).

# openssl req -out some_cert.csr -key exists.key -new

Если вы не хотите создать новый секретный ключ, а хотите используя вместо существующего, вы можете с предыдущей командой.

Проверьте содержимое сертификата в PKCS12 формате.

# openssl pkcs12 -info -nodes -in my_certificate.p12

PKCS12 — это двоичный формат, так что вы не сможете просматривать содержимое в блокноте или другом редакторе. Таким образом, вы должны использовать команду что выше, для просмотра содержимого файла формата PKCS12.

Конвертирование PKCS12 формата в PEM сертификат.

# openssl pkcs12 -in my_certificat.p12 -out the_certificat.pem

Получить SHA-1 отпечаток сертификата или CSR

Чтобы получить отпечаток SHA1 сертификата с использованием OpenSSL, используйте команду, приведенную ниже:

$ openssl dgst -sha1 my_cert.der

Чтобы получить SHA1 отпечаток пальца CSR с использованием OpenSSL, используйте команду, приведенную ниже:

$ openssl dgst -sha1 the_csr.der

Получить MD5 отпечаток сертификата или CSR

Чтобы получить отпечаток MD5 сертификата с использованием OpenSSL, используйте команду, приведенную ниже:

$ openssl dgst -md5 cert.der

Чтобы получить MD5 отпечаток пальца CSR с использованием OpenSSL, используйте команду, приведенную ниже:

$ openssl dgst -md5 my_csr.der

Тестирование SSL сертификата по URL.

# openssl s_client -connect linux-notes.org:443 -showcerts

Я использую это довольно часто для проверки SSL-сертификатов по URL с сервера. Это очень удобно для проверки некоторых деталей протокола, шифров и CERT.

Узнать версию OpenSSL

 # openssl version

Поверка PEM сертификата на завершение (Expiration Date).

# openssl x509 -noout -in cert.pem -dates

Пример:

# openssl x509 -noout -in bestflare.pem -dates
notBefore=Jul 4 14:02:45 2015 GMT
notAfter=Aug 4 09:46:42 2015 GMT

Проверка завершения SSL сертификата (Expiration Date) по URL.

# openssl s_client -connect linux-notes.org:443 2>/dev/null | openssl x509 -noout -enddate

Проверить поддержку SSL версии V2/V3  по URL.

Проверка SSL версии V2:

# openssl s_client -connect linux-notes.org:443 -ssl2

Проверка SSL версии V3:

# openssl s_client -connect linux-notes.org:443 -ssl3

Проверка TLS 1.0:

# openssl s_client -connect linux-notes.org:443 -tls1

Проверка TLS 1.1:

# openssl s_client -connect linux-notes.org:443 -tls1_1

Проверка TLS 1.2:

# openssl s_client -connect linux-notes.org:443 -tls1_2

Проверка поддержки cipher для сайта по URL.

# openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect linux-notes.org:443

Какой алгоритм используется в сертификате (проверка).

$ openssl req -noout -text -in mycert.csr | grep 'Signature Algorithm'

Или, используя URL:

openssl s_client -connect linux-notes.org:443 < /dev/null 2>/dev/null | openssl x509 -text -in /dev/stdin | grep "Signature Algorithm"

Получить сертификат по URL

Команда что ниже, сохранит сертификат в файл прямо по URL сайта:

$ echo -n | openssl s_client -connect linux-notes.org:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > pem.cert

Если веб-сервер имеет несколько сертификатов на один IP-адрес, то вам нужно будет сообщить OpenSSL, какой сертификат будет использоваться, пример ниже:

$ echo -n | openssl s_client -connect linux-notes.org:443 -servername linux-notes.org | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > pem.cert

Вот и все, много полезностей и все в одной статье «Примеры использования OpenSSL в Unix/Linux».

The post Примеры использования OpenSSL в Unix/Linux first appeared on linux-notes.org.]]>
https://linux-notes.org/primery-ispol-zovaniya-openssl-v-unix-linux/feed/ 0
Page_c76a3fcf https://linux-notes.org/bezopasny-j-ssh-s-google-authenticator-v-unix-linux/ https://linux-notes.org/bezopasny-j-ssh-s-google-authenticator-v-unix-linux/#comments Thu, 17 Dec 2015 22:13:44 +0000 http://linux-notes.org/?p=7072 Безопасный SSH с Google Authenticator в Unix/Linux Google Authenticator обеспечивает новый уровень безопасности от хакеров для SSH сервера. В этой статье «Безопасный SSH с Google Authenticator в Unix/Linux» я расскажу как установить и настройить Google Authenticator чтобы защитить свой SSH сервер с двухфакторной аутентификацией с использованием модуля Google Authenticator PAM. С этим модулем вы должны будите сгенерировать код, используя […]

The post Безопасный SSH с Google Authenticator в Unix/Linux first appeared on linux-notes.org.]]>

Безопасный SSH с Google Authenticator в Unix/Linux

Google Authenticator обеспечивает новый уровень безопасности от хакеров для SSH сервера. В этой статье «Безопасный SSH с Google Authenticator в Unix/Linux» я расскажу как установить и настройить Google Authenticator чтобы защитить свой SSH сервер с двухфакторной аутентификацией с использованием модуля Google Authenticator PAM. С этим модулем вы должны будите сгенерировать код, используя ваш телефон или другие устройства чтобы войти на сервер через SSH.

Хотите защитить SSH сервер с двухфакторной аутентификацией? Google предоставляет необходимое программное обеспечение для интеграции Google Authenticator на основе одноразового пароля (TOTP) с SSH сервером. Вы должны ввести код с вашего телефона при подключении.

Безопасный SSH с Google Authenticator в Debian/Ubuntu

Для deb-‘s операционных систем, имеется готовый пакет, его нужно просто установить.

Установка Google Authenticator.

Для установки пакета Google Authenticator в Debian или Ubuntu, выполните следующую команду:

# apt-get install libpam-google-authenticator

После этого, переходим к настройке и активации данного модуля.

Безопасный SSH с Google Authenticator в RedHat/Fedora/CentOS

Вот следующие шаги по установки и настройки Google Authenticator в RedHat/Fedora/CentOS

Шаг 1: Добавления репозитория. 

Во-первых, необходимо добавить репозиторий RPMForge или EPEL, если не знаете как, то можно прочитать статью тут:

Установка RPMForge репозитория в RHEL / CentOS

Как включить EPEL репозиторий

Шаг 2: Установка Google Authenticator.

Чтобы установить Google authenticator используйте следующую команду:

# yum install google-authenticator

Безопасный SSH с Google Authenticator с исходного кода.

На самом деле, Google Authenticator является системой с полностью открытым исходным кодом. Вы можете скачать его тут:

# cd /usr/local/src && git clone https://github.com/google/google-authenticator.git

Для этого нужно иметь git.

# cd google-authenticator

Выполняем сборку:

# make && make install

Скопируем библиотеки в нужное место:

# cp pam_google_authenticator.so /lib64/security
# cp google-authenticator /usr/local/bin

Настройка безопасного входа через SSH с Google Authenticator в Unix/Linux

Я использую тестовый аккаунт (пользователь captain) для тестирования:

# su - captain

Запускаем google-authenticator:

$ google-authenticator

https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/captain@localhost.localdomain%3Fsecret%3DJ4CZKJKMHQYRVPJJ
Your new secret key is: J4CZKJKMHQYRVPJJ
Your verification code is 477729
Your emergency scratch codes are:
 87179898
 49162509
 72309780
 62379946
 13687735

Do you want me to update your "~/.google_authenticator" file (y/n) y

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) y

If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y

Google Authenticator покажет вам секретный ключ и много «аварийных скретч-кодов». Аварийные коды могут быть использованы только один раз в случае, если вы потеряли секретный ключ, поэтому держите их в безопасном месте.

Используйте Google Authenticator приложения для вашего девайса (Android, iPhone или Blackberry) для того чтобы сгенерировать проверочной код, нужно ввести секретный ключ:

 Вы также можете сканировать штрих-код, предоставляемый по URL, у меня это:

https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/captain@localhost.localdomain%3Fsecret%3DJ4CZKJKMHQYRVPJJ

Вы также можете использовать приложения, основанные на Java для генерация кодов проверки:

# cd /usr/local/src && wget http://www.jcuff.net/files/Authenticator.tgz && tar zxfv Authenticator.tgz

Компилируем утилиту:

~/auth$ javac -cp ./ Authenticator/*.java

Выполните (в папке auth, домашней папки локального пользователя):

~/auth$ java -classpath ./ Authenticator.Main /home/jcuff/.google_authenticator

Пример:

Authenticator Started!
:----------------------------:--------:
: Code Wait Time : Code :
:----------------------------:--------:
+++++++++++++++++++++++++++++: 977773 :
..............+++++++++++++++: 500007 :
.............................: 176547 :
.............................: 543540 :
^C
~/auth$

Выбор за вами, но с мобильными девайсами проблем меньше.

Активация Google authenticator

Для того чтобы активировать google authenticator, нужно добавить в конфигурационный файл:

# vim /etc/pam.d/sshd

Строку что ниже:

# auth required pam_google_authenticator.so

Должно выглядеть вот так:

required pam_google_authenticatorЭто позволит активировать Google authentication для входа в ssh. После чего, открываем конфигурационный файл SSH b добавим изменения:

# vim /etc/ssh/sshd_config

И приводим к виду:

[...]
ChallengeResponseAuthentication yes
[...]
PasswordAuthentication yes
[...]
UsePAM yes
[...]

И последнее, перезапустим службу SSH в CentOS/Fedora/RedHat:

# service sshd restart

И последнее, перезапустим службу SSH в Debian/Ubuntu:

# service ssh restart

Чтобы убедиться что все работает, можно проверить лог-файл:

# tail -f /var/log/secure

PS: Примите во внимание что SELinux должен быть выключен, и как это сделать, можно прочитать статью тут:

Как отключить SELinux на CentOS

Вот пример лога:

Dec 17 19:12:42 localhost sshd[13057]: Server listening on 0.0.0.0 port 22.
Dec 17 19:12:42 localhost sshd[13057]: Server listening on :: port 22.
Dec 17 19:38:26 localhost su: pam_unix(su-l:session): session opened for user root by captain(uid=500)

Пропустить  Google Authenticator авторизацию если подключение с локальной сети.

Вы можете добавить IP вашей локальной сети чтобы опустить SSH соединения с использованием Google Authenticator. Если это так, изменим:

# vim /etc/pam.d/sshd

Прописываем:

auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/access-local.conf
auth required pam_google_authenticator.so

Затем, открываем:

# vim /etc/security/access-local.conf

Добавляем следующие строки:

# Google Authenticator can be skipped on local network
+ : ALL : 192.168.0.0/24
+ : ALL : LOCAL
- : ALL : ALL

Замените 192.168.0.0/24 на вашу локальную сеть.

Тема «Безопасный SSH с Google Authenticator в Unix/Linux» завершена.

The post Безопасный SSH с Google Authenticator в Unix/Linux first appeared on linux-notes.org.]]>
https://linux-notes.org/bezopasny-j-ssh-s-google-authenticator-v-unix-linux/feed/ 4
Page_c76a3fcf https://linux-notes.org/ustanovka-vnc-viewer-v-unix-linux/ https://linux-notes.org/ustanovka-vnc-viewer-v-unix-linux/#comments Fri, 18 Sep 2015 20:58:26 +0000 http://linux-notes.org/?p=4016 Когда установлен на компьютере VNC сервер, то  можно подключиться к нему с помощью VNC viewer. Я хотел бы рассказать как установить эту утилиту. Можно почитать полезное чтиво об установке и настройке  VNC сервера: Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint Установка VNCserver на CentOS/RedHat/Fedora Установка VNC viewer в Unix/Linux Я расскажу в своей статье «Установка […]

The post Установка VNC viewer в Unix/Linux first appeared on linux-notes.org.]]>

Когда установлен на компьютере VNC сервер, то  можно подключиться к нему с помощью VNC viewer. Я хотел бы рассказать как установить эту утилиту.

Можно почитать полезное чтиво об установке и настройке  VNC сервера:

Установка и настройка VNC Server на Debian/Ubuntu/Linux Mint

Установка VNCserver на CentOS/RedHat/Fedora

Установка VNC viewer в Unix/Linux

Я расскажу в своей статье «Установка VNC viewer в Unix/Linux» как можно установить VNC viewer на RedHat’s и Debian’s ОС. Постепенно, буду добавлять материал и для других Unix/Linux ОС.

Установка VNC viewer на Debian/Ubuntu/Mint.

Подкрутка ушей устанавливается как всегда из репозитория:

$ sudo apt-get install vncviewer

Установка VNC viewer на RedHat/Fedora/CentOS.

Для установки используйте команду:

# yum install vncviewer -y

Установка VNC viewer на FreeBSD.

VNC клиент для FreeBSD, можно установить:

# pkg_add -r tightvnc

После чего, открываем установленный клиент и выполняем подключение к нужному серверу:

term

Вот така я простая у меня статья «Установка VNC viewer в Unix/Linux». В ней нет ничего сложного, как в установке, так и в ее использовании.

The post Установка VNC viewer в Unix/Linux first appeared on linux-notes.org.]]>
https://linux-notes.org/ustanovka-vnc-viewer-v-unix-linux/feed/ 2
Page_c76a3fcf https://linux-notes.org/komandy-mail-mailx-v-primera-na-unix-linux/ https://linux-notes.org/komandy-mail-mailx-v-primera-na-unix-linux/#comments Fri, 18 Sep 2015 20:40:10 +0000 http://linux-notes.org/?p=8034 Команды mail/mailx в примера на Unix/Linux Команды /Mail/mailx используемые в операционных систем UNIX/Linux для отправки электронной почты (так же, для полученные  и чтения сообщений электронной почты) с возможностью удалять. В своей статье «Команды mail/mailx в примера на Unix/Linux» я расскажу как установить и использовать утилиту (команду) mail на ОС Unix или Linux. Синтаксис команды mail: mail [options] to-address […]

The post Команды mail/mailx в примера на Unix/Linux first appeared on linux-notes.org.]]>

Команды mail/mailx в примера на Unix/Linux

Команды /Mail/mailx используемые в операционных систем UNIX/Linux для отправки электронной почты (так же, для полученные  и чтения сообщений электронной почты) с возможностью удалять. В своей статье «Команды mail/mailx в примера на Unix/Linux» я расскажу как установить и использовать утилиту (команду) mail на ОС Unix или Linux.

Синтаксис команды mail:

mail [options] to-address [-- sendmail-options]

Опции.

-v : Подробный режим. Детали отправки отображаются на экране.
-s : Опция задает тему для письма.
-c : Отправить СС (копии для других пользователей).
-b :Отправить BС (копии для других пользователей).
-f : Прочитать содержимое почтового ящика.
-e : Проверка на наличие почты в почтовом ящике.
-F : Записывает сообщение в файл с именем после получения.
-r :  Опция для указания адреса отправителя в настройках отправки почты.
-u : Определяет сокращенния, аналог опции «mail -f /var/spool/mail/UserID».

Установка утилиты mail в Unix/Linux

Для того чтобы установить утилиту mail на CentOS/Fedora/RedHat, используйте:

$ yum install mailx

Для того чтобы установить утилиту mail на Debian/Mint, используйте:

$ apt-get install mailutils

Теперь вы должны иметь команду mail, и можно приступать к работе.

Команды mail/mailx в примера на Unix/Linux

В своей статье «Команды mail/mailx в примера на Unix/Linux» я расскажу как пользоваться утилитой mail в ОС Unix/Linux. Приведу наглядные примеры использования данной утилиты.

Чтобы запустить программу «mail» и вывести список сообщений в почтовом ящике, выполните:

# mail

Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N 1 logwatch@host.deltas Wed Dec 9 07:14 44/1670 "Logwatch for host.deltasquadron.com (Linux)"
&

Команда mail показывает количество сообщений в ящике системы. Затем почтовая система отображает подсказку почтового ящика (?), ожидая ввода.

Когда вы видите эту строку, то нужно ввести субкоманду, чтобы увидеть список подкоманд, нужно нажать (?):

Команды Mail

t <Список сообщений> тип.
n Перейти на другое сообщение.
e <Список сообщений> Отредактировать почту (сообщение).
f <Список сообщений> Вывести линии "head" сообщений.
d <Список сообщений> Удалить почту (сообщение). Нужно указать номер почтового сообщения.
s <Список сообщений> добавлять сообщения в файл.
u <Список сообщений> Отменить удаление сообщений.
R <Список сообщений> Ответить на сообщение.
r <Список сообщений> отвечать на все сообщения отправителей и получателей.
pre <Список сообщений> Создать сообщения и вернуться в /usr/spool/mail.
m <Список пользователей> Почта для конкретных пользователей.
q Выход, сохранить нерешенные сообщения в Mbox и выйти.
x Выход, не удалить системный почтовый ящик (system mailbox).
h Напечатать активные заголовки сообщений.
! shell escape
cd [папка] chdir to directory or home if none given

A <Список сообщений> Состоит из целых чисел, диапазонов или имен пользователей и разделены пробелами. Если он опущен mail использует последнее набранное сообщение.

A <Список пользователей> состоит из имен пользователей или псевдонимов, разделенных пробелами.
Псевдонимы определены в .mailrc в вашем домашнем каталоге.
&

Данная команда (?)  покажет все субкоманды для Mail.

Отправка электронной почты пользователю:

# echo "some text here to send it...." | mail -s "My_subject_is_here" send_to_some@email.com

В команде «echo»  задается некоторый текст для отправки по электронной почте.

Опция «-s» используется для указания темы для письма. Собственно, команда mail отправит емейл пользователю send_to_some@email.com. Можно обойтись и без команды echo, тогда команда будет выглядеть следующим образом:

# mail -s "My_subject_is_here" send_to_some@email.com

В этом примере вы тогда, будите вводить в сообщении и чтобы остановить просто введите точку следующим образом (.):

Hello here,
just simple test here
.
Cc:

Если вы хотите отправить письмо нескольким пользователям, то просто добавить емейл через пробел. Это будет выглядеть следующим образом:

# echo echo "some text here to send it...."| mail -s "My_subject_is_here" send_to_some@email.com send_to_some2@email.com send_to_some3@email.com send_to_some4@email.com

Отправка содержимого текстового файла

Вы можете отправить содержимое файла с помощью cat/echo или с помощью перенаправления оператор ввода «<«,

Например, чтобы отправить содержимое some_txt_file.txt через почту, нужно выполнить:

# cat somefile.txt | mail -s "My_subject_is_here" "user1@example.com,user2@example.com"
# mail -s "Mail subject" "user1@example.com,user2@example.com" < /home/captain/some_txt_file.txt

Использование Mail для CC & Bcc.

Для использования CC и ИСС, нужно использовать опции «-c» и «-b». Пример:

# echo "some text here to send it...." | mailx -s "My_subject_is_here" -b bcc_user1@example.com -c cc_user1@example.com -r sender_user1@example.com recipient_user1@example.com

Для отправки содержимого файла:

# mail -s "My_subject_is_here" -c "cc_user1@example.com" -b "bcc_user1@example.com" "user@example.com" < /home/captain/some_txt_file.txt

Прикрепление файлов:

Команда mail не обеспечивает крепления файлов. Но существует обходной путь для присоединения файлов с помощью команды UUencode. Например, можно сделать так:

# uuencode some_attachment_file some_attachment_file | mail -s "My_subject_is_here" "user@example.com" < /home/captain/some_txt_file.txt

Небольшая статья о утилите UUencode:

Команда uuencode в примерах

Работа с почтовым ящиком на сервере с утилитой mail.

Чтобы запустить утилиту mail и показать список сообщений в вашем почтовом ящике выполните:

# mail

Команда mail выведет список сообщений в ящике системы. Для вывода дополнительных команд нужно ввести знак (?). Я рассказывал какие бывают подкоманды для утилиты mail выше, вы можете использовать их.

Другой способ просмотра электронной почты — это использования опции «-f»:

# mail -f /var/spool/mail/captain
Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/spool/mail/captain": 0 messages
&

captain — это пользователь на сервере. У меня нет новых сообщений.

Из приведенного выше вывода, вы можете видеть, что он отображает адрес, дату и тему писем в почтовом ящике. Он также отображает амперсанд (&) строку в конце. Чтобы вернуться в основное меню, нажмите «Ctrl + Z» или «CTRL + D» в зависимости от вашей операционной системы и нажмите клавишу «Enter». Амперсанд (&) позволяет читать, отвечать и удалять сообщения электронной почты.

Чтение почты.

Чтобы прочитать электронную почту, нужно знать N-ый номер почты, просто введите номер почтового письма после амперсанда (&) и нажмите клавишу ВВОДА (Enter). Например:

$ mail -f /var/spool/mail/captain

Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/spool/mail/captain": 2 messages 2 new
>N 1 root@linux-notes.org Tue Jan 5 12:01 15/2015 "test Mail subject_1"
N 2 root@linux-notes.org Tue Jan 6 12:12 16/2015 "Test Mail subject_2"
&2
Message 2:
From root@linux-notes.org Jan 6 12:12 16/2015
---------------
Subject: Test Mail subject_2
------------

This displays the second email details.

Навигация по входящей почте.

Чтобы перейти к следующей электронной почте, введите символ «+». Чтобы вернуться к предыдущему электронной почте, введите символ «-» в после амперсанда:

&-
Message 1:
From root@linux-notes.org  Tue Jan 5 12:01 15/2015
---------------
Subject: test Mail subject_1
------------

 Ответить на электронную почту.

После того, как вы прочли письмо, вы можете ответить на него, набрав «reply» после амперсанда и нажав Enter:

&reply
To: root@linux-notes.org
captain@linux-notes.org
Subject: Re: test Mail subject_1

Удаление почтовых писем с ящика.

Вы можете удалить электронную почту, используя опцию «d» после амперсанда и нажав «Enter».

Удалить прочитанное письмо:

&d

Удалить прочитанное письма 2 и 4:

&d 2 4

Удалить письма с 6 по 66:

&d 6-66

Удалить все письма с почтового ящика mbox:

&d *

На этом, у меня все, тема «Команды mail/mailx в примера на Unix/Linux» завершена.

The post Команды mail/mailx в примера на Unix/Linux first appeared on linux-notes.org.]]>
https://linux-notes.org/komandy-mail-mailx-v-primera-na-unix-linux/feed/ 4
Page_c76a3fcf https://linux-notes.org/sohranyaem-vse-rezervny-e-kopii-v-dropbox/ https://linux-notes.org/sohranyaem-vse-rezervny-e-kopii-v-dropbox/#comments Mon, 10 Aug 2015 21:48:54 +0000 http://linux-notes.org/?p=3581 Сохраняем все резервные копии в Dropbox В своей статье «Сохраняем все резервные копии в Dropbox» я расскажу как можно создавать бэкапы и сохранять их в Dropbox, на готовом примере — это Debian 8 покажу как это работает. Для создания бэкапов, я установлю утилиту backup-manager, для этого выполняем команду: Для Centos/Fedora/RHEL: # yum install backup-manager Для Debian/Mint/Ubuntu: # apt-get […]

The post Сохраняем все резервные копии в Dropbox first appeared on linux-notes.org.]]>

Сохраняем все резервные копии в Dropbox

В своей статье «Сохраняем все резервные копии в Dropbox» я расскажу как можно создавать бэкапы и сохранять их в Dropbox, на готовом примере — это Debian 8 покажу как это работает.

Для создания бэкапов, я установлю утилиту backup-manager, для этого выполняем команду:

Для Centos/Fedora/RHEL:

# yum install backup-manager

Для Debian/Mint/Ubuntu:

# apt-get install backup-manager

В ходе установке, вас попросят ввести место для сохранения всех ваших бекапов, я прописал:

выбор директории для хранения бэкапов backup-manager

выбор директории для хранения бэкапов backup-manager

Далее, необходимо прописать все директории для которых нужно делать бэкапы, для меня важны лишь 2 директории:

выбор директорий для создания бэкапов backup-manager

выбор директорий для создания бэкапов backup-manager

После установки можно внести изменения в конфигурационный файл:

# vim /etc/backup-manager.conf

В данном файле, есть комментарии и они помогают в настройке данной утилиты, но я вынес основные строки для изменения (редактирования):

# Говорит утилите чтобы она запускалась каждый день 
export BM_DAILY_CRON="true"
# Путь, где будут лежать ваши бэкапы
export BM_REPOSITORY_ROOT="/var/backup-manager"
# Папка для временных файлов, указываем путь
export BM_TEMP_DIR="/var/tmp" 
#export BM_ARCHIVE_FREQUENCY="daily"
# Создание бэкапов и так же всех БД mysql
export BM_ARCHIVE_METHOD="tarball-incremental mysql"
# Путь без пробелов в названии, у меня будет создаваться бэкапы etc и home:
export BM_TARBALL_DIRECTORIES="/etc /home"
#ИЛИ
# Можно так же использовать массив, в нем прописываем нужны папки для бэкапов:
declare -a BM_TARBALL_TARGETS
BM_TARBALL_TARGETS[0]="/etc"
BM_TARBALL_TARGETS[1]="/home"
BM_TARBALL_TARGETS[2]="/root"
export BM_TARBALL_TARGETS

# Настройка для mysql. Я ее использую, так же есть и др БД
# Прописываем пользователя от которого будет создаваться бэкап БД, у меня это root 
export BM_MYSQL_ADMINLOGIN="root"
# И пароль для пользователя, у меня это root
export BM_MYSQL_ADMINPASS="SeCuRePaSsWoRd"
# Прописываем хост, на котором работает mysql
export BM_MYSQL_HOST="localhost"
# Прописываем порт на котором работает сервер БД mysql
export BM_MYSQL_PORT="3306"

Это не весь конфиг, а только основная его часть, остальное я не трогал и оставил все как есть. Следующим действием я проверю работает ли backup-manager корректно (создает ли бэкапы), для этого запустим его из командной строки и проверим результат:

# backup-manager -v

/var/backup-manager/debian-etc.20150810.master.tar.gz: ok (2M, a11380fc4b446eeee928b93e5688b6b3)
/var/backup-manager/debian-home.20150810.master.tar.gz: ok (10M, d1c596ba77b74d52b4f33f9537b4f3a0)
/var/backup-manager/debian-root.20150810.master.tar.gz: ok (1M, 2cd19c3cba82c721b4ad53c19ec338f3)
Creating a default MySQL client configuration file: /root/.backup-manager_my.cnf
/var/backup-manager/debian-all-mysql-databases.20150810.sql.bz2: ok (2M, 2458cd46a0124328a31c8160e1ee364d)
Error reported by backup-manager-upload for method "scp", check "/var/tmp/bmu-log.VGW6BW".

Проверим наличие бекапов:

# ls -l /var/backup-manager/

total 11696
-rw-rw---- 1 root root 284 Aug 10 05:17 debian-20150810.md5
-rw-rw---- 1 root root 1150009 Aug 10 05:17 debian-all-mysql-databases.20150810.sql.bz2
-rw-rw---- 1 root root 1340334 Aug 10 05:17 debian-etc.20150810.master.tar.gz
-rw------- 1 root root 64020 Aug 10 05:17 debian-etc.incremental.bin
-rw-rw---- 1 root root 9373958 Aug 10 05:17 debian-home.20150810.master.tar.gz
-rw------- 1 root root 26494 Aug 10 05:17 debian-home.incremental.bin
-rw-rw---- 1 root root 2015 Aug 10 05:17 debian-root.20150810.master.tar.gz
-rw------- 1 root root 382 Aug 10 05:17 debian-root.incremental.bin

И так, видно что все работает хорошо и бэкапы созданы. Утилита backup-manager будет выполнять создание бэкапов 1 раз в день, т.к установлена опция BM_DAILY_CRON=»true» в конфиге. Собственно бэкапы создаются и теперь нужно настроить чтобы они отправлялись в Dropbox.

Я крайне рекомендую создать аккаунт в Dropbox для сохранения всех бэкапов. После регистрации,  необходимо скачать и установить клиент для работы dropbox на сервер.

Определяем разрядность своей ОС, для этого есть команда:

# uname -a

Для 64-битных ОС, используйте:

# wget -O - "http://www.dropbox.com/download/?plat=lnx.x86_64" | tar xvzf - -C /root

Для 32-битных ОС, используйте:

# wget -O - "http://www.dropbox.com/download/?plat=lnx.x86" | tar xvzf - -C /root

После такой установки, необходимо произвести авторизацию чтобы начать работать с Dropbox, для этого существует скрипт который стоит запустить:

# /root/.dropbox-dist/dropboxd

Нужно авторизоваться в сам DropBox. Далее, я нашел готовое решение для запуска Dropbox, для этого скачиваем и выставляем права на готовый скрипт:

# wget -O /etc/init.d/dropbox "https://gist.github.com/bezumkin/6712351/raw/108fc8af551cb4fdf7cdd08b891a45f405d283dc/dropbox" && sudo chmod +x /etc/init.d/dropbox

ВНИМАНИЕ! Нужно заменить в данном скрипте (который находится в /etc/init.d/dropbox) пользователя от которого будут запущен дропбокс, а так же юзера от которого он будет работать (заменяем «user1» и «user2» на свои). Незабываем сохраниться и так же, добавим данный скрипт ( службу) в автозагрузку ОС:

# update-rc.d dropbox defaults 6

И так, все готово, теперь пришло время запуска:

# service dropbox start

У Dropbox существует консольная утилиты — dropbox.py, я ее тоже скачаю т.к она необходима:

# wget http://www.dropbox.com/download?dl=packages/dropbox.py -O /root/.dropbox-dist/dropbox.py && chmod +x /root/.dropbox-dist/dropbox.py

Для помощи, используем:

# /root/.dropbox-dist/dropbox.py help

Чтобы все бэкапы автоматически подгружались в dropbox необходимо выполнить линковку для каталогов:

# ln -s /var/backup-manager /root/Dropbox/backup

Чтобы запустить клиентскую часть, используйте:

# /root/.dropbox-dist/dropboxd &

Открываем в браузере ваш аккаунт в dropbox и смотрим бекапы:

dropbox в бекапы

dropbox в бекапы

Моя тема «Сохраняем все резервные копии в Dropbox» завершена. Скоро будет статья как можно создать подобные бэкапы в Google Drive/Yandex.Диск.

 

The post Сохраняем все резервные копии в Dropbox first appeared on linux-notes.org.]]>
https://linux-notes.org/sohranyaem-vse-rezervny-e-kopii-v-dropbox/feed/ 1