カスタムアイテム
監視項目とは?
監視項目:残りのメモリ、ディスク容量、サービスステータスなど、監視するインジケータ。
各監視項目には、簡潔で明確な一意のキーがあります(シェルスクリプトの変数名に相当)
zabbix-agentをインストールするだけで、デフォルトで多数の監視項目がサポートされますが、Linuxテンプレートはすべての監視項目を使用するわけではありません
ZabbixエージェントによるテンプレートOSLinuxは、主にCPU、メモリ、ディスク、ネットワークカード、セキュリティを監視します。これらはすべて一般的な監視です。
アプリケーションセットは、監視項目のグループです。
組み込みのキーを使用してnginxのステータスを監視します
(注:監視項目を追加する前に、zabbix-getを使用して値をテストすることをお勧めします)
#只在zabbix-server上安装
yum install zabbix-get -y
zabbix_get -s 127.0.0.1 -k proc.num[nginx]
#注释
-s 被监控主机的ip地址
-p 端口
-k 指定监控项的key
zabbix-agentホストのagent2システム構成ファイルを変更します。変更しないと、zabbix-getをzabbix-serverホストで使用できません。
vim /usr/lib/systemd/system/zabbix-agent2.service
User=root
Group=root
カスタム監視項目を使用してNGINXを監視
し、zabbix-agentホスト上のエージェント構成ファイルを変更します
vim /etc/zabbix/zabbix_agent2.conf
UserParameter=nginx_status,netstat -lntp|grep -c nginx
(nginx_status 是自定义键值(监控项、key) netstat -lntp|grep -c nginx 是查看nginx启动了几个.
总结起来来说就是看nginx启动了几个端口赋值给 nginx_status 这个自定义的监控项)
zabbix-agentホストでエージェントを再起動して有効にします
systemctl restart zabbix-agent2.service
zabbix-getを使用して値をテストします
#只能在zabbix-server上执行
zabbix_get -s 10.0.0.8 -k nginx_status
カスタム監視項目を使用してNGINX拡張バージョンを監視する
エージェントのカスタム監視項目を構成ファイルに分割することをお勧めします
vim /etc/zabbix/zabbix_agent2.d/zbx_nginx.conf
UserParameter=nginx_status,netstat -lntp|grep -c nginx
好处:可以复用,管理更加的方便
定期監視項目に対応
UserParameter=mysql_Uptime,echo 'show status;'|mysql -uroot|grep -w 'Uptime'|awk '{print $2}'
UserParameter=mysql_Com_select,echo 'show status;'|mysql -uroot|grep -w 'Com_select'|awk '{print $2}'
UserParameter=mysql_Com_delete,echo 'show status;'|mysql -uroot|grep -w 'Com_delete'|awk '{print $2}'
1
参照してカスタム監視項目を使用するのに適しています
UserParameter=mysql_define[*],echo 'show status;'|mysql -uroot|grep -w "$1"|awk '{print $$2}'
这里的$1是对应mysql_define[*]里面的那个* $2依旧是取第二列的值
価値効果
[root@zabbix-server ~]# zabbix_get -s 10.0.0.8 -k mysql_define[Uptime]
827
[root@zabbix-server ~]# zabbix_get -s 10.0.0.8 -k mysql_define[Com_select]
1
[root@zabbix-server ~]# zabbix_get -s 10.0.0.8 -k mysql_define[Com_insert]
0
カスタムトリガー
トリガーとは何ですか?
トリガー:アラーム条件を設定します(トリガーは少なくとも1つの監視値に対応します)
トリガー式のフォーマット:
例1
{
10.0.0.8:vfs.file.cksum[/etc/passwd].diff()}>0
主机:10.0.0.8
key值:vfs.file.cksum[/etc/passwd]
函数方法:diff() 对比两次监控项的值
如果两次对应的值大于了0 就报警 (是zabbix报警 不是生活中的报警)
例2
{
10.0.0.8:proc.num.last()}/{
10.0.0.8:kernel.maxproc.last()}*100>80
10.0.0.8:proc.num:当前运行进程数量
10.0.0.8:kernel.maxproc 系统最大允许进程的数量
函数方法:last() 最新值 (生产中last()用的比较多,比如你的某个业务down掉了,监控项里用last()就会自己立即报警,不会墨迹)
例3
{
10.0.0.8:vm.memory.size[available].min(5m)}<{
$MEMORY.AVAILABLE.MIN} and{
10.0.0.8:vm.memory.size[total].last()}>0
函数方法 mim(5m) 五分钟之内最小的值, max(5m) 五分钟之内最大的值, avg(5m) 五分钟之内的平均值
{
$MEMORY.AVAILABLE.MIN}=20m
and 同时
10.0.0.8:vm.memory.size[total] 最新的总内存大小
available和total是free -m 里的
カスタムトリガー式
i [外部リンク画像が転送されています...(img-TScQ2nfv-1612268750390)]
カスタムアラーム
メールアラーム
ここでテストしているのは、NetEaseメールボックスが送信者であり、qqメールボックスが受信者としてテストされていることです。テストが成功したら、受信者を構成できます。
受信者を構成します。
テスト目的でzabbix-agentのNGINXをオフにしました。QQ
メールボックスがアラームを受信できる場合(zabbixのアラームを誤解しないでください)、投稿が正常に完了したことをおめでとうございます。