<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[てるブログ]]></title><description><![CDATA[つっこみ大歓迎]]></description><link>https://blog.kteru.net/</link><image><url>https://blog.kteru.net/favicon.png</url><title>てるブログ</title><link>https://blog.kteru.net/</link></image><generator>Ghost 5.82</generator><lastBuildDate>Fri, 24 Apr 2026 10:21:04 GMT</lastBuildDate><atom:link href="https://blog.kteru.net/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[nginx 1.19.4 以降で ChaCha20-Poly1305 の運用が現実的になった件]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x306F;&#x3058;&#x3081;&#x306B;</h2>
<p>&#x5148;&#x65E5;&#x3001;nginx 1.19.4 &#x304C;&#x30EA;&#x30EA;&#x30FC;&#x30B9;&#x3055;&#x308C;&#x3001;ssl_conf_command &#x30C7;&#x30A3;&#x30EC;&#x30AF;&#x30C6;&#x30A3;&#x30D6;&#x304C;&#x8FFD;&#x52A0;&#x3055;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002;<br>
&#x3053;&#x308C;&#x306B;&#x3088;&#x308A;&#x3001;ChaCha20-Poly1305 &#x3092;&#x4F7F;&#x3063;&#x305F;&#x6697;</p>]]></description><link>https://blog.kteru.net/chacha20-poly1305-with-nginx-ssl-conf-command/</link><guid isPermaLink="false">5fa8cf31c465f807b32343aa</guid><category><![CDATA[nginx]]></category><category><![CDATA[OpenSSL]]></category><category><![CDATA[TLS]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Mon, 09 Nov 2020 12:12:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x306F;&#x3058;&#x3081;&#x306B;</h2>
<p>&#x5148;&#x65E5;&#x3001;nginx 1.19.4 &#x304C;&#x30EA;&#x30EA;&#x30FC;&#x30B9;&#x3055;&#x308C;&#x3001;ssl_conf_command &#x30C7;&#x30A3;&#x30EC;&#x30AF;&#x30C6;&#x30A3;&#x30D6;&#x304C;&#x8FFD;&#x52A0;&#x3055;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002;<br>
&#x3053;&#x308C;&#x306B;&#x3088;&#x308A;&#x3001;ChaCha20-Poly1305 &#x3092;&#x4F7F;&#x3063;&#x305F;&#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8;&#x306E;&#x904B;&#x7528;&#x304C;&#x73FE;&#x5B9F;&#x7684;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<h2 id="chacha20poly1305">ChaCha20-Poly1305 &#x306E;&#x6982;&#x8981;</h2>
<p><a href="https://tools.ietf.org/html/rfc7905?ref=blog.kteru.net">RFC 7905</a> (2016/06) &#x3088;&#x308A;&#x3001;TLS &#x306B;&#x304A;&#x3051;&#x308B; ChaCha20-Poly1305 &#x306E;&#x5229;&#x7528;&#x304C;&#x6A19;&#x6E96;&#x5316;&#x3055;&#x308C;&#x3001;&#x69D8;&#x3005;&#x306A;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x3067;&#x5229;&#x7528;&#x53EF;&#x80FD;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;<br>
OpenSSL &#x3060;&#x3068; 1.1.0 &#x4EE5;&#x964D;&#x3067;&#x5229;&#x7528;&#x53EF;&#x80FD;&#x3067;&#x3059;&#x3002;</p>
<p>ChaCha20-Poly1305 &#x306F;&#x3001;&#x30B9;&#x30C8;&#x30EA;&#x30FC;&#x30E0;&#x6697;&#x53F7;&#x3067;&#x3042;&#x308B; ChaCha20 &#x3068;&#x30E1;&#x30C3;&#x30BB;&#x30FC;&#x30B8;&#x8A8D;&#x8A3C;&#x7B26;&#x53F7;&#x3067;&#x3042;&#x308B; Poly1305 &#x3092;&#x7D44;&#x307F;&#x5408;&#x308F;&#x305B;&#x305F;&#x3001;&#x8A8D;&#x8A3C;&#x4ED8;&#x304D;&#x6697;&#x53F7;&#x3067;&#x3059;&#x3002;</p>
<p>ChaCha20-Poly1305 &#x306F;&#x30BD;&#x30D5;&#x30C8;&#x30A6;&#x30A7;&#x30A2;&#x51E6;&#x7406;&#x306B;&#x5411;&#x3044;&#x305F;&#x3001;&#x7C21;&#x6F54;&#x306A;&#x30A2;&#x30EB;&#x30B4;&#x30EA;&#x30BA;&#x30E0;&#x3067;&#x3059;&#x3002;<br>
AES &#x306F;&#x30CF;&#x30FC;&#x30C9;&#x30A6;&#x30A7;&#x30A2;&#x51E6;&#x7406; (AES-NI) &#x304C;&#x5229;&#x7528;&#x3067;&#x304D;&#x308B;&#x74B0;&#x5883;&#x3067;&#x306F;&#x3068;&#x3066;&#x3082;&#x9AD8;&#x901F;&#x3067;&#x3059;&#x304C;&#x3001;&#x30BD;&#x30D5;&#x30C8;&#x30A6;&#x30A7;&#x30A2;&#x51E6;&#x7406;&#x306B;&#x304A;&#x3044;&#x3066;&#x306F; ChaCha20-Poly1305 &#x306E;&#x65B9;&#x304C; AES-GCM &#x3088;&#x308A; 3 &#x500D;&#x7A0B;&#x5EA6;&#x6027;&#x80FD;&#x304C;&#x51FA;&#x308B;&#x3088;&#x3046;&#x3067;&#x3059;&#x3002;</p>
<p>&#x3053;&#x306E;&#x3088;&#x3046;&#x306A;&#x6027;&#x8CEA;&#x304B;&#x3089;&#x3001;TLS &#x30AF;&#x30E9;&#x30A4;&#x30A2;&#x30F3;&#x30C8;&#x306B;&#x3088;&#x3063;&#x3066;&#x306F;&#x3001;&#x30CD;&#x30B4;&#x30B7;&#x30A8;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x6642;&#x306B;&#x3053;&#x306E;&#x6027;&#x80FD;&#x3092;&#x8003;&#x616E;&#x3057;&#x305F;&#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8;&#x30EA;&#x30B9;&#x30C8;&#x3092;&#x4F7F;&#x3046;&#x3088;&#x3046;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<h2 id>&#x3053;&#x308C;&#x307E;&#x3067;&#x306E;&#x8AB2;&#x984C;</h2>
<p>TLS &#x306E;&#x30CD;&#x30B4;&#x30B7;&#x30A8;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x306B;&#x304A;&#x3051;&#x308B;&#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8;&#x306F;&#x3001;&#x30AF;&#x30E9;&#x30A4;&#x30A2;&#x30F3;&#x30C8;&#x3068;&#x30B5;&#x30FC;&#x30D0;&#x306E;&#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8;&#x30EA;&#x30B9;&#x30C8;&#x3092;&#x6BD4;&#x8F03;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001;1 &#x3064;&#x306B;&#x6C7A;&#x5B9A;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;<br>
&#x4E00;&#x822C;&#x7684;&#x306A; TLS &#x30B5;&#x30FC;&#x30D0;&#x306F;&#x3001; <strong>&#x30B5;&#x30FC;&#x30D0;&#x5074;&#x306E;&#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8;&#x30EA;&#x30B9;&#x30C8;&#x3092;&#x512A;&#x5148;&#x3057;&#x3066;</strong> &#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8;&#x3092;&#x6C7A;&#x5B9A;&#x3059;&#x308B;&#x3088;&#x3046;&#x306B;&#x8A2D;&#x5B9A;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;<br>
&#x3064;&#x307E;&#x308A;&#x3001;&#x30AF;&#x30E9;&#x30A4;&#x30A2;&#x30F3;&#x30C8;&#x306E;&#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8;&#x30EA;&#x30B9;&#x30C8;&#x3067; AES-GCM &#x307E;&#x305F;&#x306F; ChaCha20-Poly1305 &#x304C;&#x9069;&#x5207;&#x306A;&#x512A;&#x5148;&#x5EA6;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x308B;&#x306E;&#x306B;&#x3001;&#x30B5;&#x30FC;&#x30D0;&#x306E;&#x8A2D;&#x5B9A;&#x306B;&#x3088;&#x308A;&#x6C7A;&#x307E;&#x3063;&#x305F; 1 &#x3064;&#x306B;&#x6C7A;&#x5B9A;&#x3055;&#x308C;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<p>&#x3053;&#x308C;&#x306F;&#x3001;&#x300C;&#x30B5;&#x30FC;&#x30D0;&#x5074;&#x306E;&#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8;&#x30EA;&#x30B9;&#x30C8;&#x3092;&#x512A;&#x5148;&#x3057;&#x3064;&#x3064;&#x3001;&#x7279;&#x5B9A;&#x306E;&#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8; (&#x7279;&#x306B; ChaCha20-Poly1305) &#x306B;&#x3064;&#x3044;&#x3066;&#x306F;&#x30AF;&#x30E9;&#x30A4;&#x30A2;&#x30F3;&#x30C8;&#x306E;&#x63D0;&#x793A;&#x306B;&#x5F93;&#x3046;&#x300D;&#x3068;&#x3044;&#x3063;&#x305F;&#x8A2D;&#x5B9A;&#x3092;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x5BFE;&#x51E6;&#x304C;&#x53EF;&#x80FD;&#x3067;&#x3059;&#x304C;&#x3001;&#x3053;&#x308C;&#x307E;&#x3067; nginx &#x306E;&#x8A2D;&#x5B9A;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x306E;&#x307F;&#x3067;&#x306F;&#x3067;&#x304D;&#x307E;&#x305B;&#x3093;&#x3067;&#x3057;&#x305F;&#x3002;</p>
<h2 id="ssl_conf_command">ssl_conf_command &#x30C7;&#x30A3;&#x30EC;&#x30AF;&#x30C6;&#x30A3;&#x30D6;</h2>
<p>nginx 1.19.4 &#x3067;&#x8FFD;&#x52A0;&#x3055;&#x308C;&#x305F; <a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html?ref=blog.kteru.net#ssl_conf_command">ssl_conf_command &#x30C7;&#x30A3;&#x30EC;&#x30AF;&#x30C6;&#x30A3;&#x30D6;</a> &#x306B;&#x3088;&#x308A;&#x3001;OpenSSL &#x306E;&#x5404;&#x7A2E;&#x8A2D;&#x5B9A;&#x3092;&#x3001; <a href="https://www.openssl.org/docs/man1.1.1/man3/SSL_CONF_cmd.html?ref=blog.kteru.net">SSL_CONF_cmd</a> &#x3092;&#x901A;&#x3057;&#x3066;&#x884C;&#x3046;&#x4E8B;&#x304C;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<p>&#x4E0B;&#x8A18;&#x306E;&#x8A2D;&#x5B9A;&#x3092;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001; <strong>&#x30AF;&#x30E9;&#x30A4;&#x30A2;&#x30F3;&#x30C8;&#x304C; ChaCha20 &#x306E;&#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8;&#x3092;&#x512A;&#x5148;&#x3057;&#x3066;&#x3044;&#x308B;&#x5834;&#x5408;&#x306F;&#x30B5;&#x30FC;&#x30D0;&#x3082;&#x512A;&#x5148;&#x3059;&#x308B;</strong> &#x3068;&#x3044;&#x3046;&#x52D5;&#x4F5C;&#x3092;&#x3055;&#x305B;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<pre><code>ssl_conf_command Options PrioritizeChaCha;
</code></pre>
<p>&#x3053;&#x306E;&#x8A2D;&#x5B9A;&#x3092;&#x884C;&#x3044;&#x3001;Qualys SSL Labs SSL Server Test &#x3092;&#x884C;&#x3046;&#x3068;&#x3001;&#x4E0B;&#x8A18;&#x306E;&#x3088;&#x3046;&#x306A;&#x8868;&#x793A;&#x304C;&#x73FE;&#x308C;&#x307E;&#x3059;&#x3002;</p>
<p><img src="https://blog.kteru.net/content/images/2020/11/preferred_chacha20.png" alt="ChaCha20 &#x306B;&#x95A2;&#x3059;&#x308B;&#x8868;&#x793A;" loading="lazy"></p>
<p>&#x30D0;&#x30C3;&#x30C1;&#x30EA;&#x3067;&#x3059;&#x306D;&#x3002;</p>
<p>(&#x3061;&#x306A;&#x307F;&#x306B;&#x3001;ssl_conf_command &#x306B;&#x3088;&#x3063;&#x3066;&#x3001;&#x4E0B;&#x8A18;&#x306E;&#x3088;&#x3046;&#x306B; TLSv1.3 &#x306E;&#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8;&#x30EA;&#x30B9;&#x30C8;&#x3082;&#x8A2D;&#x5B9A;&#x304C;&#x53EF;&#x80FD;&#x3067;&#x3059;&#x3002;)</p>
<pre><code>ssl_conf_command Ciphersuites TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384;
</code></pre>
<h2 id>&#x304A;&#x308F;&#x308A;&#x306B;</h2>
<p>nginx &#x306E;&#x8A2D;&#x5B9A;&#x306E;&#x307F;&#x3067;&#x3001;&#x30B5;&#x30FC;&#x30D0;&#x5074;&#x3067;&#x306E; ChaCha20-Poly1305 &#x306E;&#x512A;&#x5148;&#x5EA6;&#x3092;&#x9069;&#x5207;&#x306B;&#x5236;&#x5FA1;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x3063;&#x305F;&#x3053;&#x3068;&#x3067;&#x3001;&#x904B;&#x7528;&#x304C;&#x73FE;&#x5B9F;&#x7684;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<p>nginx 1.20 &#x306E;&#x30EA;&#x30EA;&#x30FC;&#x30B9;&#x304C;&#x697D;&#x3057;&#x307F;&#x3067;&#x3059;&#x306D;&#x3002;</p>
<hr>
<ul>
<li>&#x53C2;&#x8003;
<ul>
<li><a href="https://jovi0608.hatenablog.com/entry/20160404/1459748671?ref=blog.kteru.net">&#x65B0;&#x3057;&#x3044;TLS&#x306E;&#x6697;&#x53F7;&#x65B9;&#x5F0F;ChaCha20-Poly1305 - &#x307C;&#x3061;&#x307C;&#x3061;&#x65E5;&#x8A18;</a></li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Amazon Linux 2 で再起動せずに TCP BBR を有効にする]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x306F;&#x3058;&#x3081;&#x306B;</h2>
<p>Amazon Linux 2 &#x3067; TCP BBR &#x3092;&#x6709;&#x52B9;&#x306B;&#x3059;&#x308B;&#x306B;&#x3042;&#x305F;&#x3063;&#x3066;&#x8ABF;&#x3079;&#x3066;&#x307F;&#x308B;&#x3068;&#x3001;&#x518D;&#x8D77;&#x52D5;&#x3092;&#x4F34;&#x3046;&#x624B;&#x9806;&#x3070;&#x304B;&#x308A;&#x306A;&#x306E;&#x3067;&#x3001;&#x307B;&#x3093;&#x3068;&#x306B;&#x305D;&#x3046;&#x306A;</p>]]></description><link>https://blog.kteru.net/amazon-linux-2-enabling-tcp-bbr-without-reboot/</link><guid isPermaLink="false">5d3517ea838ed56e01df3cd8</guid><category><![CDATA[Network]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Mon, 22 Jul 2019 02:12:16 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x306F;&#x3058;&#x3081;&#x306B;</h2>
<p>Amazon Linux 2 &#x3067; TCP BBR &#x3092;&#x6709;&#x52B9;&#x306B;&#x3059;&#x308B;&#x306B;&#x3042;&#x305F;&#x3063;&#x3066;&#x8ABF;&#x3079;&#x3066;&#x307F;&#x308B;&#x3068;&#x3001;&#x518D;&#x8D77;&#x52D5;&#x3092;&#x4F34;&#x3046;&#x624B;&#x9806;&#x3070;&#x304B;&#x308A;&#x306A;&#x306E;&#x3067;&#x3001;&#x307B;&#x3093;&#x3068;&#x306B;&#x305D;&#x3046;&#x306A;&#x306E;&#x304B;&#x691C;&#x8A3C;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<ul>
<li>&#x691C;&#x8A3C;&#x74B0;&#x5883;
<ul>
<li>OS: Amazon Linux 2 AMI
<ul>
<li>AMI: amzn2-ami-hvm-2.0.20190618-x86_64-gp2 (ami-0c3fd0f5d33134a76)</li>
<li>&#x30AB;&#x30FC;&#x30CD;&#x30EB;: 4.14.123-111.109.amzn2.x86_64</li>
</ul>
</li>
<li>OS: Amazon Linux AMI 2018.03.0
<ul>
<li>AMI: amzn-ami-hvm-2018.03.0.20190611-x86_64-gp2 (ami-04b2d1589ab1d972c)</li>
<li>&#x30AB;&#x30FC;&#x30CD;&#x30EB;: 4.14.123-86.109.amzn1.x86_64</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 id>&#x8A2D;&#x5B9A;&#x65B9;&#x6CD5;</h2>
<p>&#x7D50;&#x8AD6;&#x304B;&#x3089;&#x8A00;&#x3046;&#x3068;&#x3001;&#x518D;&#x8D77;&#x52D5;&#x305B;&#x305A;&#x306B;&#x6709;&#x52B9;&#x306B;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x3067;&#x3059;&#x3002;</p>
<h3 id="sysctl">sysctl &#x306E;&#x8A2D;&#x5B9A;</h3>
<pre><code># sysctl -w net.ipv4.tcp_congestion_control=bbr
# sysctl -w net.core.default_qdisc=fq
</code></pre>
<p>(&#x3082;&#x3061;&#x308D;&#x3093;&#x3001;sysctl.conf &#x306B;&#x3082;&#x66F8;&#x3044;&#x3066;&#x304A;&#x304D;&#x307E;&#x3057;&#x3087;&#x3046;)</p>
<pre><code>### /etc/sysctl.d/bbr.conf
net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = fq
</code></pre>
<ul>
<li>sysctl -w &#x3059;&#x308B;&#x3060;&#x3051;&#x3067;&#x95A2;&#x9023;&#x306E;&#x30AB;&#x30FC;&#x30CD;&#x30EB;&#x30E2;&#x30B8;&#x30E5;&#x30FC;&#x30EB; (tcp_bbr, sch_fq) &#x306F;&#x8AAD;&#x307F;&#x8FBC;&#x307E;&#x308C;&#x3066;&#x3044;&#x305F;&#x306E;&#x3067;&#x3001;modprobe &#x3059;&#x308B;&#x5FC5;&#x8981;&#x306F;&#x306A;&#x3055;&#x305D;&#x3046;&#x3067;&#x3059;&#x3002;</li>
<li>&#x518D;&#x8D77;&#x52D5;&#x3059;&#x308B;&#x306E;&#x3067;&#x3042;&#x308C;&#x3070;&#x3001;&#x8A2D;&#x5B9A;&#x306F;&#x3053;&#x3053;&#x307E;&#x3067;&#x3067; OK &#x3067;&#x3059;&#x3002;</li>
</ul>
<h3 id="qdisc">qdisc &#x306E;&#x5909;&#x66F4;</h3>
<p>multiqueue &#x306A; NIC &#x304B;&#x3069;&#x3046;&#x304B;&#x3067;&#x624B;&#x9806;&#x304C;&#x304B;&#x308F;&#x308B;&#x306E;&#x3067;&#x3001;&#x307E;&#x305A;&#x306F;&#x305D;&#x306E;&#x78BA;&#x8A8D;&#x3067;&#x3059;&#x3002;</p>
<pre><code>(multiqueue &#x3067;&#x306A;&#x3044;&#x4F8B;)
# tc qdisc show
qdisc noqueue 0: dev lo root refcnt 2
qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

(multiqueue &#x306A;&#x4F8B;)
# tc qdisc show
qdisc noqueue 0: dev lo root refcnt 2
qdisc mq 0: dev eth0 root
qdisc pfifo_fast 0: dev eth0 parent :2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev eth0 parent :1 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
</code></pre>
<p>&#x5909;&#x66F4;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<pre><code>(multiqueue &#x3067;&#x306A;&#x3044;&#x5834;&#x5408;)
# tc qdisc replace dev eth0 root handle 1: fq quantum 3028 initial_quantum 15140

(multiqueue &#x306A;&#x5834;&#x5408;)
# tc qdisc replace dev eth0 root handle 1: mq
# tc qdisc replace dev eth0 parent 1:1 handle 10: fq quantum 3028 initial_quantum 15140
# tc qdisc replace dev eth0 parent 1:2 handle 20: fq quantum 3028 initial_quantum 15140
</code></pre>
<ul>
<li>&#x30D1;&#x30E9;&#x30E1;&#x30BF;&#x306F;&#x3001;/etc/sysctl.d/bbr.conf &#x3092;&#x66F8;&#x3044;&#x3066;&#x518D;&#x8D77;&#x52D5;&#x3057;&#x3066;&#x307F;&#x305F;&#x691C;&#x8A3C;&#x6642;&#x306E;&#x3082;&#x306E;&#x3092;&#x8E0F;&#x8972;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
<ul>
<li>&#x8D77;&#x52D5;&#x6642;&#x306B; quantum &#x306F; MTU &#x306E; 2 &#x500D;&#x3001;initial_quantum &#x306F; 10 &#x500D;&#x306B;&#x8A2D;&#x5B9A;&#x3055;&#x308C;&#x308B;&#x3088;&#x3046;&#x3067;&#x3059;&#x3002;</li>
<li>&#x30D1;&#x30E9;&#x30E1;&#x30BF;&#x672A;&#x6307;&#x5B9A;&#x3060;&#x3068;&#x5927;&#x304D;&#x306A;&#x5024;&#x306B;&#x306A;&#x3063;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;</li>
</ul>
</li>
</ul>
<h2 id>&#x78BA;&#x8A8D;</h2>
<h3 id="netipv4tcp_congestion_control">net.ipv4.tcp_congestion_control &#x306E;&#x78BA;&#x8A8D;</h3>
<p>ss &#x30B3;&#x30DE;&#x30F3;&#x30C9;&#x306B;&#x3066;&#x3001; <strong>&#x8A2D;&#x5B9A;&#x4EE5;&#x5F8C;</strong> &#x306B;&#x78BA;&#x7ACB;&#x3057;&#x305F; TCP &#x30B3;&#x30CD;&#x30AF;&#x30B7;&#x30E7;&#x30F3;&#x304C; bbr &#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x308C;&#x3070; OK &#x3067;&#x3059;&#x3002;</p>
<pre><code># ss -tni
State             Recv-Q              Send-Q                            Local Address:Port                            Peer Address:Port
ESTAB             0                   36                                  10.24.3.157:22                             203.0.113.123:48378
         bbr wscale:7,7 rto:212 rtt:9.556/10.213 ato:40 mss:1448 pmtu:9001 rcvmss:1448 advmss:8949 cwnd:36 bytes_acked:5357 bytes_received:4637 segs_out:59 segs_in:77 data_segs_out:55 data_segs_in:36 bbr:(bw:14.9Mbps,mrtt:4.306,pacing_gain:2.88672,cwnd_gain:2.88672) send 43.6Mbps lastsnd:4 lastrcv:4 lastack:4 pacing_rate 78.1Mbps delivery_rate 14.9Mbps app_limited busy:320ms unacked:1 rcv_rtt:5 rcv_space:26847 rcv_ssthresh:41423 minrtt:4.306
</code></pre>
<h3 id="qdisc">qdisc &#x306E;&#x78BA;&#x8A8D;</h3>
<p>tc &#x30B3;&#x30DE;&#x30F3;&#x30C9;&#x3067;&#x78BA;&#x8A8D;</p>
<pre><code>(multiqueue &#x3067;&#x306A;&#x3044;&#x5834;&#x5408;)
# tc qdisc show
qdisc noqueue 0: dev lo root refcnt 2
qdisc fq 1: dev eth0 root refcnt 2 limit 10000p flow_limit 100p buckets 1024 orphan_mask 1023 quantum 3028 initial_quantum 15140 low_rate_threshold 550Kbit refill_delay 40.0ms

(multiqueue &#x306A;&#x5834;&#x5408;)
# tc qdisc show
qdisc noqueue 0: dev lo root refcnt 2
qdisc mq 1: dev eth0 root
qdisc fq 10: dev eth0 parent 1:1 limit 10000p flow_limit 100p buckets 1024 orphan_mask 1023 quantum 3028 initial_quantum 15140 refill_delay 40.0ms
qdisc fq 20: dev eth0 parent 1:2 limit 10000p flow_limit 100p buckets 1024 orphan_mask 1023 quantum 3028 initial_quantum 15140 refill_delay 40.0ms
</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[サブリクエスト内部のコンテキストに注意]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>&#x30A2;&#x30C3;&#x30D7;&#x30ED;&#x30FC;&#x30C0;&#x306E;&#x8A8D;&#x8A3C;&#x3092; API &#x306B;&#x884C;&#x308F;&#x305B;&#x308B;&#x3001;&#x3068;&#x3044;&#x3046;&#x8A2D;&#x5B9A;&#x3092;&#x3057;&#x3066;&#x3044;&#x3066;&#x3001;&#x5C11;&#x3057;&#x30CF;&#x30DE;&#x3063;&#x305F;&#x3002;</p>
<p>&#x3053;&#x3093;&#x306A;&#x8A2D;&#x5B9A;&#x3092;&#x5165;&#x308C;&#x3066;&#x307F;&#x305F;&#x3068;&#x3053;&#x308D;&#x3001;</p>]]></description><link>https://blog.kteru.net/nginx-subrequest-context/</link><guid isPermaLink="false">5c60e35b1c65ff518d76ec0c</guid><category><![CDATA[nginx]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Mon, 11 Feb 2019 02:56:37 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>&#x30A2;&#x30C3;&#x30D7;&#x30ED;&#x30FC;&#x30C0;&#x306E;&#x8A8D;&#x8A3C;&#x3092; API &#x306B;&#x884C;&#x308F;&#x305B;&#x308B;&#x3001;&#x3068;&#x3044;&#x3046;&#x8A2D;&#x5B9A;&#x3092;&#x3057;&#x3066;&#x3044;&#x3066;&#x3001;&#x5C11;&#x3057;&#x30CF;&#x30DE;&#x3063;&#x305F;&#x3002;</p>
<p>&#x3053;&#x3093;&#x306A;&#x8A2D;&#x5B9A;&#x3092;&#x5165;&#x308C;&#x3066;&#x307F;&#x305F;&#x3068;&#x3053;&#x308D;&#x3001;&#x30AF;&#x30E9;&#x30A4;&#x30A2;&#x30F3;&#x30C8;&#x304B;&#x3089;&#x306E; POST &#x30EA;&#x30AF;&#x30A8;&#x30B9;&#x30C8;&#x304C;&#x8FD4;&#x3063;&#x3066;&#x3053;&#x306A;&#x3044;&#x3002;</p>
<pre><code>location /api {
    proxy_pass http://backend-api;
}

location /uploader {
    auth_request /api/authn;
    client_max_body_size 0;

    proxy_buffering off;
    proxy_request_buffering off;
    proxy_pass http://backend-uploader;
}
</code></pre>
<p>&#x3061;&#x3087;&#x3063;&#x3068;&#x8ABF;&#x3079;&#x3066;&#x307F;&#x308B;&#x3068;&#x3001; <code>auth_request</code> &#x306B;&#x3088;&#x308B;&#x30B5;&#x30D6;&#x30EA;&#x30AF;&#x30A8;&#x30B9;&#x30C8;&#x3092;&#x30D7;&#x30ED;&#x30AD;&#x30B7;&#x3059;&#x308B;&#x3068;&#x304D;&#x306F;&#x3001;&#x30DC;&#x30C7;&#x30A3;&#x3092;&#x7A7A;&#x306B;&#x3057;&#x306A;&#x3044;&#x3068;&#x884C;&#x3051;&#x306A;&#x3044;&#x3089;&#x3057;&#x3044;&#x3002;<br>
&#x3053;&#x308C;&#x306F; <a href="http://nginx.org/en/docs/http/ngx_http_auth_request_module.html?ref=blog.kteru.net#example">&#x516C;&#x5F0F;&#x306E;&#x4F8B;</a> &#x306B;&#x3082;&#x66F8;&#x3044;&#x3066;&#x3042;&#x308B;&#x3002;</p>
<p>&#x305D;&#x3053;&#x3067;&#x3001;&#x4E0B;&#x8A18;&#x306E;&#x8A2D;&#x5B9A;&#x3092;&#x5165;&#x308C;&#x308B;&#x3068;&#x3001;&#x4ECA;&#x5EA6;&#x306F; 500 &#x304C;&#x8FD4;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x3063;&#x305F;&#x3002;</p>
<pre><code>location /api {
    proxy_pass http://backend-api;
}

location = /_api_authn {
    internal;
    proxy_set_header Content-Length &quot;&quot;;
    proxy_pass_request_body off;
    proxy_pass http://backend-api/api/authn;
}

location /uploader {
    auth_request /_api_authn;
    client_max_body_size 0;

    proxy_buffering off;
    proxy_request_buffering off;
    proxy_pass http://backend-uploader;
}
</code></pre>
<p>&#x30A8;&#x30E9;&#x30FC;&#x30ED;&#x30B0;&#x306B;&#x30DC;&#x30C7;&#x30A3;&#x304C;&#x5927;&#x304D;&#x3059;&#x304E;&#x308B;&#x3068;&#x51FA;&#x3066;&#x3044;&#x305F;&#x306E;&#x3067;&#x3001;&#x4E0B;&#x8A18;&#x306E;&#x3088;&#x3046;&#x306B; <code>client_max_body_size</code> &#x3092;&#x5165;&#x308C;&#x305F;&#x3068;&#x3053;&#x308D;&#x3001;&#x671B;&#x3080;&#x52D5;&#x304D;&#x306B;&#x306A;&#x3063;&#x305F;&#x3002;</p>
<pre><code>location /api {
    proxy_pass http://backend-api;
}

location = /_api_authn {
    internal;
    client_max_body_size 0;   ### &#x3053;&#x308C;&#x3092;&#x5FD8;&#x308C;&#x3066;&#x3044;&#x305F;&#xFF01;
    proxy_set_header Content-Length &quot;&quot;;
    proxy_pass_request_body off;
    proxy_pass http://backend-api/api/authn;
}

location /uploader {
    auth_request /_api_authn;
    client_max_body_size 0;

    proxy_buffering off;
    proxy_request_buffering off;
    proxy_pass http://backend-uploader;
}
</code></pre>
<p>&#x30DC;&#x30C7;&#x30A3;&#x3092;&#x7A7A;&#x306B;&#x3059;&#x308B;&#x305F;&#x3081;&#x306B; location &#x3092;&#x5206;&#x3051;&#x305F;&#x306E;&#x3067;&#x3001;&#x5F53;&#x7136;&#x5185;&#x90E8;&#x306E;&#x30B3;&#x30F3;&#x30C6;&#x30AD;&#x30B9;&#x30C8;&#x3082;&#x5225;&#x306B;&#x306A;&#x3063;&#x305F;&#x306E;&#x304C;&#x539F;&#x56E0;&#x3002;<br>
&#x8003;&#x3048;&#x3066;&#x307F;&#x308B;&#x3068;&#x305D;&#x308A;&#x3083;&#x305D;&#x3046;&#x3060;&#x306A;&#x3093;&#x3060;&#x3051;&#x3069;&#x3001;&#x6C17;&#x3065;&#x304D;&#x306B;&#x304F;&#x3044;&#x3068;&#x601D;&#x3063;&#x305F;&#x306E;&#x3067;&#x3001;&#x30E1;&#x30E2;&#x3067;&#x3057;&#x305F;&#x3002;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[nginx と openssl-1.1.1 で TLS 1.3 の暗号スイートを "ムリヤリ" 設定する]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><strong>2020/02/04 &#x8FFD;&#x8A18;</strong></p>
<p>&#x3053;&#x3093;&#x306A;&#x3053;&#x3068;&#x3057;&#x306A;&#x304F;&#x3066;&#x3082; openssl.cnf &#x3067;&#x30C7;&#x30D5;&#x30A9;&#x30EB;&#x30C8;&#x8A2D;&#x5B9A;&#x3067;&#x304D;&#x308B;&#x3093;&#x3067;&#x3059;&#x306D;&#x3002;&#x77E5;&#x3089;&#x306A;&#x304B;&#x3063;&#x305F;&#x2026;&#x3002;</p>
<h2 id>&#x7D4C;&#x7DEF;</h2>
<p>openssl 1.1.1 &#x3067; TLS 1.</p>]]></description><link>https://blog.kteru.net/nginx-config-tls13-ciphers-by-force/</link><guid isPermaLink="false">5bff9d61bda28c0c8cc32c89</guid><category><![CDATA[nginx]]></category><category><![CDATA[OpenSSL]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Thu, 29 Nov 2018 08:13:27 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><strong>2020/02/04 &#x8FFD;&#x8A18;</strong></p>
<p>&#x3053;&#x3093;&#x306A;&#x3053;&#x3068;&#x3057;&#x306A;&#x304F;&#x3066;&#x3082; openssl.cnf &#x3067;&#x30C7;&#x30D5;&#x30A9;&#x30EB;&#x30C8;&#x8A2D;&#x5B9A;&#x3067;&#x304D;&#x308B;&#x3093;&#x3067;&#x3059;&#x306D;&#x3002;&#x77E5;&#x3089;&#x306A;&#x304B;&#x3063;&#x305F;&#x2026;&#x3002;</p>
<h2 id>&#x7D4C;&#x7DEF;</h2>
<p>openssl 1.1.1 &#x3067; TLS 1.3 &#x304C;&#x30B5;&#x30DD;&#x30FC;&#x30C8;&#x3055;&#x308C;&#x307E;&#x3057;&#x305F;&#x306D;&#x3002;</p>
<p>nginx &#x3067;&#x3082;&#x4F7F;&#x3048;&#x307E;&#x3059;&#x304C;&#x3001;&#x5B9F;&#x306F;&#x307E;&#x3060;&#x5B8C;&#x5168;&#x3067;&#x306F;&#x3042;&#x308A;&#x307E;&#x305B;&#x3093;&#x3002;<br>
<code>ssl_ciphers</code> &#x3092;&#x8A2D;&#x5B9A;&#x3057;&#x3066;&#x3082;&#x3001;TLS 1.3 &#x306E;&#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8;&#x306F;&#x3001;&#x6307;&#x5B9A;&#x3057;&#x305F;&#x9806;&#x5E8F;&#x306B;&#x306F;&#x306A;&#x3089;&#x305A;&#x3001;&#x30C7;&#x30D5;&#x30A9;&#x30EB;&#x30C8;&#x306E;&#x4E0B;&#x8A18;&#x306E;&#x9806;&#x306B;&#x306A;&#x3063;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<pre><code>TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_GCM_SHA256
</code></pre>
<p>&#x3053;&#x308C;&#x306F; openssl &#x3067;&#x3001;TLS 1.3 &#x306E;&#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8;&#x306E;&#x8A2D;&#x5B9A;&#x30A4;&#x30F3;&#x30BF;&#x30D5;&#x30A7;&#x30FC;&#x30B9;&#x304C;&#x3001;TLS 1.2 &#x4EE5;&#x524D;&#x306E;&#x3082;&#x306E;&#x3068;&#x306F;&#x5225;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x308B;&#x304B;&#x3089;&#x3067;&#x3059;&#x3002;</p>
<ul>
<li><a href="https://trac.nginx.org/nginx/ticket/1670?ref=blog.kteru.net">#1670 (Chipers list order not respected for TLS 1.3) &#x2013; nginx</a></li>
</ul>
<p>&#x30B3;&#x30DE;&#x30F3;&#x30C9;&#x30E9;&#x30A4;&#x30F3;&#x3067;&#x3082;&#x5225;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x306D;&#x3002;</p>
<pre><code>$ openssl ciphers -help
Usage: ciphers [options]
Valid options are:
 -help              Display this summary
 -v                 Verbose listing of the SSL/TLS ciphers
 -V                 Even more verbose
 -s                 Only supported ciphers
 -tls1              TLS1 mode
 -tls1_1            TLS1.1 mode
 -tls1_2            TLS1.2 mode
 -tls1_3            TLS1.3 mode
 -stdname           Show standard cipher names
 -psk               include ciphersuites requiring PSK
 -srp               include ciphersuites requiring SRP
 -convert val       Convert standard name into OpenSSL name
 -ciphersuites val  Configure the TLSv1.3 ciphersuites to use   &lt;== &#x30B3;&#x30EC;
</code></pre>
<p>TLS 1.3 &#x306E;&#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8;&#x306F;&#x5B89;&#x5168;&#x306A;&#x3082;&#x306E;&#x3070;&#x304B;&#x308A;&#x306A;&#x306E;&#x3067;&#x826F;&#x3044;&#x3093;&#x3067;&#x3059;&#x304C;&#x3001;AES256 &#x304C;&#x9078;&#x629E;&#x3055;&#x308C;&#x3066;&#x3057;&#x307E;&#x3046;&#x306E;&#x306F;&#x3061;&#x3087;&#x3063;&#x3068;&#x30AA;&#x30FC;&#x30D0;&#x30FC;&#x30B9;&#x30DA;&#x30C3;&#x30AF;&#x3067;&#x3059;&#x3002;</p>
<p>&#x3068;&#x3044;&#x3046;&#x308F;&#x3051;&#x3067;&#x3001;&#x5BFE;&#x5FDC;&#x3055;&#x308C;&#x308B;&#x307E;&#x3067;&#x306E;&#x9593;&#x306F;&#x3001;&#x30E0;&#x30EA;&#x30E4;&#x30EA;&#x9811;&#x5F35;&#x3063;&#x3066;&#x898B;&#x308B;&#x4E8B;&#x306B;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<ul>
<li>&#x30D0;&#x30FC;&#x30B8;&#x30E7;&#x30F3;&#x30E1;&#x30E2;
<ul>
<li>nginx 1.15.7</li>
<li>openssl 1.1.1a</li>
</ul>
</li>
</ul>
<h2 id="openssl">openssl &#x306B;&#x30D1;&#x30C3;&#x30C1;&#x3092;&#x5F53;&#x3066;&#x308B;</h2>
<p><code>ssl_ciphers</code> &#x3067;&#x8A2D;&#x5B9A;&#x3067;&#x304D;&#x306A;&#x3044;&#x306E;&#x3067;&#x3001;&#x30E0;&#x30EA;&#x30E4;&#x30EA;&#x611F;&#x304C;&#x5F37;&#x3044;&#x3067;&#x3059;&#x304C; openssl &#x306B;&#x30D1;&#x30C3;&#x30C1;&#x3092;&#x5F53;&#x3066;&#x3001;&#x30C7;&#x30D5;&#x30A9;&#x30EB;&#x30C8;&#x306E;&#x6697;&#x53F7;&#x30B9;&#x30A4;&#x30FC;&#x30C8;&#x3092;&#x5909;&#x66F4;&#x3057;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<script src="https://gist.github.com/kteru/667292b9c1d3c68604c15f7def738e71.js"></script>
<p>&#x3042;&#x3068;&#x306F;&#x3001;&#x901A;&#x5E38;&#x3068;&#x540C;&#x3058;&#x3088;&#x3046;&#x306B;&#x30D3;&#x30EB;&#x30C9;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<pre><code>$ ./configure \
...snip...
--with-openssl=/path/to/openssl-1.1.1a \
--with-openssl-opt=&apos;-fPIC&apos;

$ make -j$(nproc)
$ sudo make install
</code></pre>
<h2 id>&#x7D50;&#x679C;</h2>
<p><img src="https://blog.kteru.net/content/images/2018/11/tls13_ciphers_01.png" alt="tls13_ciphers_01" loading="lazy"></p>
<p>SSL Server Test &#x3067;&#x898B;&#x3066;&#x3082;&#x3001;&#x3061;&#x3083;&#x3093;&#x3068;&#x671B;&#x3080;&#x9806;&#x5E8F;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#xFF01;</p>
<p><img src="https://blog.kteru.net/content/images/2018/11/tls13_ciphers_02.png" alt="tls13_ciphers_02" loading="lazy"></p>
<p>&#x3046;&#x30FC;&#x3093;&#x3001;&#x7F8E;&#x3057;&#x3044;&#x2026;&#xFF01;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[PlantUML Server を Docker で動かすときの URL ルート設定]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x7D4C;&#x7DEF;</h2>
<p><a href="https://hub.docker.com/r/plantuml/plantuml-server/?ref=blog.kteru.net">plantuml/plantuml-server:jetty</a> &#x306F;&#x3001; <code>http://localhost:8080/</code> &#x3067;&#x52D5;&#x304D;&#x307E;&#x3059;&#x304C;&#x3001;&#x6B74;&#x53F2;&#x7684;&#x306A;&#x7D4C;&#x7DEF;&#x3067; <code>http://localhost:8080/plantuml/</code> &#x3067;&#x52D5;&#x304B;&#x3057;&#x305F;&#x3044;&#x3068;&#x601D;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<p>docker run &#x6642;&#x306B; <code>-e JAVA_OPTIONS=&quot;-Djetty.</code></p>]]></description><link>https://blog.kteru.net/plantuml-server-path/</link><guid isPermaLink="false">5bd6b21d1020083721beb6bd</guid><category><![CDATA[Docker]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Mon, 29 Oct 2018 07:11:57 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x7D4C;&#x7DEF;</h2>
<p><a href="https://hub.docker.com/r/plantuml/plantuml-server/?ref=blog.kteru.net">plantuml/plantuml-server:jetty</a> &#x306F;&#x3001; <code>http://localhost:8080/</code> &#x3067;&#x52D5;&#x304D;&#x307E;&#x3059;&#x304C;&#x3001;&#x6B74;&#x53F2;&#x7684;&#x306A;&#x7D4C;&#x7DEF;&#x3067; <code>http://localhost:8080/plantuml/</code> &#x3067;&#x52D5;&#x304B;&#x3057;&#x305F;&#x3044;&#x3068;&#x601D;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<p>docker run &#x6642;&#x306B; <code>-e JAVA_OPTIONS=&quot;-Djetty.contextpath=/plantuml&quot;</code> &#x3092;&#x4ED8;&#x3051;&#x3066;&#x307F;&#x305F;&#x308A;&#x3001; <code>/var/lib/jetty/start.d</code> &#x3084; <code>/usr/local/jetty/etc</code> &#x7B49;&#x306E;&#x8A2D;&#x5B9A;&#x3092;&#x3044;&#x3058;&#x3063;&#x305F;&#x308A;&#x3057;&#x3066;&#x307F;&#x3066;&#x3082;&#x5909;&#x308F;&#x3063;&#x3066;&#x304F;&#x308C;&#x305A;&#x3001;&#x60A9;&#x3093;&#x3067;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<p>&#x8272;&#x3005;&#x8A66;&#x884C;&#x932F;&#x8AA4;&#x3057;&#x3066;&#x3001;&#x308F;&#x308A;&#x3068;&#x7C21;&#x5358;&#x306A;&#x5F62;&#x3067;&#x843D;&#x3061;&#x7740;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<h2 id>&#x89E3;&#x6C7A;</h2>
<p><a href="https://hub.docker.com/r/plantuml/plantuml-server/?ref=blog.kteru.net">plantuml/plantuml-server:jetty</a> &#x306E;&#x5143;&#x3068;&#x306A;&#x3063;&#x3066;&#x3044;&#x308B; <a href="https://hub.docker.com/_/jetty/?ref=blog.kteru.net">jetty</a> &#x306E; Desc &#x3092;&#x898B;&#x308B;&#x3068;&#x3001;&#x3053;&#x3093;&#x306A;&#x8A18;&#x8FF0;&#x304C;&#x3002;</p>
<blockquote>
<h3 id="deployment">Deployment</h3>
<p>Webapps can be deployed under /var/lib/jetty/webapps in the usual ways (WAR file, exploded WAR directory, or context XML file). To deploy your application to the / context, use the name ROOT.war, the directory name ROOT, or the context file ROOT.xml (case insensitive).</p>
</blockquote>
<p>plantuml-server &#x306E;&#x30B3;&#x30F3;&#x30C6;&#x30CA;&#x3092;&#x8997;&#x3044;&#x3066;&#x307F;&#x308B;&#x3068;&#x3001;&#x78BA;&#x304B;&#x306B; ROOT.war &#x304C;&#x7F6E;&#x304B;&#x308C;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;&#x3001;&#x3053;&#x308C;&#x3092;&#x8D77;&#x52D5;&#x524D;&#x30EA;&#x30CD;&#x30FC;&#x30E0;&#x3057;&#x3066;&#x3084;&#x308B;&#x611F;&#x3058;&#x306B;&#x3057;&#x3066;&#x307F;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<p>docker-entrypoint.sh &#x306E;&#x524D;&#x306B;&#x51E6;&#x7406;&#x3092;&#x3059;&#x308B;&#x30B9;&#x30AF;&#x30EA;&#x30D7;&#x30C8;&#x3092;&#x4F5C;&#x308A;&#x3001;</p>
<pre><code>### /srv/plantuml-server/docker-entrypoint-custom.sh (0755)

#!/bin/sh
mv /var/lib/jetty/webapps/ROOT.war /var/lib/jetty/webapps/plantuml.war
exec /docker-entrypoint.sh &quot;$@&quot;
</code></pre>
<p>&#x3053;&#x3044;&#x3064;&#x3092; entrypoint &#x306B;&#x6307;&#x5B9A;&#x3057;&#x3066; docker run &#x3057;&#x307E;&#x3059;&#x3002;</p>
<pre><code>docker run --rm --name plantuml-server \
-p 127.0.0.1:8080:8080 \
-v /srv/plantuml-server/docker-entrypoint-custom.sh:/docker-entrypoint-custom.sh:ro \
--entrypoint /docker-entrypoint-custom.sh \
plantuml/plantuml-server:jetty \
</code></pre>
<p>&#x7121;&#x4E8B;&#x3001; <code>http://localhost:8080/plantuml</code> &#x3067;&#x52D5;&#x304F;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<h2 id>&#x3055;&#x3044;&#x3054;&#x306B;</h2>
<p>&#x4ECA;&#x56DE;&#x306B;&#x9650;&#x3089;&#x305A;&#x3001;&#x3053;&#x306E;&#x3084;&#x308A;&#x65B9;&#x306F;&#x3001;&quot;&#x308F;&#x3056;&#x308F;&#x3056;&#x624B;&#x5143;&#x3067;&#x30D3;&#x30EB;&#x30C9;&#x3057;&#x306A;&#x304A;&#x3059;&#x7A0B;&#x3067;&#x3082;&#x306A;&#x3044;&#x8ABF;&#x6574;&quot; &#x3092;&#x3059;&#x308B;&#x6642;&#x306B;&#x4F7F;&#x3048;&#x305D;&#x3046;&#x3067;&#x3059;&#x3002;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Amazon Linux 2 の Gather facts を見てみる]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="amazonlinux2">Amazon Linux 2 &#x6B63;&#x5F0F;&#x7248;&#x3067;&#x305F;&#xFF01;</h2>
<p>&#x3064;&#x3044;&#x306B; Amazon Linux 2 &#x306E; RC &#x304C;&#x53D6;&#x308C;&#x307E;&#x3057;&#x305F;&#x306D;&#x3002;<br>
&#x3053;&#x308C;&#x304B;&#x3089;&#x4F7F;&#x3063;&#x3066;&#x3044;&#x304F;&#x4E0A;&#x3067; Ansible &#x3067;&#x306E; OS &#x5224;&#x5B9A;&#x304C;&#x5FC5;&#x8981;&#x306B;&#x306A;&#x3063;&#x3066;&#x304D;</p>]]></description><link>https://blog.kteru.net/amazon-linux-2-gather-facts/</link><guid isPermaLink="false">5bcef5e12ab890283a356e24</guid><category><![CDATA[Ansible]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Fri, 29 Jun 2018 03:28:12 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="amazonlinux2">Amazon Linux 2 &#x6B63;&#x5F0F;&#x7248;&#x3067;&#x305F;&#xFF01;</h2>
<p>&#x3064;&#x3044;&#x306B; Amazon Linux 2 &#x306E; RC &#x304C;&#x53D6;&#x308C;&#x307E;&#x3057;&#x305F;&#x306D;&#x3002;<br>
&#x3053;&#x308C;&#x304B;&#x3089;&#x4F7F;&#x3063;&#x3066;&#x3044;&#x304F;&#x4E0A;&#x3067; Ansible &#x3067;&#x306E; OS &#x5224;&#x5B9A;&#x304C;&#x5FC5;&#x8981;&#x306B;&#x306A;&#x3063;&#x3066;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<h2 id="gatherfacts">Gather facts</h2>
<p>Gather facts &#x306E;&#x4F7F;&#x3048;&#x305D;&#x3046;&#x306A;&#x3068;&#x3053;&#x308D;&#x3092;&#x629C;&#x7C8B;&#x3057;&#x3066;&#x307F;&#x307E;&#x3059;&#x3002;<br>
&#x203B; ansible 2.5.4 &#x3067;&#x5B9F;&#x884C;</p>
<p>&#x307E;&#x305A;&#x53C2;&#x8003;&#x306B; Amazon Linux</p>
<pre><code>### amzn-ami-hvm-2018.03.0.20180412-x86_64-gp2

&quot;ansible_distribution&quot;: &quot;Amazon&quot;,
&quot;ansible_distribution_major_version&quot;: &quot;NA&quot;,
&quot;ansible_distribution_release&quot;: &quot;NA&quot;,
&quot;ansible_distribution_version&quot;: &quot;2018.03&quot;,
&quot;ansible_os_family&quot;: &quot;RedHat&quot;,
</code></pre>
<p>&#x305D;&#x3057;&#x3066; Amazon Linux 2</p>
<pre><code>### amzn2-ami-hvm-2.0.20180622.1-x86_64-gp2

&quot;ansible_distribution&quot;: &quot;Amazon&quot;,
&quot;ansible_distribution_major_version&quot;: &quot;NA&quot;,
&quot;ansible_distribution_release&quot;: &quot;NA&quot;,
&quot;ansible_distribution_version&quot;: &quot;2&quot;,
&quot;ansible_os_family&quot;: &quot;RedHat&quot;,
</code></pre>
<p><code>ansible_distribution_version</code> &#x306B; <code>2</code> &#x304C;&#x5165;&#x3063;&#x3066;&#x307E;&#x3059;&#x306D;&#x3002;(RC &#x306E;&#x3068;&#x304D;&#x306F; <code>Candidate</code> &#x3067;&#x3057;&#x305F;&#x3002;)</p>
<p>&#x3046;&#x30FC;&#x3093;&#x3053;&#x308C;&#x3001; <code>ansible_distribution_major_version</code> &#x304C; <code>NA</code> &#x306A;&#x306E;&#x306F;&#x306A;&#x305C;&#x3060;&#x308D;&#x3046;&#x3002;<br>
<code>ansible_distribution_version</code> &#x306F;&#x3001;&#x4ECA;&#x5F8C; AMI &#x306E;&#x66F4;&#x65B0;&#x3067;&#x5909;&#x308F;&#x3089;&#x306A;&#x3044;&#x304B;&#x3061;&#x3087;&#x3063;&#x3068;&#x5FC3;&#x914D;&#x3067;&#x3059;&#x3002;<br>
LTS &#x3060;&#x304B;&#x3089;&#x5909;&#x308F;&#x3089;&#x306A;&#x3044;&#x306E;&#x304B;&#x306A;&#x3002;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Ansible での include の良い書き方]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x3088;&#x304F;&#x3042;&#x308B;&#x66F8;&#x304D;&#x65B9;&#x306E;&#x554F;&#x984C;&#x70B9;</h2>
<p>&#x4F8B;&#x3048;&#x3070; include_tasks &#x3067;&#x30B0;&#x30B0;&#x3063;&#x3066;&#x307F;&#x308B;&#x3068;&#x3001;&#x3053;&#x3046;&#x3044;&#x3046;&#x611F;&#x3058;&#x306E;&#x66F8;&#x304D;&#x65B9;&#x3092;&#x3088;&#x304F;&#x898B;&#x304B;&#x3051;&#x307E;&#x3059;&#x3002;</p>
<pre><code>### tasks/main.yml

- name: Include</code></pre>]]></description><link>https://blog.kteru.net/ansible-include-simple/</link><guid isPermaLink="false">5bcef5e12ab890283a356e23</guid><category><![CDATA[Ansible]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Tue, 29 May 2018 08:39:07 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id>&#x3088;&#x304F;&#x3042;&#x308B;&#x66F8;&#x304D;&#x65B9;&#x306E;&#x554F;&#x984C;&#x70B9;</h2>
<p>&#x4F8B;&#x3048;&#x3070; include_tasks &#x3067;&#x30B0;&#x30B0;&#x3063;&#x3066;&#x307F;&#x308B;&#x3068;&#x3001;&#x3053;&#x3046;&#x3044;&#x3046;&#x611F;&#x3058;&#x306E;&#x66F8;&#x304D;&#x65B9;&#x3092;&#x3088;&#x304F;&#x898B;&#x304B;&#x3051;&#x307E;&#x3059;&#x3002;</p>
<pre><code>### tasks/main.yml

- name: Include tasks (RedHat 6)
  include_tasks: install_redhat_6.yml
  when: ansible_os_family == &apos;RedHat&apos; and ansible_distribution_major_version|int == 6

- name: Include tasks (RedHat 7)
  include_tasks: install_redhat_7.yml
  when: ansible_os_family == &apos;RedHat&apos; and ansible_distribution_major_version|int == 7

- name: Include tasks (Amazon Linux)
  include_tasks: install_amazon.yml
  when: ansible_os_family == &apos;RedHat&apos; and ansible_distribution == &apos;Amazon&apos;
</code></pre>
<p>&#x3053;&#x306E;&#x66F8;&#x304D;&#x65B9;&#x3067;&#x5404;&#x7A2E;&#x30ED;&#x30FC;&#x30EB;&#x3092;&#x904B;&#x7528;&#x3057;&#x3066;&#x3044;&#x304F;&#x4E2D;&#x3067;&#x3001;&#x3044;&#x308D;&#x3044;&#x308D;&#x60A9;&#x307F;&#x304C;&#x51FA;&#x3066;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<ul>
<li>&#x3071;&#x3063;&#x3068;&#x898B;&#x3067; when &#x304C;&#x308F;&#x304B;&#x308A;&#x306B;&#x304F;&#x3044;</li>
<li>OS&#x30FB;&#x30C7;&#x30A3;&#x30B9;&#x30C8;&#x30ED;&#x3092;&#x8FFD;&#x52A0;&#x3059;&#x308B;&#x305F;&#x3073;&#x306B; include_tasks &#x304C;&#x5897;&#x3048;&#x3066;&#x3044;&#x304F;</li>
<li>&#x4F8B;&#x3048;&#x3070; RedHat &#x3068; CentOS &#x3067;&#x5206;&#x3051;&#x305F;&#x3044;&#x3068;&#x304D;&#x306B; when &#x304C;&#x66F4;&#x306B;&#x3084;&#x3084;&#x3053;&#x3057;&#x304F;&#x306A;&#x308B;</li>
<li>&#x3069;&#x308C;&#x306B;&#x3082;&#x5F53;&#x3066;&#x306F;&#x307E;&#x3089;&#x306A;&#x3044;&#x5834;&#x5408;&#x306E;&#x30A8;&#x30E9;&#x30FC;&#x30CF;&#x30F3;&#x30C9;&#x30EA;&#x30F3;&#x30B0;&#x304C;&#x3057;&#x306B;&#x304F;&#x3044;</li>
</ul>
<h2 id>&#x826F;&#x3044;&#x66F8;&#x304D;&#x65B9;</h2>
<pre><code>### tasks/main.yml

- name: Include tasks
  include_tasks: &apos;{{ include_yml }}&apos;
  loop_control:
    loop_var: include_yml
  with_first_found:
    - files:
      - &apos;install-d-{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml&apos;
      - &apos;install-d-{{ ansible_distribution }}.yml&apos;
      - &apos;install-f-{{ ansible_os_family }}-{{ ansible_distribution_major_version }}.yml&apos;
      - &apos;install-f-{{ ansible_os_family }}.yml&apos;
      - &apos;install.yml&apos;
      skip: false
</code></pre>
<h3 id>&#x30DD;&#x30A4;&#x30F3;&#x30C8;</h3>
<ul>
<li>with_first_found &#x3092;&#x4F7F;&#x3046;&#x4E8B;&#x3067;&#x3001;&#x57FA;&#x672C;&#x7684;&#x306B;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x8FFD;&#x52A0;&#x306E;&#x307F;&#x3067; OS&#x30FB;&#x30C7;&#x30A3;&#x30B9;&#x30C8;&#x30ED;&#x306E;&#x8FFD;&#x52A0;&#x304C;&#x3067;&#x304D;&#x308B;</li>
<li>&#x30EB;&#x30FC;&#x30D7;&#x5BFE;&#x8C61;&#x306F;&#x6761;&#x4EF6;&#x304C;&#x304D;&#x3064;&#x3044;&#x3082;&#x306E;&#x304C;&#x6700;&#x521D;&#x306B;&#x3042;&#x308B;&#x306E;&#x3067;&#x3001; &quot;RedHat &#x7CFB;&#x3060;&#x3051;&#x3069; CentOS &#x306F;&#x7279;&#x5225;&#x306A;&#x51E6;&#x7406;&#x3092;&#x3057;&#x305F;&#x3044;&quot; &#x7684;&#x306A;&#x4E8B;&#x306B;&#x5BFE;&#x5FDC;&#x3057;&#x3084;&#x3059;&#x3044;</li>
<li>&#x5F53;&#x3066;&#x306F;&#x307E;&#x308B;&#x3082;&#x306E;&#x304C;&#x306A;&#x3044;&#x5834;&#x5408;&#x306E;&#x52D5;&#x304D;&#x3092; skip &#x30D1;&#x30E9;&#x30E1;&#x30BF;&#x3067;&#x6307;&#x5B9A;&#x3067;&#x304D;&#x308B;</li>
<li>include &#x3057;&#x305F;&#x5148;&#x3067;&#x30EB;&#x30FC;&#x30D7;&#x5909;&#x6570;&#x306B;&#x30C7;&#x30D5;&#x30A9;&#x30EB;&#x30C8;&#x306E; <code>item</code> &#x3092;&#x4F7F;&#x3044;&#x305F;&#x3044;&#x3060;&#x308D;&#x3046;&#x4E8B;&#x3092;&#x8003;&#x616E;&#x3057;&#x3001; <code>include_yml</code> &#x3068;&#x3044;&#x3046;&#x5909;&#x6570;&#x540D;&#x306B;&#x3057;&#x3066;&#x304A;&#x304F;</li>
</ul>
<h3 id="dockerce">&#x4F8B;: Docker CE &#x306E;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;</h3>
<ul>
<li>RedHat 7 <strong>&#x7CFB;</strong> &#x306F;&#x516C;&#x5F0F;&#x30EA;&#x30DD;&#x30B8;&#x30C8;&#x30EA;&#x304B;&#x3089;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;</li>
<li>Amazon Linux &#x306F;&#x30A2;&#x30DE;&#x30BE;&#x30F3;&#x306E;&#x30EA;&#x30DD;&#x30B8;&#x30C8;&#x30EA;&#x304B;&#x3089;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;</li>
</ul>
<pre><code>### tasks/install-d-Amazon.yml

- name: Install docker
  yum: name=docker state=present

- name: Install pip
  yum: name=python27-pip state=present

- name: Install docker-py
  pip: name=docker-py state=latest
</code></pre>
<pre><code>### tasks/install-f-RedHat-7.yml

- name: Install packages
  yum: name=&apos;{{ item }}&apos; state=present
  with_items:
    - device-mapper-persistent-data
    - lvm2

- name: Install Docker CE repository
  get_url: &gt;
    url=&apos;https://download.docker.com/linux/centos/docker-ce.repo&apos;
    dest=&apos;/etc/yum.repos.d/docker-ce.repo&apos;
    checksum=&apos;sha256:6650718e0fe5202ae7618521f695d43a8bc051c539d7570f0edbfa5b4916f218&apos;

- name: Install docker-ce
  yum: name=docker-ce state=present

- name: Install pip
  yum: name=python-pip state=present enablerepo=epel

- name: Install docker-py
  pip: name=docker-py state=present
</code></pre>
<h3 id>&#x6700;&#x5F8C;&#x306B;</h3>
<p>&#x3082;&#x3061;&#x308D;&#x3093;&#x3001;include_tasks &#x3060;&#x3051;&#x3058;&#x3083;&#x306A;&#x304F; include_vars &#x7B49;&#x306B;&#x3082;&#x4F7F;&#x3048;&#x307E;&#x3059;&#x3002;<br>
&#x3053;&#x306E;&#x66F8;&#x304D;&#x65B9;&#x306B;&#x3057;&#x3066;&#x304B;&#x3089;&#x898B;&#x901A;&#x3057;&#x304C;&#x3088;&#x304F;&#x306A;&#x3063;&#x3066;&#x3001;&#x904B;&#x7528;&#x3057;&#x3084;&#x3059;&#x304F;&#x306A;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[停止時間を抑えつつ InnoDB テーブル圧縮を有効化する]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>&#x203B; MySQL 5.7 &#x304B;&#x3089;&#x306E;&#x900F;&#x904E;&#x7684;&#x30DA;&#x30FC;&#x30B8;&#x5727;&#x7E2E; <strong>&#x3067;&#x306F;&#x306A;&#x3044;</strong> &#x3067;&#x3059;&#x3002;</p>
<h2 id>&#x7D4C;&#x7DEF;</h2>
<p>Zabbix &#x306E;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x3063;&#x3066;&#x81A8;&#x308C;&#x307E;&#x3059;&#x3088;&#x306D;&#x3002;</p>
<pre><code># ls -l /var/lib/mysql/zabbix/*.ibd | sort -n -k 5</code></pre>]]></description><link>https://blog.kteru.net/innodb-compress-less-outage-time/</link><guid isPermaLink="false">5bcef5e12ab890283a356e22</guid><category><![CDATA[MySQL]]></category><category><![CDATA[InnoDB]]></category><category><![CDATA[Zabbix]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Wed, 20 Dec 2017 10:02:28 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>&#x203B; MySQL 5.7 &#x304B;&#x3089;&#x306E;&#x900F;&#x904E;&#x7684;&#x30DA;&#x30FC;&#x30B8;&#x5727;&#x7E2E; <strong>&#x3067;&#x306F;&#x306A;&#x3044;</strong> &#x3067;&#x3059;&#x3002;</p>
<h2 id>&#x7D4C;&#x7DEF;</h2>
<p>Zabbix &#x306E;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x3063;&#x3066;&#x81A8;&#x308C;&#x307E;&#x3059;&#x3088;&#x306D;&#x3002;</p>
<pre><code># ls -l /var/lib/mysql/zabbix/*.ibd | sort -n -k 5 | tail -n 5
-rw-rw---- 1 mysql mysql    176160768 Dec 19 14:22 /var/lib/mysql/zabbix/events.ibd
-rw-rw---- 1 mysql mysql    494927872 Dec 19 14:02 /var/lib/mysql/zabbix/trends.ibd
-rw-rw---- 1 mysql mysql    591396864 Dec 19 14:32 /var/lib/mysql/zabbix/trends_uint.ibd
-rw-rw---- 1 mysql mysql 165217828864 Dec 19 14:32 /var/lib/mysql/zabbix/history_uint.ibd
-rw-rw---- 1 mysql mysql 183601463296 Dec 19 14:32 /var/lib/mysql/zabbix/history.ibd
</code></pre>
<p>&#x3068;&#x3044;&#x3046;&#x3053;&#x3068;&#x3067;&#x3001;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x3092;&#x3044;&#x304F;&#x3064;&#x304B;&#x5727;&#x7E2E;&#x3059;&#x308B;&#x3053;&#x3068;&#x306B;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<pre><code>ALTER TABLE history ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
</code></pre>
<p>&#x8ABF;&#x3079;&#x308B;&#x3068;&#x4E0A;&#x8A18;&#x306E;&#x3088;&#x3046;&#x306A;&#x65B9;&#x6CD5;&#x304C;&#x3088;&#x304F;&#x898B;&#x3064;&#x304B;&#x308A;&#x307E;&#x3059;&#x304C;&#x3001;ALTER TABLE &#x306F;&#x5B9F;&#x884C;&#x4E2D;&#x306E;&#x66F8;&#x304D;&#x8FBC;&#x307F;&#x304C;&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x3055;&#x308C;&#x3066;&#x3057;&#x307E;&#x3046;&#x306E;&#x3068;&#x3001;&#x4E00;&#x6642;&#x7684;&#x306A;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x306B;&#x30C7;&#x30FC;&#x30BF;&#x3092;&#x30B3;&#x30D4;&#x30FC;&#x3059;&#x308B;&#x52D5;&#x304D;&#x3092;&#x3059;&#x308B;&#x306E;&#x3067;&#x30C7;&#x30A3;&#x30B9;&#x30AF;&#x5BB9;&#x91CF;&#x306B;&#x4F59;&#x88D5;&#x304C;&#x5FC5;&#x8981;&#x3067;&#x3059;&#x3002;</p>
<p>&#x4EE5;&#x524D;&#x3001;&#x4F3C;&#x305F;&#x3088;&#x3046;&#x306A;&#x7D4C;&#x7DEF;&#x3067; 100GB &#x304F;&#x3089;&#x3044;&#x306E; history &#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x3092; ALTER TABLE &#x3057;&#x305F;&#x3068;&#x3053;&#x308D;&#x3001;3 &#x65E5;&#x304F;&#x3089;&#x3044;&#x304B;&#x304B;&#x3063;&#x305F;&#x3068;&#x3044;&#x3046;&#x7D4C;&#x9A13;&#x3082;&#x3042;&#x308A;&#x3001;&#x4ECA;&#x56DE;&#x306F;&#x5225;&#x306E;&#x30A2;&#x30D7;&#x30ED;&#x30FC;&#x30C1;&#x3092;&#x8A66;&#x307F;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<p>&#x5225;&#x306E;&#x30B5;&#x30FC;&#x30D0;&#x306B;&#x4E00;&#x6642;&#x7684;&#x306B; DB &#x3092;&#x4F5C;&#x308A;&#x3001;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x3092;&#x5727;&#x7E2E;&#x5F62;&#x5F0F;&#x306B;&#x3057;&#x3066;&#x304A;&#x304D;&#x3001;&#x305D;&#x3053;&#x306B;&#x30EC;&#x30D7;&#x30EA;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x3092;&#x5F35;&#x308A;&#x3001;&#x30C8;&#x30E9;&#x30F3;&#x30B9;&#x30DD;&#x30FC;&#x30BF;&#x30D6;&#x30EB;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x30B9;&#x30DA;&#x30FC;&#x30B9;&#x3067; ibd &#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3092;&#x30B3;&#x30D4;&#x30FC;&#x3059;&#x308B;&#x3001;&#x3068;&#x3044;&#x3046;&#x6D41;&#x308C;&#x3067;&#x3059;&#x3002;<br>
ibd &#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x306E;&#x30B3;&#x30D4;&#x30FC;&#x30FB;&#x30A4;&#x30F3;&#x30DD;&#x30FC;&#x30C8;&#x4E2D;&#x306F;&#x505C;&#x6B62;&#x6642;&#x9593;&#x306B;&#x306A;&#x3063;&#x3066;&#x3057;&#x307E;&#x3044;&#x307E;&#x3059;&#x304C;&#x3001;3 &#x65E5;&#x6B62;&#x307E;&#x308B;&#x3088;&#x308A;&#x306F;&#x30DE;&#x30B7;&#x3067;&#x3057;&#x3087;&#x3046;&#x3002;</p>
<h2 id>&#x524D;&#x63D0;</h2>
<p>&#x4FBF;&#x5B9C;&#x4E0A;&#x3001;Zabbix &#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30FC;&#x30B9;&#x3092; <code>master</code> &#x3001;&#x30EC;&#x30D7;&#x30EA;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x3059;&#x308B;&#x5148;&#x306E;&#x5225;&#x30B5;&#x30FC;&#x30D0;&#x3092; <code>slave</code> &#x3068;&#x547C;&#x3076;&#x3053;&#x3068;&#x306B;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p>&#x5358;&#x7D14;&#x5316;&#x306E;&#x305F;&#x3081;&#x3001;&#x30C6;&#x30FC;&#x30D6;&#x30EB; <code>history</code> &#x306B;&#x3064;&#x3044;&#x3066;&#x306E;&#x307F;&#x624B;&#x9806;&#x3092;&#x66F8;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p><code>master</code> &#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30FC;&#x30B9;&#x306F; MySQL 5.6 &#x3067;&#x3001;my.cnf &#x306B;&#x306F;&#x4E0B;&#x8A18;&#x306E;&#x8A2D;&#x5B9A;&#x304C;&#x5165;&#x3063;&#x3066;&#x307E;&#x3059;&#x3002;</p>
<pre><code>[mysqld]
innodb_file_per_table
innodb_file_format = Barracuda

server-id = 1
log-bin = mysql-bin
</code></pre>
<h2 id>&#x624B;&#x9806;</h2>
<h3 id>&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x5B9A;&#x7FA9;&#x51FA;&#x529B;</h3>
<p>&#x5BFE;&#x8C61;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x306E; CREATE TABLE &#x6587;&#x3092;&#x51FA;&#x529B;&#x3057;&#x307E;&#x3059;&#x3002;<br>
&#x5727;&#x7E2E;&#x5F62;&#x5F0F;&#x306B;&#x306A;&#x308B;&#x3088;&#x3046;&#x306B; sed &#x3057;&#x3066;&#x304A;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<pre><code>[master]# mysqldump --default-character-set=binary -uroot \
--opt --skip-lock-tables --no-data -f zabbix history \
| sed -e &apos;s/\(ENGINE=InnoDB.*\);$/\1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;/&apos; \
&gt; tbl_history.sql
</code></pre>
<h3 id>&#x30C0;&#x30F3;&#x30D7;&#x306E;&#x6D41;&#x3057;&#x8FBC;&#x307F;</h3>
<p>&#x307E;&#x305A;&#x3001;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x5B9A;&#x7FA9;&#x3092; <code>slave</code> &#x306B;&#x6D41;&#x3057;&#x8FBC;&#x307F;&#x3001;&#x5727;&#x7E2E;&#x5F62;&#x5F0F;&#x306E;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x3092;&#x4F5C;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<pre><code>[slave]# cat tbl_history.sql | mysql -uroot zabbix
</code></pre>
<p>&#x7D9A;&#x3044;&#x3066;&#x3001;history &#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x306E;&#x30C0;&#x30F3;&#x30D7;&#x3092;&#x6D41;&#x3057;&#x8FBC;&#x307F;&#x307E;&#x3059;&#x3002;&#x3000;&#x3000;<br>
&#x524D;&#x8FF0;&#x306E;&#x901A;&#x308A;&#x3001; <code>master</code> &#x306B;&#x306F;&#x30C0;&#x30F3;&#x30D7;&#x3092;&#x5410;&#x304D;&#x51FA;&#x3059;&#x307B;&#x3069;&#x306E;&#x7A7A;&#x304D;&#x5BB9;&#x91CF;&#x306E;&#x4F59;&#x88D5;&#x304C;&#x306A;&#x3044;&#x306E;&#x3067;&#x3001;nc &#x3067; <code>slave</code> &#x306B;&#x9001;&#x4FE1;&#x3057;&#x3001; <code>slave</code> &#x3067;&#x76F4;&#x63A5;&#x6D41;&#x3057;&#x8FBC;&#x307F;&#x307E;&#x3059;&#x3002;</p>
<pre><code>[master]# mysqldump --default-character-set=binary -uroot \
--opt --skip-lock-tables --single-transaction --order-by-primary --master-data=2 --no-create-info -f zabbix history \
| tee &gt;(grep &apos;CHANGE MASTER TO&apos; &gt;&amp;2) \
| pv -B 4m | nc &lt;slave&gt; 60000
</code></pre>
<p><code>--skip-lock-tables</code> &#x3068; <code>--single-transaction</code> &#x3067;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x30ED;&#x30C3;&#x30AF;&#x305B;&#x305A;&#x306B;&#x30C0;&#x30F3;&#x30D7;&#x51E6;&#x7406;&#x3092;&#x30C8;&#x30E9;&#x30F3;&#x30B6;&#x30AF;&#x30B7;&#x30E7;&#x30F3;&#x3067;&#x56F2;&#x307F;&#x3001;&#x66F8;&#x304D;&#x8FBC;&#x307F;&#x304C;&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x3055;&#x308C;&#x306A;&#x3044;&#x3088;&#x3046;&#x306B;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<p>tee &#x3067; <code>--master-data=2</code> &#x3067;&#x306E;&#x51FA;&#x529B;&#x3092;&#x78BA;&#x8A8D;&#x3057;&#x3066;&#x304A;&#x304F;&#x3053;&#x3068;&#x304C;&#x30DD;&#x30A4;&#x30F3;&#x30C8;&#x3067;&#x3059;&#x3002;<br>
pv &#x306F;&#x3001;&#x306A;&#x3093;&#x3068;&#x306A;&#x304F;&#x306E;&#x9032;&#x6357;&#x304C;&#x308F;&#x304B;&#x308B;&#x3068;&#x7CBE;&#x795E;&#x7684;&#x306B;&#x826F;&#x3044;&#x306E;&#x3067;&#x3064;&#x3051;&#x3066;&#x307E;&#x3059;&#x3002;</p>
<p>nc &#x306E;&#x53D7;&#x3051;&#x5074;&#x306F;&#x3001;&#x3053;&#x3093;&#x306A;&#x611F;&#x3058;&#x3002;</p>
<pre><code>[slave]# nc -l 60000 | mysql -uroot zabbix
</code></pre>
<h3 id>&#x30EC;&#x30D7;&#x30EA;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x3092;&#x5F35;&#x308B;</h3>
<p>&#x30C0;&#x30F3;&#x30D7;&#x306E;&#x6D41;&#x3057;&#x8FBC;&#x307F;&#x304C;&#x7D42;&#x308F;&#x308A;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001; <code>slave</code> &#x306B;&#x306F;&#x5F53;&#x7136;&#x30C0;&#x30F3;&#x30D7;&#x958B;&#x59CB;&#x6642;&#x70B9;&#x307E;&#x3067;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x3057;&#x304B;&#x306A;&#x3044;&#x306E;&#x3067;&#x3001;&#x30EC;&#x30D7;&#x30EA;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x3092;&#x5F35;&#x3063;&#x3066; <code>master</code> &#x306B;&#x8FFD;&#x3044;&#x3064;&#x304B;&#x305B;&#x307E;&#x3059;&#x3002;</p>
<p>&#x7279;&#x5B9A;&#x306E;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x306B;&#x3057;&#x307C;&#x3063;&#x3066;&#x30EC;&#x30D7;&#x30EA;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x3057;&#x305F;&#x3044;&#x306E;&#x3067;&#x3001; <code>slave</code> &#x306E; my.cnf &#x306F;&#x4E0B;&#x8A18;&#x306E;&#x611F;&#x3058;&#x306B;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<pre><code>[mysqld]
innodb_file_per_table
innodb_file_format = Barracuda

server-id = 2
replicate-do-table = zabbix.history
</code></pre>
<p>&#x30C0;&#x30F3;&#x30D7;&#x306E;&#x969B;&#x306E; <code>--master-data=2</code> &#x306E;&#x51FA;&#x529B;&#x3092;&#x5229;&#x7528;&#x3057;&#x3066;&#x30EC;&#x30D7;&#x30EA;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x3092;&#x958B;&#x59CB;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<pre><code>-- @slave

CHANGE MASTER TO
MASTER_HOST = &apos;&lt;master&gt;&apos;,
MASTER_USER = &apos;repl&apos;,
MASTER_PASSWORD = &apos;replpass&apos;,
MASTER_LOG_FILE = &apos;mysql-bin.000002&apos;,
MASTER_LOG_POS = 14490978;

START SLAVE;
</code></pre>
<h3 id>&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x30B9;&#x30DA;&#x30FC;&#x30B9;&#x306E;&#x30B3;&#x30D4;&#x30FC;</h3>
<p>&#x30EC;&#x30D7;&#x30EA;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x304C;&#x8FFD;&#x3044;&#x3064;&#x3044;&#x305F;&#x3089;&#x3001;&#x30C8;&#x30E9;&#x30F3;&#x30B9;&#x30DD;&#x30FC;&#x30BF;&#x30D6;&#x30EB;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x30B9;&#x30DA;&#x30FC;&#x30B9;&#x3067;&#x5727;&#x7E2E;&#x5F62;&#x5F0F;&#x306B;&#x306A;&#x3063;&#x305F; ibd &#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3092; <code>master</code> &#x306B;&#x6301;&#x3063;&#x3066;&#x3044;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<h4 id>&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x306E;&#x505C;&#x6B62;&#x3068;&#x30B3;&#x30D4;&#x30FC;&#x306E;&#x6E96;&#x5099;</h4>
<p>Zabbix Server &#x3092;&#x505C;&#x6B62;&#x3057;&#x3066;&#x3001;</p>
<pre><code>[master]# systemctl stop zabbix-server.service
</code></pre>
<p>&#x30EC;&#x30D7;&#x30EA;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x3092;&#x6B62;&#x3081;&#x3066;&#x3001;</p>
<pre><code>-- @slave
STOP SLAVE;
RESET SLAVE ALL;
</code></pre>
<p><code>master</code> &#x306E;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x3092;&#x5727;&#x7E2E;&#x5F62;&#x5F0F;&#x306B;&#x4F5C;&#x308A;&#x76F4;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<pre><code>-- @master
DROP TABLE history;
</code></pre>
<p>&#x2193; &#x672C;&#x6765;&#x306F; <code>slave</code> &#x3067;&#x306E; SHOW CREATE TABLE &#x306E;&#x51FA;&#x529B;&#x3092;&#x4F7F;&#x3046;&#x3079;&#x304D;&#x3067;&#x3059;&#x3002;&#x3053;&#x3053;&#x3067;&#x306F;&#x624B;&#x629C;&#x304D;&#x3057;&#x3066;&#x307E;&#x3059;&#x3002;</p>
<pre><code>[master]# cat tbl_history.sql | mysql -uroot zabbix
</code></pre>
<h4 id>&#x3044;&#x3056;&#x30C8;&#x30E9;&#x30F3;&#x30B9;&#x30DD;&#x30FC;&#x30C8;</h4>
<p><code>master</code> &#x306E;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x306E;&#x65E2;&#x5B58;&#x306E;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x30B9;&#x30DA;&#x30FC;&#x30B9;&#x3092;&#x7834;&#x68C4;&#x3057;&#x3001;</p>
<pre><code>-- @master
ALTER TABLE history DISCARD TABLESPACE;
</code></pre>
<p><code>slave</code> &#x3067;&#x30A8;&#x30AF;&#x30B9;&#x30DD;&#x30FC;&#x30C8;&#x306E;&#x305F;&#x3081;&#x306B;&#x30ED;&#x30C3;&#x30AF;&#x3057;&#x307E;&#x3059;&#x3002;<br>
(&#x3053;&#x306E;&#x6642;&#x70B9;&#x3067;&#x5F8C;&#x8FF0;&#x306E; cfg &#x304C;&#x4F5C;&#x6210;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;)</p>
<pre><code>-- @slave
FLUSH TABLES history FOR EXPORT;
</code></pre>
<p>&#x305D;&#x3057;&#x3066;&#x3001; <code>slave</code> &#x306E;&#x3001;<br>
<code>/var/lib/mysql/zabbix/{history.ibd,history.cfg}</code><br>
&#x3092; <code>master</code> &#x306E;&#x540C;&#x3058;&#x30D1;&#x30B9;&#x306B;&#x6301;&#x3063;&#x3066;&#x3044;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p>&#x305D;&#x306E;&#x5F8C;&#x3001; <code>master</code> &#x3067;&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x30B9;&#x30DA;&#x30FC;&#x30B9;&#x3092;&#x8AAD;&#x307F;&#x8FBC;&#x307F;&#x307E;&#x3059;&#x3002;<br>
(&#x60F3;&#x5B9A;&#x5916;&#x3060;&#x3063;&#x305F;&#x3051;&#x3069;&#x3053;&#x308C;&#x3082;&#x7D50;&#x69CB;&#x304B;&#x304B;&#x3063;&#x305F;&#x2026;&#x3002;3 &#x6642;&#x9593;&#x304F;&#x3089;&#x3044;&#x3002;)</p>
<pre><code>-- @master
ALTER TABLE history IMPORT TABLESPACE;
</code></pre>
<h4 id>&#x30B5;&#x30FC;&#x30D3;&#x30B9;&#x306E;&#x518D;&#x958B;</h4>
<p>&#x8AAD;&#x307F;&#x8FBC;&#x3081;&#x305F;&#x3089;&#x3001;Zabbix Server &#x3092;&#x518D;&#x958B;&#x3057;&#x307E;&#x3057;&#x3087;&#x3046;&#x3002;</p>
<pre><code>[master]# systemctl start zabbix-server.service
</code></pre>
<h4 id>&#x304A;&#x6383;&#x9664;</h4>
<p><code>master</code> &#x306B;&#x6301;&#x3063;&#x3066;&#x3044;&#x3063;&#x305F; cfg &#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x306F;&#x3001;&#x30A4;&#x30F3;&#x30DD;&#x30FC;&#x30C8;&#x5F8C;&#x306F;&#x524A;&#x9664;&#x3057;&#x3066;&#x3057;&#x307E;&#x3063;&#x3066; OK &#x3067;&#x3059;&#x3002;</p>
<p>&#x307E;&#x305F;&#x3001; <code>slave</code> &#x3067;&#x53D6;&#x5F97;&#x3057;&#x305F;&#x30ED;&#x30C3;&#x30AF;&#x306F;&#x4E0B;&#x8A18;&#x3067;&#x958B;&#x653E;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<pre><code>-- @slave
UNLOCK TABLES;
</code></pre>
<h2 id>&#x304A;&#x308F;&#x308A;&#x306B;</h2>
<p>&#x3053;&#x306E;&#x4F5C;&#x696D;&#x3067;&#x3001; <code>history.ibd</code> &#x306E;&#x30B5;&#x30A4;&#x30BA;&#x3092; 171GB &#x304B;&#x3089; 82GB &#x306B;&#x7E2E;&#x3081;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3057;&#x305F;&#x3002;<br>
&#x203B; Zabbix &#x306E; housekeeping &#x3067;&#x30D5;&#x30E9;&#x30B0;&#x30E1;&#x30F3;&#x30C8;&#x3057;&#x3066;&#x305F;&#x308A;&#x3059;&#x308B;&#x306E;&#x3067;&#x3001;&#x5727;&#x7E2E;&#x306E;&#x52B9;&#x679C;&#x306E;&#x307F;&#x3067;&#x306F;&#x306A;&#x3044;&#x306E;&#x3067;&#x3059;&#x304C;&#x3002;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[systemd で ulimit 上げるときの推奨の方法]]></title><description><![CDATA[<!--kg-card-begin: markdown--><h2 id="tldr">TL;DR</h2>
<ul>
<li>&#x30E6;&#x30CB;&#x30C3;&#x30C8;&#x8A2D;&#x5B9A;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x306B; LimitNOFILE &#x3092;&#x66F8;&#x304F;</li>
<li><code>/etc/systemd/system/&lt;unit&gt;.d/override.conf</code> &#x306B;&#x66F8;&#x304F;&#x3068;&#x306A;&#x304A;&#x3088;&#x3044;</li>
</ul>
<h2 id>&#x7D4C;&#x7DEF;</h2>
<p>CentOS 7 &#x306B; MariaDB &#x3092;&#x69CB;&#x7BC9;&#x3057;&#x3066;&#x3044;&#x3066;&#x3001;my.cnf</p>]]></description><link>https://blog.kteru.net/systemd-ulimit-tips/</link><guid isPermaLink="false">5bcef5e12ab890283a356e1c</guid><category><![CDATA[systemd]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Thu, 16 Jul 2015 08:11:16 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><h2 id="tldr">TL;DR</h2>
<ul>
<li>&#x30E6;&#x30CB;&#x30C3;&#x30C8;&#x8A2D;&#x5B9A;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x306B; LimitNOFILE &#x3092;&#x66F8;&#x304F;</li>
<li><code>/etc/systemd/system/&lt;unit&gt;.d/override.conf</code> &#x306B;&#x66F8;&#x304F;&#x3068;&#x306A;&#x304A;&#x3088;&#x3044;</li>
</ul>
<h2 id>&#x7D4C;&#x7DEF;</h2>
<p>CentOS 7 &#x306B; MariaDB &#x3092;&#x69CB;&#x7BC9;&#x3057;&#x3066;&#x3044;&#x3066;&#x3001;my.cnf &#x306B;&#x4E0B;&#x8A18;&#x8A2D;&#x5B9A;&#x3092;&#x5165;&#x308C;&#x3066;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<pre><code>open-files-limit = 65536
</code></pre>
<p>&#x3057;&#x304B;&#x3057;&#x3001;&#x30D7;&#x30ED;&#x30BB;&#x30B9;&#x306E; Limit &#x3092;&#x8ABF;&#x3079;&#x3066;&#x307F;&#x308B;&#x3068; 1024 &#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x3066;&#x3001;&#x30ED;&#x30B0;&#x306B;&#x3082;&#x305D;&#x306E;&#x65E8;&#x304C;&#x51FA;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<pre><code># cat /proc/`pidof mysqld`/limits | grep -i &quot;max open files&quot;
Max open files            1024                 4096                 files

# tailf /var/log/mariadb/mariadb.log
...snip...
150712 16:48:49 [Warning] Could not increase number of max_open_files to more than 1024 (request: 2159)
...snip...
</code></pre>
<h2 id>&#x304A;&#x3059;&#x3059;&#x3081;&#x306E;&#x8A2D;&#x5B9A;&#x65B9;&#x6CD5;</h2>
<p>systemd &#x306E;&#x30E6;&#x30CB;&#x30C3;&#x30C8;&#x8A2D;&#x5B9A;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x306B; LimitNOFILE &#x3092;&#x66F8;&#x304F;&#x3053;&#x3068;&#x3067;&#x5236;&#x9650;&#x3092;&#x7DE9;&#x548C;&#x3067;&#x304D;&#x307E;&#x3059;&#x304C;&#x3001;rpm &#x3067;&#x914D;&#x7F6E;&#x3055;&#x308C;&#x308B;&#x30E6;&#x30CB;&#x30C3;&#x30C8;&#x8A2D;&#x5B9A;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x306B;&#x306F;&#x3001;&#x3042;&#x307E;&#x308A;&#x89E6;&#x308C;&#x305F;&#x304F;&#x3042;&#x308A;&#x307E;&#x305B;&#x3093;&#x3002;</p>
<p>&#x305D;&#x3053;&#x3067;&#x4E0B;&#x8A18;&#x306E;&#x3088;&#x3046;&#x306B;&#x3001;&quot;&#x30E6;&#x30CB;&#x30C3;&#x30C8;&#x540D;.d&quot; &#x3067;&#x30C7;&#x30A3;&#x30EC;&#x30AF;&#x30C8;&#x30EA;&#x3092;&#x6398;&#x308A;&#x3001;&#x305D;&#x306E;&#x4E2D;&#x306B;&#x4E0A;&#x66F8;&#x304D;&#x3057;&#x305F;&#x3044;&#x9805;&#x76EE;&#x3060;&#x3051;&#x8A18;&#x8FF0;&#x3057;&#x307E;&#x3059;&#x3002;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x540D;&#x306F; override.conf &#x3067;&#x306A;&#x304F;&#x3066;&#x3082;&#x826F;&#x3044;&#x3067;&#x3059;&#x3002;</p>
<p><code>/etc/systemd/system/mariadb.service.d/override.conf</code></p>
<pre><code>[Service]
LimitNOFILE=65536
</code></pre>
<p>&#x53CD;&#x6620;&#x3055;&#x308C;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<pre><code># systemctl daemon-reload
# systemctl restart mariadb.service

# cat /proc/`pidof mysqld`/limits | grep -i &quot;max open files&quot;
Max open files            65536                65536                files
</code></pre>
<h2 id>&#x304A;&#x308F;&#x308A;&#x306B;</h2>
<p>&#x3088;&#x304F;&#x3088;&#x304F;&#x898B;&#x308B;&#x3068;&#x3001;rpm &#x3067;&#x914D;&#x7F6E;&#x3055;&#x308C;&#x305F; <code>/usr/lib/systemd/system/mariadb.service</code> &#x306E;&#x4E2D;&#x306E;&#x30B3;&#x30E1;&#x30F3;&#x30C8;&#x306B;&#x3053;&#x3093;&#x306A;&#x8A18;&#x8FF0;&#x304C;&#x3042;&#x3063;&#x305F;&#x306E;&#x3067;&#x3057;&#x305F;&#x3002;</p>
<pre><code># For example, if you want to increase mariadb&apos;s open-files-limit to 10000,
# you need to increase systemd&apos;s LimitNOFILE setting, so create a file named
# &quot;/etc/systemd/system/mariadb.service.d/limits.conf&quot; containing:
#       [Service]
#       LimitNOFILE=10000
</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Vagrant の bridge にホストマシンのデフォルトルートの NIC を自動指定する]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>VirtualBox on OS X &#x306B;&#x3066; Vagrant &#x3067;&#x8907;&#x6570; VM &#x3092;&#x8D77;&#x52D5;&#x3059;&#x308B;&#x3068;&#x304D;&#x3001;public_network &#x3092;&#x4F7F;&#x3063;&#x3066;&#x3044;&#x308B;&#x3068;&#x6BCE;&#x5EA6;&#x30D6;&#x30EA;&#x30C3;&#x30B8;&#x30A4;&#x30F3;&#x30BF;&#x30D5;&#x30A7;&#x30FC;&#x30B9;&#x306E;&#x9078;&#x629E;&#x304C;&#x9762;&#x5012;&#x3067;&#x3059;&#x3002;</p>]]></description><link>https://blog.kteru.net/vagrant-bridge-selection/</link><guid isPermaLink="false">5bcef5e12ab890283a356e1a</guid><category><![CDATA[Vagrant]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Wed, 15 Apr 2015 02:21:07 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>VirtualBox on OS X &#x306B;&#x3066; Vagrant &#x3067;&#x8907;&#x6570; VM &#x3092;&#x8D77;&#x52D5;&#x3059;&#x308B;&#x3068;&#x304D;&#x3001;public_network &#x3092;&#x4F7F;&#x3063;&#x3066;&#x3044;&#x308B;&#x3068;&#x6BCE;&#x5EA6;&#x30D6;&#x30EA;&#x30C3;&#x30B8;&#x30A4;&#x30F3;&#x30BF;&#x30D5;&#x30A7;&#x30FC;&#x30B9;&#x306E;&#x9078;&#x629E;&#x304C;&#x9762;&#x5012;&#x3067;&#x3059;&#x3002;<br>
&#x5404; VM &#x306E;&#x8D77;&#x52D5;&#x6642;&#x306B;&#x90FD;&#x5EA6;&#x9078;&#x629E;&#x753B;&#x9762;&#x304C;&#x51FA;&#x308B;&#x306E;&#x3067;&#x3001;&#x5168;&#x53F0;&#x8D77;&#x52D5;&#x3059;&#x308B;&#x307E;&#x3067;&#x30BF;&#x30FC;&#x30DF;&#x30CA;&#x30EB;&#x306B;&#x5F35;&#x308A;&#x4ED8;&#x3044;&#x3066;&#x3044;&#x306A;&#x3044;&#x3068;&#x3044;&#x3051;&#x307E;&#x305B;&#x3093;&#x3002;</p>
<p>&#x4E0B;&#x8A18;&#x306E;&#x3088;&#x3046;&#x306B;&#x56FA;&#x5B9A;&#x3057;&#x3066;&#x3057;&#x307E;&#x3063;&#x3066;&#x3082;&#x826F;&#x3044;&#x306E;&#x3067;&#x3059;&#x304C;&#x3001;&#x30DB;&#x30B9;&#x30C8;&#x30DE;&#x30B7;&#x30F3;&#x304C;&#x6709;&#x7DDA;&#x63A5;&#x7D9A;&#x306A;&#x6642;&#x306F;&#x305D;&#x3061;&#x3089;&#x306B;&#x30D6;&#x30EA;&#x30C3;&#x30B8;&#x3057;&#x305F;&#x3044;&#x3068;&#x3044;&#x3046;&#x6B32;&#x3082;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<pre><code>config.vm.network &quot;public_network&quot;, bridge: &apos;en0: Wi-Fi (AirPort)&apos;
</code></pre>
<p>&#x305D;&#x3093;&#x306A;&#x3068;&#x304D;&#x306F;&#x4E0B;&#x8A18;&#x306E;&#x3088;&#x3046;&#x306B; Vagrantfile &#x4E2D;&#x306B;&#x4E00;&#x6587;&#x5165;&#x308C;&#x3066;&#x3057;&#x307E;&#x3048;&#x3070;&#x826F;&#x3044;&#x3067;&#x3059;&#x3002;<br>
&#x3042;&#x308A;&#x304C;&#x305F;&#x3044;&#x3053;&#x3068;&#x306B;&#x3001;<code>VBoxManage list bridgedifs</code> &#x306F;&#x3001;&#x30DB;&#x30B9;&#x30C8;&#x30DE;&#x30B7;&#x30F3;&#x306E;&#x30C7;&#x30D5;&#x30A9;&#x30EB;&#x30C8;&#x30EB;&#x30FC;&#x30C8;&#x306E;&#x30A4;&#x30F3;&#x30BF;&#x30D5;&#x30A7;&#x30FC;&#x30B9;&#x3092; 1 &#x756A;&#x76EE;&#x306B;&#x51FA;&#x529B;&#x3057;&#x3066;&#x304F;&#x308C;&#x308B;&#x306E;&#x3067;&#x3001;&#x3053;&#x308C;&#x3092; bridge &#x30AA;&#x30D7;&#x30B7;&#x30E7;&#x30F3;&#x306B;&#x5165;&#x308C;&#x308B;&#x3088;&#x3046;&#x306B;&#x3057;&#x307E;&#x3059;&#x3002;</p>
<pre><code>Vagrant.configure(2) do |config|
  ...snip...

  # &#x30DB;&#x30B9;&#x30C8;&#x30DE;&#x30B7;&#x30F3;&#x306E;&#x30C7;&#x30D5;&#x30A9;&#x30EB;&#x30C8;&#x30EB;&#x30FC;&#x30C8;&#x306E; NIC &#x3092;&#x53D6;&#x5F97;
  bridge_if = %x(VBoxManage list bridgedifs | grep &apos;^Name:&apos; | head -n 1).chomp.sub(/^Name: +/, &quot;&quot;)

  config.vm.define :web do |web|
    web.vm.network &quot;private_network&quot;, ip: &quot;172.16.0.101&quot;, netmask: &quot;255.255.255.0&quot;
    web.vm.network &quot;public_network&quot;, bridge: bridge_if
  end

  config.vm.define :api do |api|
    api.vm.network &quot;private_network&quot;, ip: &quot;172.16.0.102&quot;, netmask: &quot;255.255.255.0&quot;
    api.vm.network &quot;public_network&quot;, bridge: bridge_if
  end

  config.vm.define :db do |db|
    db.vm.network &quot;private_network&quot;, ip: &quot;172.16.0.103&quot;, netmask: &quot;255.255.255.0&quot;
    db.vm.network &quot;public_network&quot;, bridge: bridge_if
  end
end
</code></pre>
<p>&#x3061;&#x306A;&#x307F;&#x306B;&#x3001;<code>use_dhcp_assigned_default_route</code> &#x3092;&#x66F8;&#x3044;&#x3066;&#x304A;&#x304F;&#x3068;&#x3001;VM &#x306E;&#x30C7;&#x30D5;&#x30A9;&#x30EB;&#x30C8;&#x30EB;&#x30FC;&#x30C8;&#x304C; public_network &#x306B;&#x306A;&#x3063;&#x3066;&#x4F55;&#x304B;&#x3068;&#x4FBF;&#x5229;&#x3067;&#x3059;&#x3002;</p>
<pre><code>config.vm.network &quot;public_network&quot;, use_dhcp_assigned_default_route: true
</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[[syslog-ng] 「特定の送信元 IP・それ以外」のフィルタ設定]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>&#x4E45;&#x3005;&#x306B; syslog-ng &#x3092;&#x4F7F;&#x3046;&#x6A5F;&#x4F1A;&#x304C;&#x3042;&#x3063;&#x305F;&#x306E;&#x3067;&#x30E1;&#x30E2;&#x3002;</p>
<h2 id>&#x3084;&#x308A;&#x305F;&#x3044;&#x3053;&#x3068;</h2>
<ul>
<li>&#x3044;&#x304F;&#x3064;&#x304B;&#x306E;&#x7279;&#x5B9A;&#x306E; IP &#x306F;&#x3001;1 &#x3064;&#x306E;&#x30ED;&#x30B0;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x306B;&#x307E;&#x3068;&#x3081;&#x305F;&#x3044;</li></ul>]]></description><link>https://blog.kteru.net/syslog-ng-filter/</link><guid isPermaLink="false">5bcef5e12ab890283a356e1e</guid><category><![CDATA[Diary]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Mon, 23 Mar 2015 13:45:16 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>&#x4E45;&#x3005;&#x306B; syslog-ng &#x3092;&#x4F7F;&#x3046;&#x6A5F;&#x4F1A;&#x304C;&#x3042;&#x3063;&#x305F;&#x306E;&#x3067;&#x30E1;&#x30E2;&#x3002;</p>
<h2 id>&#x3084;&#x308A;&#x305F;&#x3044;&#x3053;&#x3068;</h2>
<ul>
<li>&#x3044;&#x304F;&#x3064;&#x304B;&#x306E;&#x7279;&#x5B9A;&#x306E; IP &#x306F;&#x3001;1 &#x3064;&#x306E;&#x30ED;&#x30B0;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x306B;&#x307E;&#x3068;&#x3081;&#x305F;&#x3044;</li>
<li>&#x305D;&#x308C;&#x4EE5;&#x5916;&#x306F;&#x3001;IP &#x6BCE;&#x306B;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3092;&#x5206;&#x5272;&#x3057;&#x305F;&#x3044;</li>
</ul>
<p>&#x305F;&#x3068;&#x3048;&#x3070;&#x3001;&#x30CD;&#x30C3;&#x30C8;&#x30EF;&#x30FC;&#x30AF;&#x6A5F;&#x5668;&#x306E;&#x30ED;&#x30B0;&#x306F; 1 &#x3064;&#x306B;&#x307E;&#x3068;&#x3081;&#x3001;&#x305D;&#x306E;&#x4ED6;&#x30B5;&#x30FC;&#x30D0;&#x6A5F;&#x5668;&#x306E;&#x30ED;&#x30B0;&#x306F;&#x500B;&#x5225;&#x306B;&#x5206;&#x5272;&#x3057;&#x305F;&#x3044;&#x3001;&#x3068;&#x3044;&#x3046;&#x3088;&#x3046;&#x306A;&#x6642;&#x3002;</p>
<h2 id>&#x8A2D;&#x5B9A;</h2>
<p>&#x3053;&#x3093;&#x306A;&#x611F;&#x3058;&#x306B;&#x3059;&#x308B;</p>
<pre><code>source s_remote {
  tcp(ip(0.0.0.0) port(514)); udp(ip(0.0.0.0) port(514));
};

filter f_specific {
  host(^172.16.0.1$) or
  host(^172.16.0.2$) or
  host(^172.16.0.253$) or
  host(^172.16.0.254$);
};

filter f_other {
  not filter(f_specific);
};

destination d_separate {
  file(&quot;/var/log/syslog-ng/$HOST/syslog.$YEAR-$MONTH-$DAY&quot; create_dirs(yes));
};

destination d_merge {
  file(&quot;/var/log/syslog-ng/merged/syslog.$YEAR-$MONTH-$DAY&quot; create_dirs(yes));
};

log { source(s_remote); filter(f_specific); destination(d_merge); };
log { source(s_remote); filter(f_other); destination(d_separate); };
</code></pre>
<p>&#x30DD;&#x30A4;&#x30F3;&#x30C8;&#x306F;&#x3001;f_specific &#x3092;&#x5426;&#x5B9A;&#x3059;&#x308B;&#x3053;&#x3068;&#x306B;&#x3088;&#x308A;&#x3001;&quot;&#x7279;&#x5B9A;&#x306E;&#x9001;&#x4FE1;&#x5143; IP&quot; &#x3068; &quot;&#x305D;&#x308C;&#x4EE5;&#x5916;&#x306E; IP&quot; &#x3068;&#x3044;&#x3046;&#x30D5;&#x30A3;&#x30EB;&#x30BF;&#x3092;&#x4F5C;&#x3063;&#x3066;&#x3044;&#x308B;&#x70B9;&#x3002;</p>
<p>&#x203B; host() &#x306E;&#x5F15;&#x6570;&#x306F; regexp &#x3067;&#x3042;&#x308B;&#x3053;&#x3068;&#x306B;<a href="https://www.balabit.com/sites/default/files/documents/syslog-ng-ose-3.3-guides/en/syslog-ng-ose-v3.3-guide-admin-en/html/reference_filters.html?ref=blog.kteru.net#filter-host">&#x6CE8;&#x610F;</a></p>
<hr>
<ul>
<li>&#x521D;&#x7A3F; (Mon Mar 23 22:44:13 JST 2015)</li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[[OS X] DHCP で取得した DNS サーバを使いつつ dnsmasq を使う]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>&#x691C;&#x8A3C;&#x3084;&#x958B;&#x767A;&#x306E;&#x305F;&#x3081;&#x306B; OS X &#x30ED;&#x30FC;&#x30AB;&#x30EB;&#x3067; dnsmasq &#x3092;&#x4F7F;&#x3046;&#x3068;&#x304D;&#x3001;</p>
<ul>
<li>&#x30EA;&#x30BE;&#x30EB;&#x30D0;&#x306E;&#x5411;&#x304D;&#x5148;&#x3092;&#x5909;&#x3048;&#x308B;&#x305F;&#x3081;&#x306B;&#x3044;&#x3061;&#x3044;&#x3061;&#x30CD;&#x30C3;&#x30C8;&#x30EF;&#x30FC;&#x30AF;&#x74B0;&#x5883;</li></ul>]]></description><link>https://blog.kteru.net/dhcp-and-dnsmasq/</link><guid isPermaLink="false">5bcef5e12ab890283a356e1d</guid><category><![CDATA[Dnsmasq]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Mon, 08 Dec 2014 11:24:36 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>&#x691C;&#x8A3C;&#x3084;&#x958B;&#x767A;&#x306E;&#x305F;&#x3081;&#x306B; OS X &#x30ED;&#x30FC;&#x30AB;&#x30EB;&#x3067; dnsmasq &#x3092;&#x4F7F;&#x3046;&#x3068;&#x304D;&#x3001;</p>
<ul>
<li>&#x30EA;&#x30BE;&#x30EB;&#x30D0;&#x306E;&#x5411;&#x304D;&#x5148;&#x3092;&#x5909;&#x3048;&#x308B;&#x305F;&#x3081;&#x306B;&#x3044;&#x3061;&#x3044;&#x3061;&#x30CD;&#x30C3;&#x30C8;&#x30EF;&#x30FC;&#x30AF;&#x74B0;&#x5883;&#x8A2D;&#x5B9A;&#x3092;&#x958B;&#x304F;&#x306E;&#x304C;&#x9762;&#x5012; (&#x30B3;&#x30DE;&#x30F3;&#x30C9;&#x3067;&#x3082;&#x3067;&#x304D;&#x308B;&#x3051;&#x3069;)</li>
<li>&#x6307;&#x5B9A;&#x30C9;&#x30E1;&#x30A4;&#x30F3;&#x540D;&#x4EE5;&#x5916;&#x306F;&#x901A;&#x5E38;&#x901A;&#x308A;&#x540D;&#x524D;&#x89E3;&#x6C7A;&#x3057;&#x305F;&#x3044;</li>
</ul>
<p>&#x3068;&#x601D;&#x3063;&#x3066;&#x3044;&#x308B;&#x4EBA;&#x306E;&#x305F;&#x3081;&#x306B;&#x3002;</p>
<h2 id="tldr">TL;DR</h2>
<p>/etc/resolver &#x914D;&#x4E0B;&#x306B;&#x6307;&#x5B9A;&#x30C9;&#x30E1;&#x30A4;&#x30F3;&#x540D;&#x3067;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3092;&#x4F5C;&#x308C;&#x3070;&#x826F;&#x3044;&#x3002;</p>
<h2 id>&#x65B9;&#x6CD5;</h2>
<h3 id>&#x6307;&#x5B9A;&#x30C9;&#x30E1;&#x30A4;&#x30F3;&#x306E;&#x30EA;&#x30BE;&#x30EB;&#x30D0;&#x3092;&#x5909;&#x66F4;</h3>
<h4 id>&#x8A2D;&#x5B9A;</h4>
<pre><code>$ sudo mkdir /etc/resolver
$ sudo chown &lt;USER&gt;:wheel /etc/resolver
$ echo &apos;nameserver 127.0.0.1&apos; &gt; /etc/resolver/example.com
</code></pre>
<p>OS X &#x3067;&#x306F; /etc/resolver &#x914D;&#x4E0B;&#x306B;&#x30C9;&#x30E1;&#x30A4;&#x30F3;&#x540D;&#x3067;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3092;&#x4F5C;&#x308B; (&#x66F8;&#x5F0F;&#x306F; resolv.conf &#x3068;&#x540C;&#x3058;) &#x3068;&#x3001;&#x305D;&#x306E;&#x30C9;&#x30E1;&#x30A4;&#x30F3;&#x306E; DNS &#x30B5;&#x30FC;&#x30D0;&#x3092;&#x5909;&#x66F4;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x308B;&#x3002;<br>
&#x4ECA;&#x56DE;&#x306F;&#x30ED;&#x30FC;&#x30AB;&#x30EB;&#x306E; dnsmasq &#x306B;&#x5411;&#x3051;&#x308B;&#x306E;&#x3067;&#x3001;<code>nameserver 127.0.0.1</code> &#x3068;&#x3057;&#x3066;&#x3044;&#x308B;&#x3002;</p>
<p>&#x3053;&#x308C;&#x306B;&#x3088;&#x3063;&#x3066;&#x901A;&#x5E38;&#x901A;&#x308A; /etc/resolv.conf &#x3092;&#x4F7F;&#x3044;&#x3064;&#x3064;&#x3082;&#x3001;&#x6307;&#x5B9A;&#x306E;&#x30C9;&#x30E1;&#x30A4;&#x30F3;&#x306E;&#x307F; 127.0.0.1 &#x3092;&#x4F7F;&#x3063;&#x3066;&#x304F;&#x308C;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308B;&#x3002;<br>
&#x5834;&#x6240;&#x79FB;&#x52D5;&#x7B49;&#x3067;&#x3001;DHCP &#x3067;&#x53D6;&#x5F97;&#x3057;&#x305F; DNS &#x30B5;&#x30FC;&#x30D0;&#x304C;&#x5909;&#x308F;&#x3063;&#x3066;&#x3082;&#x6C17;&#x306B;&#x3057;&#x306A;&#x3044;&#x3067;&#x826F;&#x304F;&#x306A;&#x308B;&#x3002;</p>
<p>&#x3044;&#x3061;&#x3044;&#x3061; sudo &#x3057;&#x306A;&#x304F;&#x3066;&#x826F;&#x3044;&#x3088;&#x3046;&#x306B;&#x3001;/etc/resolver &#x306E;&#x30AA;&#x30FC;&#x30CA;&#x30FC;&#x3092;&#x30ED;&#x30B0;&#x30A4;&#x30F3;&#x30E6;&#x30FC;&#x30B6;&#x306B;&#x3057;&#x3066;&#x304A;&#x304F;&#x3068;&#x826F;&#x3044;&#x3002;</p>
<h4 id>&#x78BA;&#x8A8D;</h4>
<pre><code>$ scutil --dns
   ...snip...
resolver #2
  domain   : example.com
  nameserver[0] : 127.0.0.1
  flags    : Request A records, Request AAAA records
  reach    : Reachable,Local Address
   ...snip...
</code></pre>
<h3 id="dnsmasq">dnsmasq</h3>
<h4 id>&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;</h4>
<pre><code>$ brew install dnsmasq
</code></pre>
<h4 id>&#x8A2D;&#x5B9A;</h4>
<p><code>/usr/local/etc/dnsmasq.conf</code></p>
<pre><code>listen-address=127.0.0.1
user=&lt;USER&gt;
conf-dir=/usr/local/etc/dnsmasq.d
resolv-file=/etc/resolv.conf
</code></pre>
<p><code>/usr/local/etc/dnsmasq.d/example.com</code></p>
<pre><code>address=/www.example.com/10.0.0.101
</code></pre>
<p>resolv-file &#x3067; /etc/resolv.conf &#x3092;&#x6307;&#x5B9A;&#x3059;&#x308B;&#x3053;&#x3068;&#x3067;&#x3001;&#x6307;&#x5B9A;&#x306E;&#x30C9;&#x30E1;&#x30A4;&#x30F3;&#x306E;&#x4E2D;&#x3067;&#x3082; dnsmasq &#x306B;&#x3066;&#x30DE;&#x30C3;&#x30C1;&#x3057;&#x306A;&#x304B;&#x3063;&#x305F;&#x3082;&#x306E;&#x306F;&#x3001;/etc/resolv.conf &#x306E; DNS &#x30B5;&#x30FC;&#x30D0;&#x306B;&#x554F;&#x3044;&#x5408;&#x308F;&#x305B;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308B;&#x3002;</p>
<h4 id>&#x8D77;&#x52D5;&#x30FB;&#x81EA;&#x52D5;&#x8D77;&#x52D5;&#x8A2D;&#x5B9A;</h4>
<pre><code>$ sudo cp -a /usr/local/opt/dnsmasq/homebrew.mxcl.dnsmasq.plist /Library/LaunchDaemons
$ sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
$ sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
</code></pre>
<h4 id>&#x518D;&#x8D77;&#x52D5;&#x30FB;&#x30EA;&#x30ED;&#x30FC;&#x30C9;</h4>
<pre><code>$ pkill dnsmasq
</code></pre>
<p>user &#x3092;&#x6307;&#x5B9A;&#x3057;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;&#x3001;&#x30ED;&#x30B0;&#x30A4;&#x30F3;&#x30E6;&#x30FC;&#x30B6;&#x3067; kill &#x3057;&#x3066;&#x518D;&#x8D77;&#x52D5;&#x3067;&#x304D;&#x308B;&#x3002;(launchctl &#x3092;&#x53E9;&#x304F;&#x306E;&#x306F;&#x9762;&#x5012;)</p>
<h2 id>&#x3055;&#x3044;&#x3054;&#x306B;</h2>
<p>/etc/resolver &#x914D;&#x4E0B;&#x306B;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3092;&#x7F6E;&#x3044;&#x3066;&#x304B;&#x3089;&#x3001;&#x5B9F;&#x969B;&#x306B; dnsmasq &#x306B;&#x805E;&#x304D;&#x306B;&#x884C;&#x3063;&#x3066;&#x304F;&#x308C;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308B;&#x307E;&#x3067; 2,3 &#x5206;&#x306E;&#x30E9;&#x30B0;&#x304C;&#x3042;&#x308B;&#x6C17;&#x304C;&#x3059;&#x308B;&#x3002;</p>
<hr>
<ul>
<li>&#x521D;&#x7A3F; (Mon Dec 8 20:24:07 JST 2014)</li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Supervisor の始め方とポイント]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>&#x3088;&#x3046;&#x3084;&#x3063;&#x3068; daemontools &#x304B;&#x3089; Supervisor &#x306B;&#x4E57;&#x308A;&#x63DB;&#x3048;&#x307E;&#x3057;&#x305F;&#x3002;<br>
&#x30CA;&#x30A6;&#x304F;&#x3066;&#x3044;&#x3044;&#x3067;&#x3059;&#x306D;&#x3002;</p>
<p>&#x3061;&#x3087;&#x3063;&#x3068;&#x30DD;&#x30A4;&#x30F3;&#x30C8;&#x66F8;&#x3044;&#x3066;&#x3044;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p>(&#x30D0;&#x30FC;&#x30B8;&#x30E7;&#x30F3;: supervisor</p>]]></description><link>https://blog.kteru.net/supervisor-usage-tips/</link><guid isPermaLink="false">5bcef5e12ab890283a356e17</guid><category><![CDATA[Diary]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Tue, 21 Oct 2014 15:17:21 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>&#x3088;&#x3046;&#x3084;&#x3063;&#x3068; daemontools &#x304B;&#x3089; Supervisor &#x306B;&#x4E57;&#x308A;&#x63DB;&#x3048;&#x307E;&#x3057;&#x305F;&#x3002;<br>
&#x30CA;&#x30A6;&#x304F;&#x3066;&#x3044;&#x3044;&#x3067;&#x3059;&#x306D;&#x3002;</p>
<p>&#x3061;&#x3087;&#x3063;&#x3068;&#x30DD;&#x30A4;&#x30F3;&#x30C8;&#x66F8;&#x3044;&#x3066;&#x3044;&#x304D;&#x307E;&#x3059;&#x3002;</p>
<p>(&#x30D0;&#x30FC;&#x30B8;&#x30E7;&#x30F3;: supervisor 3.1.2)</p>
<h2 id="pip">pip &#x3067;&#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;</h2>
<pre><code># yum install python-setuptools
# easy_install pip
# pip install supervisor
</code></pre>
<p>epel &#x30EA;&#x30DD;&#x30B8;&#x30C8;&#x30EA;&#x306B;&#x3082;&#x3042;&#x308A;&#x307E;&#x3059;&#x304C;&#x3001;&#x82E5;&#x5E72;&#x53E4;&#x3044;&#x306E;&#x3067; pip &#x3067;&#x5165;&#x308C;&#x308B;&#x3053;&#x3068;&#x306B;&#x3057;&#x307E;&#x3057;&#x305F;&#x3002;<br>
EPEL5/6 &#x3060;&#x3068; 2.1&#x3001;EPEL7 &#x3060;&#x3068; 3.0 &#x304C;&#x5165;&#x308A;&#x307E;&#x3057;&#x305F;&#x3002; (2014/10/21)</p>
<h2 id>&#x57FA;&#x672C;&#x8A2D;&#x5B9A;&#x3068;&#x8D77;&#x52D5;</h2>
<p>&#x30E1;&#x30A4;&#x30F3;&#x90E8;&#x5206; (Supervisor &#x81EA;&#x4F53;) &#x306E;&#x8A2D;&#x5B9A;&#x3068;&#x3001;&#x7BA1;&#x7406;&#x3059;&#x308B;&#x5B50;&#x306E;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x306E;&#x8A2D;&#x5B9A;&#x306F;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3092;&#x5206;&#x3051;&#x308B;&#x306E;&#x304C;&#x50D5;&#x306E;&#x30DD;&#x30EA;&#x30B7;&#x30FC;&#x3067;&#x3059;&#x3002;<br>
/etc/supervisord.d &#x4EE5;&#x4E0B;&#x306B;&#x7F6E;&#x3044;&#x305F; conf &#x30D5;&#x30A1;&#x30A4;&#x30EB; 1 &#x3064;&#x306B;&#x3064;&#x304D; [program:x] &#x30BB;&#x30AF;&#x30B7;&#x30E7;&#x30F3;&#x3092; 1 &#x3064;&#x66F8;&#x304F;&#x611F;&#x3058;&#x304C;&#x826F;&#x3044;&#x304B;&#x306A;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<h3 id>&#x30E1;&#x30A4;&#x30F3;&#x90E8;&#x5206;&#x306E;&#x8A2D;&#x5B9A;</h3>
<p><code>/etc/supervisord.conf</code></p>
<pre><code>[unix_http_server]
file=/var/run/supervisor.sock

[supervisord]
logfile=/var/log/supervisord.log
logfile_maxbytes=50MB
logfile_backups=10
loglevel=info
pidfile=/var/run/supervisord.pid
nodaemon=false
minfds=65536
minprocs=200

[rpcinterface:supervisor]
supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock

[include]
files=/etc/supervisord.d/*.conf
</code></pre>
<p>&#x3061;&#x306A;&#x307F;&#x306B;&#x3001;minfds &#x3092;&#x66F8;&#x3044;&#x3066;&#x304A;&#x3051;&#x3070;&#x3001;&#x5B50;&#x30D7;&#x30ED;&#x30BB;&#x30B9;&#x306E; Max open files &#x3082;&#x305D;&#x306E;&#x5024;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3057;&#x305F;&#x3002;<br>
(user &#x30D1;&#x30E9;&#x30E1;&#x30FC;&#x30BF;&#x3067;&#x52D5;&#x4F5C;&#x30E6;&#x30FC;&#x30B6;&#x3092;&#x5909;&#x66F4;&#x3057;&#x3066;&#x3044;&#x3066;&#x3082; OK &#x3063;&#x307D;&#x3044;)</p>
<h3 id>&#x81EA;&#x52D5;&#x8D77;&#x52D5;&#x8A2D;&#x5B9A;</h3>
<p>supervisord &#x306E;&#x305F;&#x3081;&#x306B;&#x8D77;&#x52D5;&#x30B9;&#x30AF;&#x30EA;&#x30D7;&#x30C8;&#x3092;&#x66F8;&#x304F;&#x306E;&#x3082;&#x30C4;&#x30E9;&#x3044;&#x306E;&#x3067;&#x3001;&#x4E0B;&#x8A18;&#x3067;&#x8D77;&#x52D5;&#x3059;&#x308B;&#x3053;&#x3068;&#x306B;&#x3002;</p>
<pre><code># echo &apos;supervisord -c /etc/supervisord.conf&apos; &gt;&gt; /etc/rc.d/rc.local
</code></pre>
<h3 id>&#x8D77;&#x52D5;</h3>
<pre><code># supervisord -c /etc/supervisord.conf
</code></pre>
<h2 id>&#x5B50;&#x306E;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x306E;&#x8A2D;&#x5B9A;</h2>
<p>&#x3060;&#x3044;&#x305F;&#x3044;&#x306E;&#x7269;&#x306F;&#x4E0B;&#x8A18;&#x3092;&#x66F8;&#x3044;&#x3066;&#x304A;&#x3051;&#x3070;&#x4E8B;&#x8DB3;&#x308A;&#x308B;&#x304B;&#x306A;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;<br>
stdout &#x3068; stderr &#x306F;&#x6307;&#x5B9A;&#x3057;&#x3066;&#x304A;&#x304B;&#x306A;&#x3044;&#x3068; /tmp &#x4EE5;&#x4E0B;&#x306B;&#x5410;&#x304B;&#x308C;&#x308B;&#x306E;&#x3067;&#x6CE8;&#x610F;&#x3002;</p>
<p><code>/etc/supervisord.d/hoge.conf</code></p>
<pre><code>[program:hoge]
command=/bin/cat
autostart=true
autorestart=true
user=nobody
directory=/tmp
stdout_logfile=/var/log/supervisord/%(program_name)s_stdout.log
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=5
stderr_logfile=/var/log/supervisord/%(program_name)s_stderr.log
stderr_logfile_maxbytes=100MB
stderr_logfile_backups=5
</code></pre>
<p>&#x3042;&#x3068;&#x306F;&#x4E0B;&#x8A18;&#x3042;&#x305F;&#x308A;&#x304C;&#x4F7F;&#x3048;&#x305D;&#x3046;&#x3067;&#x3059;&#x3002;(&#x5024;&#x306F;&#x30C7;&#x30D5;&#x30A9;&#x30EB;&#x30C8;&#x5024;)<br>
stopwaitsecs &#x306F;&#x30C7;&#x30D5;&#x30A9;&#x30EB;&#x30C8;&#x304C; 10 &#x79D2;&#x306A;&#x306E;&#x3067;&#x3001;InnoDB buffer pool dump &#x7B49;&#x3001;&#x7D42;&#x4E86;&#x306B;&#x6642;&#x9593;&#x304B;&#x304B;&#x308B;&#x5834;&#x5408;&#x306F;&#x9577;&#x3081;&#x306B;&#x3057;&#x3066;&#x304A;&#x304F;&#x3068;&#x3044;&#x3044;&#x304B;&#x3082;&#x3057;&#x308C;&#x307E;&#x305B;&#x3093;&#x3002;</p>
<ul>
<li><code>startsecs=1</code>
<ul>
<li>&#x8D77;&#x52D5;&#x6210;&#x529F;&#x3068;&#x5224;&#x5B9A;&#x3059;&#x308B;&#x79D2;&#x6570;</li>
<li>&#x3053;&#x306E;&#x6642;&#x9593;&#x4EE5;&#x5185;&#x306B; exitcodes &#x306B;&#x793A;&#x3057;&#x305F;&#x7D42;&#x4E86;&#x30B3;&#x30FC;&#x30C9;&#x3067;&#x7D42;&#x308F;&#x3063;&#x3066;&#x3082;&#x3001;&#x5931;&#x6557;&#x3068;&#x5224;&#x5B9A;&#x3059;&#x308B;</li>
<li>&#x5224;&#x5B9A;&#x4E0D;&#x8981;&#x306A;&#x3089; 0 &#x3092;&#x6307;&#x5B9A;</li>
</ul>
</li>
<li><code>startretries=3</code>
<ul>
<li>&#x8D77;&#x52D5;&#x5931;&#x6557;&#x3057;&#x305F;&#x6642;&#x306E;&#x30EA;&#x30C8;&#x30E9;&#x30A4;&#x6570;</li>
</ul>
</li>
<li><code>exitcodes=0,2</code>
<ul>
<li>&#x6B63;&#x5E38;&#x7D42;&#x4E86;&#x3068;&#x307F;&#x306A;&#x3059;&#x7D42;&#x4E86;&#x30B3;&#x30FC;&#x30C9; (&#x30AB;&#x30F3;&#x30DE;&#x533A;&#x5207;&#x308A;)</li>
</ul>
</li>
<li><code>stopsignal=TERM</code>
<ul>
<li>&#x7D42;&#x4E86;&#x3059;&#x308B;&#x3068;&#x304D;&#x306B;&#x4F7F;&#x3046;&#x30B7;&#x30B0;&#x30CA;&#x30EB;</li>
</ul>
</li>
<li><code>stopwaitsecs=10</code>
<ul>
<li><strong>&#x3053;&#x306E;&#x6642;&#x9593;&#x5185;&#x306B;&#x30D7;&#x30ED;&#x30BB;&#x30B9;&#x304C;&#x7D42;&#x4E86;&#x3057;&#x306A;&#x3044;&#x5834;&#x5408;&#x3001;KILL &#x304C;&#x9001;&#x3089;&#x308C;&#x308B;</strong></li>
</ul>
</li>
<li><code>killasgroup=false</code>
<ul>
<li>KILL &#x3092;&#x30D7;&#x30ED;&#x30BB;&#x30B9;&#x30B0;&#x30EB;&#x30FC;&#x30D7;&#x5168;&#x4F53;&#x306B;&#x9001;&#x308B;&#x304B;&#x3069;&#x3046;&#x304B;</li>
</ul>
</li>
</ul>
<h2 id>&#x64CD;&#x4F5C;</h2>
<p>&#x30BB;&#x30AF;&#x30B7;&#x30E7;&#x30F3;&#x3092;&#x5909;&#x66F4;&#x3057;&#x305F;&#x5834;&#x5408;&#x3001;<strong>reread &#x3057;&#x3066;&#x304B;&#x3089;&#x5404;&#x7A2E;&#x64CD;&#x4F5C;</strong> &#x3057;&#x307E;&#x3059;&#x3002;</p>
<h3 id>&#x5B50;&#x306E;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x306E;&#x8FFD;&#x52A0;</h3>
<p>[program:hoge] &#x30BB;&#x30AF;&#x30B7;&#x30E7;&#x30F3;&#x3092;&#x8FFD;&#x52A0;&#x3057;&#x305F;&#x3068;&#x304D;&#x306B;&#x3001;supervisord &#x3092;&#x518D;&#x8D77;&#x52D5;&#x305B;&#x305A;&#x306B;&#x53CD;&#x6620;&#x3059;&#x308B;&#x65B9;&#x6CD5;&#x3067;&#x3059;&#x3002;<br>
&#x65E9;&#x307E;&#x3063;&#x3066; supervisorctl reload &#x3059;&#x308B;&#x3068; supervisord &#x81EA;&#x4F53;&#x304C;&#x518D;&#x8D77;&#x52D5;&#x3059;&#x308B;&#x3068;&#x3044;&#x3046;&#x30C8;&#x30E9;&#x30C3;&#x30D7;&#x304C;&#x3042;&#x308B;&#x306E;&#x3067;&#x6CE8;&#x610F;&#x3067;&#x3059;&#x3002;(&#x3054;&#x3081;&#x3093;&#x306A;&#x3055;&#x3044;&#x3061;&#x3083;&#x3093;&#x3068; help &#x306B;&#x306F;&#x66F8;&#x3044;&#x3066;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;)</p>
<pre><code># vi /etc/supervisord.d/hoge.conf   # &lt;- &#x8FFD;&#x52A0;
# supervisorctl reread
hoge: available
# supervisorctl add hoge
hoge: added process group
</code></pre>
<h3 id>&#x5B50;&#x306E;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x306E;&#x66F4;&#x65B0;</h3>
<p>&#x5F15;&#x6570;&#x3084;&#x52D5;&#x4F5C;&#x30E6;&#x30FC;&#x30B6;&#x306E;&#x5909;&#x66F4;&#x7B49;&#x3001;[program:hoge] &#x30BB;&#x30AF;&#x30B7;&#x30E7;&#x30F3;&#x306E;&#x66F4;&#x65B0;&#x3092;&#x3057;&#x305F;&#x3068;&#x304D;&#x306B;&#x3001;supervisord &#x3092;&#x518D;&#x8D77;&#x52D5;&#x305B;&#x305A;(ry<br>
&#x3044;&#x304D;&#x306A;&#x308A; update &#x3067;&#x3082;&#x826F;&#x3044;&#x3067;&#x3059;&#x304C;&#x3001;&#x307E;&#x305A;&#x306F; reread &#x3067;&#x5909;&#x66F4;&#x3055;&#x308C;&#x305F;&#x30B3;&#x30F3;&#x30D5;&#x30A3;&#x30B0;&#x3092;&#x8868;&#x793A;&#x3057;&#x3066;&#x78BA;&#x8A8D;&#x3059;&#x308B;&#x306E;&#x304C;&#x826F;&#x3044;&#x3067;&#x3059;&#x3002;</p>
<pre><code># vi /etc/supervisord.d/hoge.conf   # &lt;- &#x66F4;&#x65B0;
# supervisorctl reread
hoge: changed
# supervisorctl update hoge
hoge: stopped
hoge: updated process group
</code></pre>
<h3 id>&#x5B50;&#x306E;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x306E;&#x524A;&#x9664;</h3>
<p>[program:hoge] &#x30BB;&#x30AF;&#x30B7;&#x30E7;&#x30F3;&#x3092;&#x524A;&#x9664;&#x3059;&#x308B;&#x3068;&#x304D;&#x306B;(ry</p>
<pre><code># supervisorctl stop hoge
hoge: stopped
# rm -i /etc/supervisord.d/hoge.conf   # &lt;- &#x524A;&#x9664;
# supervisorctl reread
hoge: disappeared
# supervisorctl remove hoge
hoge: removed process group
</code></pre>
<hr>
<ul>
<li>&#x521D;&#x7A3F; (Wed Oct 22 00:15:38 JST 2014)</li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[ProxyChains をちょっと便利に使う]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>ProxyChains &#x3068;&#x3044;&#x3046;&#x3001;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x306E; TCP/DNS &#x901A;&#x4FE1;&#x3092;&#x3001;&#x6307;&#x5B9A;&#x3057;&#x305F; socks &#x306B;&#x901A;&#x3057;&#x3066;&#x304F;&#x308C;&#x308B;&#x30C4;&#x30FC;&#x30EB;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<p>&#x3088;&#x304F;&#x4E0B;&#x8A18;&#x306E;&#x3088;&#x3046;&#x306A;&#x4F7F;&#x7528;&#x4F8B;&#x304C;</p>]]></description><link>https://blog.kteru.net/proxychains-tips/</link><guid isPermaLink="false">5bcef5e12ab890283a356e16</guid><category><![CDATA[shell]]></category><category><![CDATA[Network]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Wed, 21 May 2014 18:55:09 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>ProxyChains &#x3068;&#x3044;&#x3046;&#x3001;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x306E; TCP/DNS &#x901A;&#x4FE1;&#x3092;&#x3001;&#x6307;&#x5B9A;&#x3057;&#x305F; socks &#x306B;&#x901A;&#x3057;&#x3066;&#x304F;&#x308C;&#x308B;&#x30C4;&#x30FC;&#x30EB;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;</p>
<p>&#x3088;&#x304F;&#x4E0B;&#x8A18;&#x306E;&#x3088;&#x3046;&#x306A;&#x4F7F;&#x7528;&#x4F8B;&#x304C;&#x66F8;&#x304B;&#x308C;&#x3066;&#x307E;&#x3059;&#x3002;</p>
<pre><code>$ proxychains telnet 192.0.2.11 80
$ proxychains ssh 192.0.2.11
$ proxychains curl http://example.com/
</code></pre>
<p>&#x3053;&#x308C;&#x3001;proxychains &#x3067;&#x30B7;&#x30A7;&#x30EB;&#x81EA;&#x4F53;&#x3092;&#x8D77;&#x52D5;&#x3057;&#x3061;&#x3083;&#x3048;&#x3070;&#x3044;&#x3044;&#x3093;&#x3058;&#x3083;&#x306A;&#x3044;&#x304B;&#x3068;&#x601D;&#x3063;&#x3066;&#x3084;&#x3063;&#x3066;&#x307F;&#x307E;&#x3057;&#x305F;&#x3002;</p>
<pre><code>$ tor &amp;
$ proxychains bash
$ curl -kLs https://check.torproject.org/ | grep -i congratulations
[proxychains] DLL init
[proxychains] DLL init
[proxychains] Strict chain  ...  127.0.0.1:9050  ...  check.torproject.org:443  ...  OK
      Congratulations. This browser is configured to use Tor.
</code></pre>
<p>&#x4E0A;&#x8A18;&#x306F; tor &#x3092;&#x901A;&#x3057;&#x3066;&#x3044;&#x308B;&#x4F8B;&#x3067;&#x3059;&#x304C;&#x3001;&#x3046;&#x307E;&#x304F;&#x3044;&#x3063;&#x3066;&#x307E;&#x3059;&#x306D;&#x3002;<br>
&#x3044;&#x3061;&#x3044;&#x3061; proxychains &#x631F;&#x3080;&#x306E;&#x304C;&#x9762;&#x5012;&#x3060;&#x3063;&#x305F;&#x306E;&#x3067;&#x3001;&#x3053;&#x308C;&#x304B;&#x3089;&#x3053;&#x306E;&#x4F7F;&#x3044;&#x65B9;&#x306B;&#x3057;&#x3088;&#x3046;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;</p>
<hr>
<ul>
<li>&#x521D;&#x7A3F; (Thu, 22 May 2014 03:53:09 JST)</li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[tmux を気軽に使いはじめるために]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>&#x3044;&#x307E;&#x307E;&#x3067;&#x3044;&#x308D;&#x3093;&#x306A;&#x4EBA;&#x306B; tmux &#x3092;&#x9032;&#x3081;&#x3066;&#x304D;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;&#x30BF;&#x30FC;&#x30DF;&#x30CA;&#x30EB;&#x30DE;&#x30EB;&#x30C1;&#x30D7;&#x30EC;&#x30AF;&#x30B5;&#x306E;&#x4F7F;&#x7528;&#x7D4C;&#x9A13;&#x304C;&#x7121;&#x3044;&#x4EBA;&#x306B;&#x3068;&#x3063;&#x3066;&#x306F;&#x3001;&#x6982;&#x5FF5;</p>]]></description><link>https://blog.kteru.net/tmux-casual/</link><guid isPermaLink="false">5bcef5e12ab890283a356e15</guid><category><![CDATA[tmux]]></category><dc:creator><![CDATA[teru]]></dc:creator><pubDate>Mon, 21 Apr 2014 08:35:54 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>&#x3044;&#x307E;&#x307E;&#x3067;&#x3044;&#x308D;&#x3093;&#x306A;&#x4EBA;&#x306B; tmux &#x3092;&#x9032;&#x3081;&#x3066;&#x304D;&#x307E;&#x3057;&#x305F;&#x304C;&#x3001;&#x30BF;&#x30FC;&#x30DF;&#x30CA;&#x30EB;&#x30DE;&#x30EB;&#x30C1;&#x30D7;&#x30EC;&#x30AF;&#x30B5;&#x306E;&#x4F7F;&#x7528;&#x7D4C;&#x9A13;&#x304C;&#x7121;&#x3044;&#x4EBA;&#x306B;&#x3068;&#x3063;&#x3066;&#x306F;&#x3001;&#x6982;&#x5FF5;&#x3092;&#x63B4;&#x3080;&#x307E;&#x3067;&#x3001;&#x3068;&#x3044;&#x3046;&#x304B;&#x3001;&#x30A2;&#x30BF;&#x30C3;&#x30C1;&#x30FB;&#x30C7;&#x30BF;&#x30C3;&#x30C1;&#x306E;&#x64CD;&#x4F5C;&#x3092;&#x899A;&#x3048;&#x308B;&#x306E;&#x306B;&#x62B5;&#x6297;&#x3092;&#x611F;&#x3058;&#x3066;&#x3057;&#x307E;&#x3046;&#x4EBA;&#x304C;&#x591A;&#x3044;&#x3088;&#x3046;&#x306B;&#x611F;&#x3058;&#x307E;&#x3059;&#x3002;</p>
<p>&#x3068;&#x3044;&#x3046;&#x308F;&#x3051;&#x3067;&#x3001;<code>.bashrc</code> &#x306A;&#x308A; <code>.zshrc</code> &#x306A;&#x308A;&#x306B;&#x4E0B;&#x8A18;&#x3092;&#x66F8;&#x3044;&#x3066;&#x3042;&#x3052;&#x308B;&#x3068;&#x826F;&#x3044;&#x304B;&#x306A;&#x3068;&#x3002;</p>
<pre><code>function tm() {
  if [ -n &quot;${1}&quot; ]; then
    tmux -2 attach-session -t ${1} || \
      tmux -2 new-session -s ${1}
  else
    tmux -2 attach-session || \
      tmux -2 new-session
  fi
}
</code></pre>
<p>&#x4F55;&#x3082;&#x8003;&#x3048;&#x305A;&#x306B; tm &#x3068;&#x6253;&#x3064;&#x3060;&#x3051;&#x3067;&#x3001;&#x65E2;&#x306B;&#x30BB;&#x30C3;&#x30B7;&#x30E7;&#x30F3;&#x304C;&#x3042;&#x308B;&#x6642;&#x306F;&#x30A2;&#x30BF;&#x30C3;&#x30C1;&#x3001;&#x7121;&#x3044;&#x3068;&#x304D;&#x306F;&#x65B0;&#x898F;&#x4F5C;&#x6210;&#x3001;&#x3068;&#x3044;&#x3046;&#x52D5;&#x304D;&#x3092;&#x3057;&#x3066;&#x304F;&#x308C;&#x308B;&#x306E;&#x3067;&#x697D;&#x3067;&#x3059;&#x3002;</p>
<hr>
<ul>
<li>&#x521D;&#x7A3F; (Mon, 21 Apr 2014 17:36:18 JST)</li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>