Аналіз журналу DNSMasq за допомогою AWK (Analyzing DNSMasq Log with AWK)

Поради та підказки щодо софту, роботи в операційних системах, комплектуючих та зборок комп'ютерів.
Аватар користувача
toxi
Администратор
Администратор
Статті: 0
Повідомлень: 542
З нами з: 12-04-2008 07:58:25
Ваша стать: Чоловічий
І'мя: Roman
Контактна інформація:

Аналіз журналу DNSMasq за допомогою AWK (Analyzing DNSMasq Log with AWK)

Повідомлення toxi »

Якщо ви використовуєте DNSMasq з увімкненим журналюванням і хочете проаналізувати кількість DNS-запитів, які ви маєте для імен хостів, цей сценарій AWK допоможе вам це зробити.

Я не можу взяти відповідальність на себе за цей сценарій. Він надійшов від людей зі списку розсилки, який можна знайти тут: http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2010q1/003682.html

Цей процес складається із двох частин.
Перше: створити сценарій;
Друге: запустити його та проаналізувати журнал;

Створення сценарію AWK для аналізу DNSMasq
Спочатку ми створимо файл dnsmasq.awk, який містить наш сценарій аналізу. Додайте в нього наведений нижче вміст сценарію.
Ось сценарій для копіювання у файл dnsmasq.awk за допомогою вашого улюбленого текстового редактора.

Код: Виділити все

( $4 ~ /dnsmasq\[[0-9]+\]:/ ) {
	if ( $5 == "query[A]") {
		query[$6]++;
	} else {
		if ( $5 == "forwarded" )
			forwarded[$6]++;
		else
			if ( $5 == "cached" )
				cached[$6]++;
	}
}
END {
	queries=0;
	qforwarded=0
	qacache=0
	printf " %40s |      nb    |  forwarded |  answered from cache \n", "name";
	for (name in query) {
		printf "%s%40s | %9d  | %9d  | %9d\n", \
				( forwarded[name] > query[name] ? "*" : " "), \
				name, \
				query[name], \
				forwarded[name], \
				cached[name];
		queries += query[name];
		qforwarded += forwarded[name];
		qacache += cached[name];
	}

	print "";
	printf " %40s | %9d  | %9d  | %9d\n", "total:", queries, qforwarded, qacache;
}
Розбір файлу журналу DNSMasq
Тепер ми запустимо команду, яка запустить наш сценарій AWK і розбере файл журналу. Будь ласка, внесіть зміни до цієї команди, щоб відповідати вашому власному файлу системного журналу DNSMasq і правильному шляху до місця, де ви вибрали для зберігання dnsmasq.awk

Ось команда:

Код: Виділити все

awk -f /dnsmasq.awk /var/log/dnsmasq.log | less
Помістіть свій сценарій аналізу AWK у будь-яку папку (dnsmasq.awk) і вкажіть, де знаходиться файл журналу DNSMasq. Ми надішлемо його в «less», щоб він підійшов до нашого екрана, і ви мали змогу прокручувати його вниз.
Вкладення
facebook_dns
facebook_dns
Правила форуму :: Виконую послуги IT-адміністратора (види послуг).