munin

muninのpluginであるpostgres_querylength_において、「Oldest query」の項目が着々と増える事象が発生する

muninのpluginであるpostgres_querylength_において、「Oldest query」の項目が着々と増える事象が発生しています。

Screenshot_1
契機は、おそらく、PostgreSQLのVerを11.12から11.13にあげたとき…だと思っています。何をもって「Oldest query」を判定しているかについて、pluginの内容を確認したところ以下のクエリの結果でした。
SELECT 'query',COALESCE(max(extract(epoch FROM CURRENT_TIMESTAMP-query_start)),0) FROM pg_stat_activity WHERE state NOT LIKE 'idle%';
このクエリを
SELECT *,COALESCE(extract(epoch FROM CURRENT_TIMESTAMP-query_start),0) FROM pg_stat_activity WHERE state NOT LIKE 'idle%' ;
とかえて実行してみたところ、
ap2=# SELECT pid,usename,application_name,query_start,wait_event_type,wait_event,state,query,backend_type,COALESCE(extract(epoch FROM CURRENT_TIMESTAMP-query_start),0) FROM pg_stat_activity WHERE state NOT LIKE 'idle%' ;
-[ RECORD 2 ]----+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
pid              | 1171010
usename          | replication_user
application_name | walreceiver
query_start      | 2021-08-15 09:43:10.596396+09
wait_event_type  | Activity
wait_event       | WalSenderMain
state            | active
query            | START_REPLICATION SLOT "replication_slot_for_gmo" C7/F3000000 TIMELINE 26
backend_type     | walsender
coalesce         | 740.883447
-[ RECORD 3 ]----+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
pid              | 1171187
usename          | replication_user
application_name | sby
query_start      | 2021-08-15 09:44:00.86581+09
wait_event_type  | Activity
wait_event       | WalSenderMain
state            | active
query            | START_REPLICATION SLOT "replication_slot_for_local" C7/F3000000 TIMELINE 26
backend_type     | walsender
coalesce         | 690.614033
が返ってきました。
レプリケーションをするための「START_REPLICATION SLOT」ではじまるクエリが終わらないので、このクエリを「Oldest query」として、「CURRENT_TIMESTAMP-query_start」の値をmuninが表示する…ということでした。

今までは「Oldest query」は表示されていなかったので、START_REPLICATION SLOTではじまるクエリは実行されたらすぐに処理を終えて終了していたのだと思うのですが、何かを契機に「START_REPLICATION SLOT」が終了しなくなったのだと思います。
レプリケーションができていないわけではなく、ちゃんとレプリケーションできているので、今のところ実害はないように見えます。
$ psql -p 5432 -U postgres -c "select client_addr,state,sync_state from pg_stat_replication;"
  client_addr   |   state   | sync_state
----------------+-----------+------------
 ***.***.***.***| streaming | async
 ***.***.***.***| streaming | async
(2 rows)

ただ、マニュアルを見ると「START_REPLICATION SLOT」は
サーバに対して、XXX/XXXWAL時点から、論理的レプリケーションのWALストリームを開始するよう指示します。
例えば、要求されたWALがすでに回収された場合、サーバはエラーを返します。
サーバが、例えば、要求されたWALセクションがすでに回収されている場合、エラーを返すことがありえます。
成功時サーバはCopyBothResponseメッセージで応答し、フロントエンドに対するWALストリームを開始します。
とあるので、なんらかの応答が返ってきてクエリは終了するはず…だと思っています。

slotが悪さをしている可能性を疑い
SELECT pg_drop_replication_slot('replication_slot_for_local');
をして、再度、pg_create_physical_replication_slotしてみましたが、状況は変わりませんでした。

何かご存知の方がいらっゃいましたら、お知らせいただけると幸いです。

Muninのグラフが表示されない

新しく借用したサーバーの初期設定を終えた後の動作確認でMuninのグラフが表示されず404となりました。
systemctl start muninに失敗しています。
[root@local_2 munin]# systemctl status munin
● munin.service - Munin server to collect data from nodes
   Loaded: loaded (/usr/lib/systemd/system/munin.service; static; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sat 2020-10-17 15:55:01 JST; 3min 41s ago
     Docs: man:munin-cron(8)
  Process: 75089 ExecStart=/usr/bin/munin-cron (code=exited, status=1/FAILURE)
 Main PID: 75089 (code=exited, status=1/FAILURE)

10月 17 15:55:00 local_2 systemd[1]: Started Munin server to collect data from nodes.
10月 17 15:55:01 local_2 munin-cron[75089]: [FATAL] There is nothing to do here, since there are no nodes with any plugins.  Please refer to http://munin-monitoring.org/wiki/FAQ_no_graphs at /usr/share/munin/munin-html line 38.
10月 17 15:55:01 local_2 systemd[1]: munin.service: Main process exited, code=exited, status=1/FAILURE
10月 17 15:55:01 local_2 systemd[1]: munin.service: Failed with result 'exit-code'.
http://munin-monitoring.org/wiki/FAQ_no_graphs
を参照すると
# su - munin --shell=/bin/bash
$ /usr/share/munin/munin-update --nofork --debug
を実行して出力されるメッセージを確認する手順が書かれているので確認します。
[munin@local_2 ~]$ /usr/share/munin/munin-update --nofork --debug
2020/10/17 15:59:40 [DEBUG] Creating new lock file /var/run/munin/munin-update.lock
2020/10/17 15:59:40 [DEBUG] Creating lock : /var/run/munin/munin-update.lock succeeded
2020/10/17 15:59:40 [INFO]: Starting munin-update
2020/10/17 15:59:40 [DEBUG] Creating new lock file /var/run/munin/munin-localhost-localhost.lock
2020/10/17 15:59:40 [DEBUG] Creating lock : /var/run/munin/munin-localhost-localhost.lock succeeded
2020/10/17 15:59:40 [DEBUG] Reading state for localhost-localhost in /var/lib/munin/state-localhost-localhost.storable
2020/10/17 15:59:40 [INFO] starting work in 75694 for localhost/127.0.0.1:4949.
2020/10/17 15:59:40 [INFO] node localhost advertised itself as local_2 instead.
2020/10/17 15:59:40 TLS set to "disabled".
2020/10/17 15:59:40 [DEBUG] Negotiating capabilities
2020/10/17 15:59:40 [DEBUG] Writing to socket: "cap multigraph dirtyconfig
".
2020/10/17 15:59:40 [DEBUG] Node says /cap multigraph dirtyconfig/
2020/10/17 15:59:40 [DEBUG] Writing to socket: "list local_2
".
2020/10/17 15:59:40 [WARNING] Config node localhost listed no services for local_2, (advertised as local_2).  Please see http://munin-monitoring.org/wiki/FAQ_no_graphs for further information.
新しく設定したサーバーのホスト名は「local_2」です。
muninが監視するのは127.0.0.1(localhost)としていますが、local_2が127.0.0.1としてリストアップされていないとのことです。
http://munin-monitoring.org/wiki/FAQ_no_graphs
の手順にしたがって、/etc/hostsを修正します。
[munin@local_2 ~]$ cat /etc/hosts
127.0.0.1   localhost local_2
無事、グラフが表示されるようなりました。

[FATAL] There is nothing to do here, since there are no nodes with any plugins. Please refer to http://munin-monitoring.org/wiki/FAQ_no_graphs at /usr/share/munin/munin-html line 40

muninをverupしたら、グラフが更新されなくなりました。

[契機]
munin-node-2.0.33-1.el6.noarchからmunin-node-2.0.40-2.el6.noarchにverupしたとき

[対処]
/etc/munin/munin.confの全行がコメントアウトされているのを確認したため、muninが動くのに必要な行のコメントアウトを解除したり、書き加えたりした。

[考えたこと]
おそらくverupの際に、既存の/etc/munin/munin.confを上書きしたのかと思います。
そして、上書きしたmunin.confはすべてコメントアウトされているファイルだったのだと思います。
※思いますと書いているのは、事前の状態が分からないからです。

muninをインストールしたとき、/etc/munin/munin.confを書き換えずとも動いたので、munin-node-2.0.40-2.el6.noarchに組み込まれているmunin.confは全行がコメントアウトされている…のだと思います。
※確かめていません

yumでアップデートしている際のメッセージは
warning: /etc/httpd/conf.d/munin.conf saved as /etc/httpd/conf.d/munin.conf.rpmsave
だけでした。

[エラーメッセージ]
/var/log/munin/munin-cgi-html.log
に以下のメッセージが記録されていました。

[FATAL] There is nothing to do here, since there are no nodes with any plugins.  Please refer to http://munin-monitoring.org/wiki/FAQ_no_graphs at /usr/share/munin/munin-html line 40


記事検索