FranGarcia.me (Posts about logcollector)
https://www.frangarcia.me/categories/logcollector.atom
2023-07-01T22:22:34Z
Fran Garcia
Nikola
RHV 4.2: Using rhv-log-collector-analyzer to assess your virtualization environment
https://www.frangarcia.me/posts/rhv-42-using-rhv-log-collector-analyzer-to-assess-your-virtualization-environment/
2018-11-19T22:15:39+01:00
2018-11-19T22:15:39+01:00
Fran Garcia
<p>RHV 4.2 includes a tool that allows to quickly analyze your RHV environment. It
bases its analysis in either a <a href="https://access.redhat.com/solutions/61546">logcollector</a>
report (sosreport and others), or it can connect live to you environment and
generate some nice JSON or HTML output.</p>
<hr>
<p><strong>NOTE</strong> : This article is deprecated and is only left for historical reasons.</p>
<p><code>rhv-log-collector-analyzer</code> now only supports live reporting, so use the method
<code>rhv-log-collector-analyzer --live</code> to grab a snapshot of your deployment and
verify its status.</p>
<hr>
<p>You'll find it already installed in RHV 4.2 , and gathering a report is as easy
as:</p>
<div class="code"><pre class="code literal-block"><span class="c1"># rhv-log-collector-analyzer --live</span>
Generating<span class="w"> </span>reports:
<span class="o">===================</span>
Generated<span class="w"> </span>analyzer_report.html
</pre></div>
<p>If you need to assess an existing logcollector report on a new system that
never had a running RHV-Manager, things get a bit more complicated:</p>
<div class="code"><pre class="code literal-block">root@localhost<span class="w"> </span><span class="c1"># yum install -y ovirt-engine</span>
root@localhost<span class="w"> </span><span class="c1"># su - postgres</span>
postgres@localhost<span class="w"> </span>~<span class="w"> </span><span class="c1"># source scl_source enable rh-postgresql95</span>
postgres@localhost<span class="w"> </span>~<span class="w"> </span><span class="c1"># cd /tmp</span>
postgres@localhost<span class="w"> </span>/tmp<span class="w"> </span><span class="c1"># time rhv-log-collector-analyzer /tmp/sosreport-LogCollector-20181106134555.tar.xz</span>
Preparing<span class="w"> </span>environment:
<span class="o">======================</span>
Temporary<span class="w"> </span>working<span class="w"> </span>directory<span class="w"> </span>is<span class="w"> </span>/tmp/tmp.do6qohRDhN
Unpacking<span class="w"> </span>postgres<span class="w"> </span>data.<span class="w"> </span>This<span class="w"> </span>can<span class="w"> </span>take<span class="w"> </span>up<span class="w"> </span>to<span class="w"> </span>several<span class="w"> </span>minutes.
sos-report<span class="w"> </span>extracted<span class="w"> </span>into:<span class="w"> </span>/tmp/tmp.do6qohRDhN/unpacked_sosreport
pgdump<span class="w"> </span>extracted<span class="w"> </span>into:<span class="w"> </span>/tmp/tmp.do6qohRDhN/pg_dump_dir
Welcome<span class="w"> </span>to<span class="w"> </span>unpackHostsSosReports<span class="w"> </span>script!
Extracting<span class="w"> </span>sosreport<span class="w"> </span>from<span class="w"> </span>hypervisor<span class="w"> </span>HYPERVISOR1<span class="w"> </span><span class="k">in</span><span class="w"> </span>/tmp/ovirt-log-collector-analyzer-hosts/HYPERVISOR1
Extracting<span class="w"> </span>sosreport<span class="w"> </span>from<span class="w"> </span>hypervisor<span class="w"> </span>HYPERVISOR2<span class="w"> </span><span class="k">in</span><span class="w"> </span>/tmp/ovirt-log-collector-analyzer-hosts/HYPERVISOR2
Extracting<span class="w"> </span>sosreport<span class="w"> </span>from<span class="w"> </span>hypervisor<span class="w"> </span>HYPERVISOR3<span class="w"> </span><span class="k">in</span><span class="w"> </span>/tmp/ovirt-log-collector-analyzer-hosts/HYPERVISOR3
Extracting<span class="w"> </span>sosreport<span class="w"> </span>from<span class="w"> </span>hypervisor<span class="w"> </span>HYPERVISOR4<span class="w"> </span><span class="k">in</span><span class="w"> </span>/tmp/ovirt-log-collector-analyzer-hosts/HYPERVISOR4
Creating<span class="w"> </span>a<span class="w"> </span>temporary<span class="w"> </span>database<span class="w"> </span><span class="k">in</span><span class="w"> </span>/tmp/tmp.do6qohRDhN/postgresDb/pgdata.<span class="w"> </span>Log<span class="w"> </span>of<span class="w"> </span>initdb<span class="w"> </span>is<span class="w"> </span><span class="k">in</span><span class="w"> </span>/tmp/tmp.do6qohRDhN/initdb.log
WARNING:<span class="w"> </span>enabling<span class="w"> </span><span class="s2">"trust"</span><span class="w"> </span>authentication<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nb">local</span><span class="w"> </span>connections
You<span class="w"> </span>can<span class="w"> </span>change<span class="w"> </span>this<span class="w"> </span>by<span class="w"> </span>editing<span class="w"> </span>pg_hba.conf<span class="w"> </span>or<span class="w"> </span>using<span class="w"> </span>the<span class="w"> </span>option<span class="w"> </span>-A,<span class="w"> </span>or
--auth-local<span class="w"> </span>and<span class="w"> </span>--auth-host,<span class="w"> </span>the<span class="w"> </span>next<span class="w"> </span><span class="nb">time</span><span class="w"> </span>you<span class="w"> </span>run<span class="w"> </span>initdb.
LOG:<span class="w"> </span>redirecting<span class="w"> </span>log<span class="w"> </span>output<span class="w"> </span>to<span class="w"> </span>logging<span class="w"> </span>collector<span class="w"> </span>process
HINT:<span class="w"> </span>Future<span class="w"> </span>log<span class="w"> </span>output<span class="w"> </span>will<span class="w"> </span>appear<span class="w"> </span><span class="k">in</span><span class="w"> </span>directory<span class="w"> </span><span class="s2">"pg_log"</span>.
Importing<span class="w"> </span>the<span class="w"> </span>dump<span class="w"> </span>into<span class="w"> </span>a<span class="w"> </span>temporary<span class="w"> </span>database.<span class="w"> </span>Log<span class="w"> </span>of<span class="w"> </span>the<span class="w"> </span>restore<span class="w"> </span>process<span class="w"> </span>is<span class="w"> </span><span class="k">in</span><span class="w"> </span>/tmp/tmp.do6qohRDhN/db-restore.log
Generating<span class="w"> </span>reports:
<span class="o">===================</span>
Generated<span class="w"> </span>analyzer_report.html
Cleaning<span class="w"> </span>up:
<span class="o">============</span>
Stopping<span class="w"> </span>temporary<span class="w"> </span>database
Removing<span class="w"> </span>temporary<span class="w"> </span>directory<span class="w"> </span>/tmp/tmp.do6qohRDhN
</pre></div>
<p>You'll find a <code>analyzer_report.html</code> file in your current working directory. It
can be reviews with a text-only browser such as <code>lynx</code>/<code>links</code> , or opened
with a proper full-blown browser.</p>
<h2>Bonus track</h2>
<p>Sometimes it can also be helpful to check the database dump that is included
in the logcollector report. In order to do that, you can do something like:</p>
<p>Review pg_dump_dir in the log above: <code>/tmp/tmp.do6qohRDhN/pg_dump_dir</code> .</p>
<p>Initiate a new postgres instance as follows :</p>
<div class="code"><pre class="code literal-block">postgres@localhost<span class="w"> </span>$<span class="w"> </span><span class="nb">source</span><span class="w"> </span>scl_source<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>rh-postgresql95
postgres@localhost<span class="w"> </span>$<span class="w"> </span><span class="nb">export</span><span class="w"> </span><span class="nv">PGDATA</span><span class="o">=</span>/tmp/foo
postgres@localhost<span class="w"> </span>$<span class="w"> </span>initdb<span class="w"> </span>-D<span class="w"> </span><span class="si">${</span><span class="nv">PGDATA</span><span class="si">}</span><span class="w"> </span>
postgres@localhost<span class="w"> </span>$<span class="w"> </span>/opt/rh/rh-postgresql95/root/usr/libexec/postgresql-ctl<span class="w"> </span>start<span class="w"> </span>-D<span class="w"> </span><span class="si">${</span><span class="nv">PGDATA</span><span class="si">}</span><span class="w"> </span>-s<span class="w"> </span>-w<span class="w"> </span>-t<span class="w"> </span><span class="m">30</span><span class="w"> </span><span class="p">&</span>
postgres@localhost<span class="w"> </span>$<span class="w"> </span>psql<span class="w"> </span>-c<span class="w"> </span><span class="s2">"create database testengine"</span>
postgres@localhost<span class="w"> </span>$<span class="w"> </span>psql<span class="w"> </span>-c<span class="w"> </span><span class="s2">"create schema testengine"</span>
postgres@localhost<span class="w"> </span>$<span class="w"> </span>psql<span class="w"> </span>testengine<span class="w"> </span><<span class="w"> </span>/tmp/tmp.*/pg_dump_dir/restore.sql
</pre></div>
<p>Happy hacking!</p>