為了伺服器的安全,需要知道是否有異常的ip通過ssh登入到我們的伺服器,以便我們及時防禦入侵。
#!/bin/bash
export path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
[[ $(grep -ie 'ubuntu|debin|elementary' /etc/issue) ]] \
&& logs='/var/log/auth.log' \
|| logs='/var/log/secure'
## $1: accepted or failed
#portarray=( $(awk "/$1/ " $logs |sort |uniq) )
count=$2
count=$
portarray=( $(grep 'sshd' $logs |awk "/$1/ " $logs |sort |uniq -c |awk "") )
length=$
function zabbix_json()\":\"$\"}"
if [ $i -lt $[$length-1] ];then
printf ','
fidone
printf "\n\t]\n"
printf "}\n"
}function check()" $logs |grep $2 |sort |uniq -c |awk ''
}[[ $1 = check ]] \
&& $* \
|| zabbix_json
[root@centos6 script]# chown zabbix.zabbix discovery_access.sh
[root@centos6 script]# chmod +x discovery_access.sh
[root@centos6 zabbix_agentd.d]# vim /etc/zabbix/zabbix_agentd.d/userparameter_sa_linux.conf
userparameter=discovery.access[*],/etc/zabbix/script/discovery_access.sh $1 $2 $3
[root@centos6 script]#service zabbix-agent restart在zabbix-server端,使用zabbix_get命令來獲取agent端的指令碼引數:shutting down zabbix agent: [ ok ]
starting zabbix agent: [ ok ]
[root@centos6 conf.d]# zabbix_get -s 192.168.10.137 -k discovery.access[accepted]提示報錯:":"192.168.10.138"},
":"192.168.9.135"}]}
[root@centos6 conf.d]# zabbix_get -s 192.168.10.137 -k discovery.access[accepted]解決辦法:awk: cmd. line:1: fatal: cannot open file `/var/log/secure' for reading (permission denied)
grep: /var/log/secure: permission denied
設定日誌檔案的許可權
/var/log/secure的許可權一般是600,zabbix agent對此檔案沒有許可權。zabbix使用者是agent的啟動使用者,所以我們要設定zabbix使用者對/var/log/secure有可讀許可權,這樣agent才能監控。
執行下面的命令,追加zabbix的可讀許可權:
setfacl -m u:zabbix:r-- /var/log/secure
在自建或已有模板中建立自動發現規則:
建立完成
一旦有新的ip登入到伺服器即會報警:
zabbix自動發現mysql埠並監控
因為我們是遊戲業務,要用到mysql,乙個伺服器上面跑多個mysql例項也是很正常。如果單獨手動一台臺修改agent.conf,新增web監控,太費時費力。所以就想的要用zabbix 的自動發現來監控 root test cat etc zabbix alertscripts zabbix disc...
zabbix自動發現服務埠並監控
使用zabbix自動發現功能實現服務埠自動發現及監控 系統 centos 7.6 zabbix server version 4.0.10 1.在 etc zabbix zabbix agent.d 下建立userparameter tcp port.conf內容如下 userparameter p...
Zabbix獲取並監控linux系統的程序名
最近需要監控執行在業務系統上的程序,要求是看到具體的程序名。通常監控程序一般可以使用內建的鍵值,也就是 proc.num 程序名,root,這個鍵值,但只能返回的是程序的數量,雖然效果上也能實現,但和預期的結果有些區別,而且也不直觀,尤其在同乙個程序數多的時候。下面說下獲取具體程序名的方法 1 ag...