検索条件
全7件
(2/2ページ)
| Env | ver |
|---|---|
| nginx | 1.26.1 |
| Apache2 | 2.4.58 |
| PostgreSQL | 16.13 |
| Redis | 7.0.15 |
| Mastodon | 4.5.9 |
| Prometheus | 3.5.0 |
# 取得
wget https://github.com/Lusitaniae/apache_exporter/releases/download/v1.0.12/apache_exporter-1.0.12.linux-amd64.tar.gz
tar xvfz apache_exporter-1.0.12.linux-amd64.tar.gz
# binを配置
sudo cp apache_exporter-1.0.12.linux-amd64/apache_exporter /usr/local/bin/
ls -la /usr/local/bin/ | grep apache_exporter
# デーモン作成
cat <<'EOF' | sudo tee /etc/systemd/system/apache_exporter.service
[Unit]
Description=Prometheus Apache Exporter
After=network.target
[Service]
Type=simple
User=prometheus
Group=prometheus
WorkingDirectory=/var/lib/prometheus
ExecStart=/usr/local/bin/apache_exporter --scrape_uri=http://[::]:ここにポート番号/server-status?auto
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
# デーモンの有効化
sudo systemctl daemon-reload
sudo systemctl enable --now apache_exporter
# 起動確認
curl "http://[::1]:9117/metrics"
# 掃除
rm -Rf apache_exporter-1.0.12.linux-amd64 apache_exporter-1.0.12.linux-amd64.tar.gz
# 取得
wget https://github.com/prometheus-community/postgres_exporter/releases/download/v0.19.1/postgres_exporter-0.19.1.linux-amd64.tar.gz
tar xvfz postgres_exporter-0.19.1.linux-amd64.tar.gz
# binを配置
sudo cp postgres_exporter-0.19.1.linux-amd64/postgres_exporter /usr/local/bin/
ls -la /usr/local/bin/ | grep postgres_exporter
# 監視ユーザーの作成
sudo -u postgres psql
CREATE USER postgres_exporter WITH PASSWORD 'ここにパスワード';
ALTER USER postgres_exporter SET SEARCH_PATH TO postgres_exporter,pg_catalog;
GRANT pg_monitor TO postgres_exporter;
quit
# 監視情報の作成
echo 'DATA_SOURCE_NAME="postgresql://postgres_exporter:ここにパスワード@localhost:5432/postgres?sslmode=disable"' | sudo tee /etc/default/postgres_exporter
sudo chown root:root /etc/default/postgres_exporter
sudo chmod 600 /etc/default/postgres_exporter
# デーモン作成
cat <<'EOF' | sudo tee /etc/systemd/system/postgres_exporter.service
[Unit]
Description=Prometheus PostgreSQL Exporter
After=network.target postgresql.service
Wants=postgresql.service
[Service]
Type=simple
User=prometheus
Group=prometheus
WorkingDirectory=/var/lib/prometheus
EnvironmentFile=/etc/default/postgres_exporter
ExecStart=/usr/local/bin/postgres_exporter \
--web.listen-address=[::]:9187
Restart=on-failure
RestartSec=5
EOF
# デーモンの有効化
sudo systemctl daemon-reload
sudo systemctl enable --now postgres_exporter
# 起動確認
curl "http://[::1]:9187/metrics"
# 掃除
rm -Rf postgres_exporter-0.19.1.linux-amd64 postgres_exporter-0.19.1.linux-amd64.tar.gz
# 取得
wget https://github.com/oliver006/redis_exporter/releases/download/v1.82.0/redis_exporter-v1.82.0.linux-amd64.tar.gz
tar xvfz redis_exporter-v1.82.0.linux-amd64.tar.gz
# binを配置
sudo cp redis_exporter-v1.82.0.linux-amd64/redis_exporter /usr/local/bin/
ls -la /usr/local/bin/ | grep redis_exporter
# デーモン作成
cat <<'EOF' | sudo tee /etc/systemd/system/redis_exporter.service
[Unit]
Description=Prometheus Redis Exporter
After=network.target
[Service]
Type=simple
User=prometheus
Group=prometheus
WorkingDirectory=/var/lib/prometheus
ExecStart=/usr/local/bin/redis_exporter --redis.addr=redis://localhost:6379
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
# デーモンの有効化
sudo systemctl daemon-reload
sudo systemctl enable --now redis_exporter
# 起動確認
curl "http://[::1]:9121/metrics"
# 掃除
rm -Rf redis_exporter-v1.82.0.linux-amd64 redis_exporter-v1.82.0.linux-amd64.tar.gz
.env.productionに以下を追加
MASTODON_PROMETHEUS_EXPORTER_ENABLED=true
MASTODON_PROMETHEUS_EXPORTER_SIDEKIQ_DETAILED_METRICS=true
デーモンを作る
cat <<'EOF' | sudo tee /etc/systemd/system/mastodon-prometheus-exporter.service
[Unit]
Description=mastodon-prometheus-exporter
After=network.target
[Service]
Type=simple
User=mastodon
WorkingDirectory=/home/mastodon/live
Environment="RAILS_ENV=production"
ExecStart=/home/mastodon/.rbenv/shims/bundle exec prometheus_exporter -b "::" -p 9394
Restart=always
[Install]
WantedBy=multi-user.target
EOF
# デーモンの有効化
sudo systemctl daemon-reload
sudo systemctl enable --now mastodon-prometheus-exporter
curl "http://[::1]:9394/metrics"
# Streamingはv4でしかlistenしてないので[::1]は諦める
curl "http://localhost:5001/metrics"
Ubuntuのネイティブ環境にPrometheusとGrafanaをIPv6スタックで導入したの続き。
ちまちまやってて記憶が飛びまくってるので抜け漏れがあるかもしれないが、吐き出しておかないと記憶が散逸するので、一度書き留めておく。
LokiとFluentBitを入れてnginxのログをGrafanaで見れるようにする。
ここでは例示のためにLokiのlistenポートは9100とする。
| Env | Ver |
|---|---|
| Ubuntu | 24.04.3 LTS |
| Loki | 3.5.9 |
wget https://github.com/grafana/loki/releases/download/v3.5.9/loki_3.5.9_amd64.deb
sudo dpkg -i loki_3.5.9_amd64.deb
rm loki_3.5.9_amd64.deb
sudo systemctl start loki
systemctl status loki
/etc/loki/config.ymlを開き、IPv6でListenし、ポート番号が9100となるようにする。中身はデフォルトの設定の改編。
auth_enabled: false
server:
http_listen_port: 9100
common:
ring:
instance_addr: "::"
kvstore:
store: inmemory
replication_factor: 1
path_prefix: /tmp/loki
schema_config:
configs:
- from: 2020-05-15
store: tsdb
object_store: filesystem
schema: v13
index:
prefix: index_
period: 24h
storage_config:
filesystem:
directory: /tmp/loki/chunks
| Env | Ver |
|---|---|
| Ubuntu | 24.04.3 LTS |
| FluentBit | 4.2.2 |
# FluentBitのGPGキーをキーリングに追加
sudo sh -c 'curl https://packages.fluentbit.io/fluentbit.key | gpg --dearmor > /usr/share/keyrings/fluentbit-keyring.gpg'
# OSコードの取得
codename=$(grep -oP '(?<=VERSION_CODENAME=).*' /etc/os-release 2>/dev/null || lsb_release -cs 2>/dev/null)
# OSコードをもとにAPTリストへ追加
echo "deb [signed-by=/usr/share/keyrings/fluentbit-keyring.gpg] https://packages.fluentbit.io/ubuntu/$codename $codename main" | sudo tee /etc/apt/sources.list.d/fluent-bit.list
# パッケージリストの更新
sudo apt update
# Fluent Bitのインストール
sudo apt install fluent-bit
# DB配置場所の作成
/var/lib/fluent-bit/
# デーモンの開始
sudo systemctl start fluent-bit
# デーモンの起動確認
systemctl status fluent-bit
/etc/fluent-bit/fluent-bit.confを開きファイル末尾に以下を足す。
# nginx access log
[INPUT]
name tail
path /var/log/nginx/access.log
parser json
tag nginx.access
db /var/lib/fluent-bit/nginx-access.db
refresh_interval 5
# nginx error log
[INPUT]
name tail
path /var/log/nginx/error.log
tag nginx.error
db /var/lib/fluent-bit/nginx-error.db
refresh_interval 5
# Loki へ出力
[OUTPUT]
name loki
match nginx.*
host ::1
port 9100
labels job=nginx, log_type=$TAG[1]
今回の設定についての説明であって汎用性は考慮していない。
[INPUT], [OUTPUT]
name
taillokipath
tag
db
match
host
port
labels
| Env | Ver |
|---|---|
| Ubuntu | 24.04.3 LTS |
| nginx | 1.26.1 |
nginxの標準ログでは得られるものが少ないので色々見れるようにする。ついでにjson形式にする。
/etc/nginx/nginx.confを開きログ設定を以下のようにする
log_format main_json escape=json
'{'
'"time":"$time_iso8601",'
'"remote_addr":"$remote_addr",'
'"remote_port":"$remote_port",'
'"request_id":"$request_id",'
'"scheme":"$scheme",'
'"server_name":"$server_name",'
'"server_port":"$server_port",'
'"request_method":"$request_method",'
'"request_uri":"$request_uri",'
'"server_protocol":"$server_protocol",'
'"status":$status,'
'"body_bytes_sent":$body_bytes_sent,'
'"bytes_sent":$bytes_sent,'
'"request_length":$request_length,'
'"request_time":$request_time,'
'"http_referer":"$http_referer",'
'"http_user_agent":"$http_user_agent",'
'"ssl_protocol":"$ssl_protocol",'
'"ssl_cipher":"$ssl_cipher",'
'"connection":"$connection",'
'"connection_requests":"$connection_requests"'
'}';
access_log /var/log/nginx/access.log main_json;
sudo systemctl restart nginx
| Env | Ver |
|---|---|
| Ubuntu | 24.04.3 LTS |
| Grafana | v12.1.1 |
http://[::]:9100で指定する