Kurangi SNMPd logging verbosity

37

SNMPd pada sistem CentOS saya mengirim pesan log ke syslog setiap kali menerima permintaan dari alat pemantauan saya. Apakah ada cara untuk menurunkan verbositas SNMPd? Ini menambahkan banyak kekacauan pada log.

Sep 12 13:05:40 myhost snmpd[7073]: Received SNMP packet(s) from UDP: [ipaddr]:42874
Sep 12 13:05:40 myhost snmpd[7073]: Connection from UDP: [ipaddr]:49272

Terima kasih!

wjimenez5271
sumber

Jawaban:

37

Periksa perintah yang dimulai snmpd(mungkin di suatu tempat /etc/rc.d/- di Ubuntu /etc/defaults/snmpd) untuk opsi logging:

SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid -g root 0.0.0.0'

Atau menemukannya di ps aux | grep snmpdoutput.

The halaman manual memberikan pilihan logging:

-S FASILITAS

Log pesan melalui syslog, menggunakan fasilitas yang ditentukan ('d' untuk LOG_DAEMON, 'u' untuk LOG_USER, atau '0' - '7' untuk LOG_LOCAL0 hingga LOG_LOCAL7). Ada juga versi "huruf besar" dari masing-masing opsi ini, yang memungkinkan mekanisme pencatatan terkait dibatasi pada prioritas pesan tertentu.

Untuk -LF dan -LS spesifikasi prioritas diberikan sebelum token file atau fasilitas. Prioritas yang diakui adalah:

0 or ! for LOG_EMERG,
1 or a for LOG_ALERT,
2 or c for LOG_CRIT,
3 or e for LOG_ERR,
4 or w for LOG_WARNING,
5 or n for LOG_NOTICE,
6 or i for LOG_INFO, and
7 or d for LOG_DEBUG. 

Standarnya cukup verbose (hanya 2 level di bawah debug):

Output normal (atau akan!) Dicatat pada tingkat prioritas LOG_NOTICE

Jika Anda masuk ke syslog melalui LOG_DAEMON (-Lsd), Anda bisa menguranginya menjadi misalnya LOG_WARNING dengan -LSwd/ -LS4d, atau LOG_ERR dengan -LSed/ -LS3d.

(Diedit untuk menempatkan opsi dalam urutan yang benar.)

Andrew
sumber
Saya berjuang untuk menemukan lokasi yang benar di CentOS 6.5. Bukan /etc/snmp/snmpd.optionsjuga bukan /etc/sysconfig/snmpd.optionstetapi sebenarnya itu /etc/sysconfig/snmpd. Itu ps aux | grep snmpdsangat berguna untuk melihat apakah perubahan itu berfungsi.
Eugene van der Merwe
1
Dalam Debian menggunakan systemd itu terhubung /lib/systemd/system/snmpd.service, gunakan systemctl cat snmpddan systemctl edit snmpduntuk menimpa [Service]ExecStart saja. ExecStartharus dimasukkan dua kali, pertama kali kosong untuk menghapus yang lama (cari fitur pengaturan vendor override systemd )
Alex
19

Untuk menetapkan prioritas minimum ke LOG_WARNING, (yang biasanya saya gunakan) cukup ubah argopt:

-Lsd

untuk

-LSwd

Yang merupakan singkatan:

  • S : syslog, prioritas datang berikutnya
  • w : (atau 4 ) mencatat hanya peringatan dan pesan yang lebih relevan
  • d : gunakan fasilitas LOG_DAEMON

Sebagaimana dinyatakan dalam pria (tetapi sebenarnya tidak ada contoh yang jelas):

Untuk -LF dan -LS spesifikasi prioritas diberikan sebelum token file atau fasilitas

oxullo
sumber
Ups, saya ketinggalan urutan prioritas / fasilitas.
Andrew
10

dontLogTCPWrappersConnects

Jika snmpd dikompilasi dengan dukungan TCP Wrapper, itu mencatat setiap koneksi yang dibuat ke agen. Pengaturan ini menonaktifkan pesan log untuk koneksi yang diterima. Koneksi yang ditolak masih akan dicatat.

Yaitu menambahkan dontLogTCPWrappersConnects trueke snmpd.conf.

Saya bingung mengapa pesan log ini dianggap di atas LOG_DEBUG, untuk layanan pemantauan (dan yang mendukung UDP) :-(. journalctl -o verboseMenunjukkan pesan memiliki PRIORITY = 6 (INFO), yang sama dengan pesan pembuka normal untuk snmpd .

sourcejedi
sumber
Tampaknya berfungsi serta mengubah tingkat logging dari pemberitahuan menjadi peringatan, tetapi dengan cara yang lebih fokus pada koneksi logging.
jla
Ini bekerja paling baik bagi saya untuk menghapus logging untuk upaya koneksi yang sukses, daripada mempersempit kriteria log.
B Knight
5

Saya benar-benar menghapus arahan "-Lsd" dari /etc/sysconfig/snmpd.optionsfile di instalasi CentOS / Redhat, meninggalkan file yang berbunyi:

# snmpd command line options
OPTIONS="-Lf /dev/null -p /var/run/snmpd.pid -a"
putih
sumber
apakah ini benar-benar menghentikan semua log snmpd, atau apakah itu kembali ke logging standar?
Banjer
3

Termasuk garis standar (termasuk dalam /etc/snmp/snmp.conffile default untuk CentOS 6.5) bekerja bagi saya untuk mengurangi verbositas khususnya sehubungan dengan logging koneksi TCP / UDP SNMP:

dontLogTCPWrappersConnects yes

Berikut ini kutipan "verbose" dari snmp.conffile default :

# We do not want annoying "Connection from UDP: " messages in syslog.
# If the following option is commented out, snmpd will print each incoming
# connection, which can be useful for debugging.

dontLogTCPWrappersConnects yes
kindzmarauli
sumber
-1

pada raspberry pi / raspbian, lokasi file adalah

/lib/systemd/system/snmpd.service

maka Anda harus melakukan daemon-reload sebelum memulai kembali layanan snmpd.

systemctl daemon-reload

SkullKill
sumber