質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

1回答

920閲覧

【至急】syslogへの記載について

yamato_0410

総合スコア36

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2018/09/20 06:00

編集2018/09/25 00:27

以前質問させて頂いた内容と重複してしまうかもしれませんが
うまく動作してくれなかったので質問させてください。

以下の構文をWindowsサーバにてpowershellで実行しsyslogへcsvの中身(もしくはcsvの文言を確認し適宜修正)を吐き出したいのですがpowersell上ではエラーなく終わっていますが
/var/adm/messageに記載されません。何が原因でしょうか?
syslog.confには以下記載があります。

※別途必要な情報がありましたらご指摘ください。

*.emerg /var/adm/syslog rotate time 1m files 12
*.alert /var/adm/syslog rotate time 1m files 12
*.crit /var/adm/syslog rotate time 1m files 12
*.err /var/adm/syslog rotate time 1m files 12
daemon.notice /var/adm/messages rotate time 1m files 12
auto.info /var/adm/secure rotate time 1m files 12
local10.crit /dev/console
*.debug /var/adm/debug.log

内容はcsvの中身が空であったら特定の文言を出すです。
.ps1ファイルのコマンド

### # Start of Script ## # Define port and target IP address # Random here! $Port = 514 $IP = "xxx.xxx.xxx.xxx" $Address = [system.net.IPAddress]::Parse( $IP ) # Create IP Endpoint $End = New-Object System.Net.IPEndPoint $address , $port # Create Socket $Saddrf = [System.Net.Sockets.AddressFamily]::InterNetwork $Stype = [System.Net.Sockets.SocketType]::Dgram $Ptype = [System.Net.Sockets.ProtocolType]::UDP $Sock = New-Object System.Net.Sockets.Socket $saddrf , $stype , $ptype $Sock.TTL = 26 # Connect to socket $sock.Connect( $end ) # Create encoded buffer $Message = (Get-content C:\Users\Administrator\Desktop\0824確認分\test.csv) -as [string[]] if ($Message -match "") { # Send the buffer $Message += ",特定の文言" $Buffer = [System.Text.Encoding]::UTF8.GetBytes($Message) $Sent = $Sock.Send($Buffer) } else { echo "NOT NULL" } # End of Script

以上、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

daemon.notice /var/adm/messages rotate time 1m files 12
*.debug /var/adm/debug.log

/var/adm/messages は daemon.notice 以上のメッセージが記録されるようになっていますね。
しかし、PowerShellスクリプトでは何も指定されていません。
/var/adm/debug.log は全て記録するように設定されているので、/var/adm/debug.log には出力されていますか?

出力されていない場合はそもそも syslog サーバがリモートからのメッセージを受け付けないようになっている可能性が有ります。
リモートからのメッセージを受け付けるようにするには、利用しているOSやsyslogサーバプログラムの情報が必要です。

出力されている場合は、PowerShellスクリプトで daemon.notice を指定して送信すれば大丈夫です。
daemon.notice を表す "<29>" という文字列を送信内容の先頭に付けてみて下さい。

PowerShell

1 $Message = "<29>" + $Message + ",特定の文言"

他のFacility, Severity で送る場合は、以下を参考にして 29 を別の値に変更して下さい。

  1. サーバの/usr/include/syslog.h やWikipediaを見て、対象のFacility, Severityに対応する値を確認する。

Facility daemon => 3
Severity notice => 5

  1. Facility の値に 8 を掛けて、Severity の値を足す

3 * 8 + 5 = 29

投稿2018/09/27 06:55

doda

総合スコア947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamato_0410

2018/09/27 11:03

ご回答頂きありがとうございます。 現在は検証環境にて実施してますが、本番機では通常の出力場所「/var/log/messages」に吐き出したいと 思っています。 こちらも同様の考え方で設定へ見ていけばよろしいでしょうか?
doda

2018/09/27 14:30

そうですね。 1. syslog.confで/var/log/messagesに出力する為のfacility/severityを確認する 2. loggerコマンドでそのfacility/severityでログが出力できるか確認する 例: logger -p daemon.notice test 3. 確認したfacility/severityに併せてスクリプトを修正する で大丈夫だと思います。
yamato_0410

2018/09/28 08:16

ご回答頂きありがとうございます。無事にdaemon.notice を指定で出力されました。 ですが試しに日本語で出力させてみたところ文字化けしていました。loggerコマンドで出力させたところ問題なく表示されたので飛ばすさいの文字コード指定が原因かと思っておりますがどのようなコマンド修正が必要がわかりますでしょうか?
doda

2018/10/01 06:13

文字化けするとの事ですが、自分の所では問題ないので、一般的に確認すべき点を挙げます。 ・スクリプトを書く時に使っている文字コードは何か ・CSVファイルで使っている文字コードは何か ・サーバ側で使っている文字コードは何か ・どのような文字列を送った時にどういう形でサーバで書かれるか
yamato_0410

2018/10/02 09:00

ご回答ありがとうございます。後日確認してみます。 この度は親切なご対応ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問