ものともしれない日々

参考にできるかかもしれない備忘録

配列の重複を数える処理メモ

便利だけど書き方すぐ忘れるよ・・・

using System;
using System.Collections.Generic;
using System.Linq;

public class Hello{
    public static void Main(){

        List<string> dataList = new List<string>() { "HND", "NRT", "KIX", "NGO", "NGO", "NGO", "NGO", "NGO" };
        var duplicationList = dataList
            .GroupBy(i => i)
            .Where(g => g.Count() > 1)
            .Select(g => new { word = g.Key, duplicationCount = g.Count() })
            .ToList();
        foreach(var item in duplicationList) {
            Console.WriteLine("{0}:{1}個", item.word, item.duplicationCount);
        }

    }
}

CENTOS7 IPアドレス固定化

この記事を参考

qiita.com

これだけ直してシステムをrestartすればイケる感じ

 DEVICE="enp3s0"
 ONBOOT=yes
 NETBOOT=yes
 UUID="0ebc2621-6086-4d9a-a15d-c52cdf6ade01"
 IPV6INIT=no
-BOOTPROTO=dhcp
 HWADDR="08:00:27:bf:e6:ec"
 TYPE=Ethernet
 NAME="enp3s0"

+BOOTPROTO=static
+DNS1="8.8.8.8"
+DNS2="8.8.4.4"
+DOMAIN=mydomain.com
+IPADDR=192.168.100.11
+NETMASK=255.255.255.0
+GATEWAY=192.168.100.1

IPアドレスと正規表現1

IPv4表記のチェック

/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]))$/

正規表現チェッカーで確認

http://okumocchi.jp/php/re.php

〇CIDR表記に合わせてIPアドレスをレンジ指定できるexcel関数を考える

IPアドレスの使える範囲によってA-Cまでのクラス分けがある

↓以下、YYYYが使える桁

クラスA:XXXX.YYYY.YYYY.YYYY

クラスB:XXXX.XXXX.YYYY.YYYY

クラスC:XXXX.XXXX.XXXX.YYYY

IPのレンジはクラスごとにCIDRの数値が大きくなるほど使用できる桁数が減る為、レンジの幅が狭まる

レンジが狭まる=使用できるIPアドレスの範囲が狭くなるため、レンジ開始位置のバリエーションが増える

例)

/8 =>11111111 00000000 00000000 00000000=>255.0.0.0 =>XXXX.0.0.0-XXXX.255.255.255=>クラスB256個分

/15=>11111111 11111110 00000000 00000000=>255.254.0.0=>XXXX.0.0.0-XXXX.1.255.255 =>クラスB2個分

レンジ指定の参考記事

https://www.mrl.co.jp/download/manual-online/gl2000/gl2000_02/manual/docs/netlistb.htm#list

https://wa3.i-3-i.info/word11990.html

〇処理手順

・CIDRのパターンとレンジ指定の組み合わせは決まっているので対象のIPアドレスとCIDR表記からクラス、CIDR、レンジの開始位置を判定する

・判定結果を元にレンジを決定する

・決定されたレンジを元に正規表現を作成する

snmpトラップをやってみる2

■MIBについて
監視している機器の情報のツリー構造で体系化している
mib-2がスタンダードで多くの機器がサポートしている
MIBの内容や表示方法については体系的な説明が難しいため、必要なものを必要な分だけ調べて使う

 

▼ポーリング
特定の時間にSNMPマネージャーから実行して確認したい情報を取得する
対象機器の全ツリーの情報を表示する
snmpwalk -c public -v 2c 192.168.3.36 .

 

▼トラップ
特定のエラー条件を満たした場合(条件は別途設定する必要がある)、SNMPエージェントから送信される
エラーに関係するMIB情報(サブツリー名、起動時間など)を把握するのが目的

数字の表記でもサブツリー表記でも送信することができる
(例:同じ内容で送信している↓)
【OID表記】
snmptrap -v 2c -c public 192.168.3.40 '' 1.3.6.1.2.1.1.1.0 1.3.6.1.4.1.3.1.1 s "TEST"
【サブツリー表記】
snmptrap -v 2c -c public 192.168.3.40 '' sysDescr 1.3.6.1.4.1.3.1.1 s "TEST"

オプションは左から…
・バージョン
・コミュニティ名
送信先IP
・時間(''の場合はsystemが起動してからの時間を0.01秒=1でカウント)
・OID(サブツリー名)
・デスクリプション※1
・データ型
・任意の文字列

※1
1.3.6.1.4.1.3.1.1はDESCRIPTIONで文字列を一緒に飛ばすことができる


【参考】MIBについての記事
https://www.itmedia.co.jp/help/howto/linux/0007master/06/12.html
https://qiita.com/Mabuchin/items/d435c0afb4f0ca17ad25
http://vre.sakura.ne.jp/cgi-bin/pukiwiki/index.php?UNIX%2FSNMP#gceabf8d
https://www.itmedia.co.jp/help/howto/linux/0007master/06/

redmineの気になる機能QA

redmineのQA

Q.デフォルトのチケット項目は非表示にできるか
A.トラッキングの設定からできる

Q.デフォルトのチケット項目の項目名を変更できるか
A.設定ファイルを変更すればいけるらしい
http://blog.enjoyxstudy.com/entry/2015/12/05/000000


Q.ワークフロー:ロールとトラッカーによってチケットの遷移できるステータスを調整できる
A.新規から進行中以外を選べなくするなど

Q.サブプロジェクト
A.プロジェクトの子になるプロジェクトを作成する機能

Q.チケットに特定のユーザしか閲覧できない項目を作りたい
A.プライベートコメントを使えば特定のロールのユーザだけが確認できるコメントを作成できる。非表示のゆーざは履歴にも表示されない

snmpトラップをやってみる1

・vitualboxでsnmpの動作確認
×snmpwalk -v 2c -c public 192.168.3.255
parmission denyされる
×traceroute 192.168.3.255

・ポート開放確認
nmap -p ポート番号 IPアドレス

firewall-cmdでポートをsnmpサービスのportを開けた
firewall-cmd --add-service snmp
firewall-cmd --list-all

ipアドレスが間違っていたので修正して実行
snmpwalk -v 2c -c public 192.168.3.32

・起動する度にIPが変わるのがやだったのでIPアドレス固定した
https://qiita.com/tak_hos/items/9c9fd6463a7c3c01b4d3

snmptrap -v 2c -c publicv2 192.168.3.32 '' netSnmpExperimental netSnmpExperimental.1 s "hogehoge1" netSnmpExperimental.2 s "hogehoge2"


ホストサーバをIP固定にしたときにgatewayのIPを設定していなかった
vi /etc/sysconfig/network
GATEWAY=192.168.3.1
systemctl restart network

・rpmdbが壊れてyumが動かなった
sudo rpm --rebuilddb
https://kaworu.jpn.org/kaworu/2015-11-14-1.php

 

・とりあえずtrapが届くようになった /var/log/message
snmptrap -v 2c -c publicv2 192.168.3.32 '' netSnmpExperimental netSnmpExperimental.1 s "hogehoge1" netSnmpExperimental.2 s "hogehoge2"

・dropinしているので設定ファイルを修正
/etc/snmp/snmptrapd.conf
authCommunity log,execute,net public
https://www.infra.jp/squeeze/snmp.html


※snmptrapを受信するにはサーバ側にもnet-snmpをいれてサービスを起動しておく必要がある

・テストで投げていたtrapのコミュニティ名が間違っていたので修正
snmptrap -v 2c -c public 192.168.3.32 '' netSnmpExperimental netSnmpExperimental.1 s "hogehoge1" netSnmpExperimental.2 s "hogehoge2"

・この当たりの記事が良かった
https://www.itmedia.co.jp/enterprise/articles/0705/31/news042.html

・MIBツリーを表示する。
snmptranslate -Tp | less


・/var/log/messageから個別のログファイルにログを出力

 

・MIBシンボル
snmpwalk -c public -v 2c 192.168.3.36 .1.3.6.1.2.1.1
・OID
snmpwalk -On -c public -v 2c 192.168.3.36 .1.3.6.1.2.1.1

・最後に0を入れると単一
snmpget -On -c public -v 2c 192.168.3.36 .1.3.6.1.2.1.1.4.0