Zabbix监控部署

监控内容: cpu、内存、存储、服务的运行状态、进程数量、用户数、网络接口流量等

步骤: 一、部署LAMP/LNMP环境 二、安装Zabbix-server(192.168.4.21) 三、安装Zabbix-agentd(192.168.4.11)

一、部署LAMP/LNMP环境 systemctl stop firewalld yum repolist yum -y install httpd systemctl start httpd systemctl enable httpd yum -y install mariadb-server mariadb mariadb-devel systemctl start mariadb systemctl enable mariadb mysqladmin -hlocalhost -uroot password "123456" mysql -uroot -p123456 yum -y install php php-mysql systemctl restart httpd

vim /var/www/html/index.php <?php $x=mysql_connect("localhost","root","123456"); if($x){echo ok;}else{echo error;}; ?>

二、安装Zabbix(192.168.4.21) 1,安装准备 rpm -q gcc gcc-c++

useradd zabbix

2,安装zabbix tar xf zabbix-3.2.3.tar.gz

cd zabbix-3.2.3/

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql

make install

3,做初始化配置 cp -r /soft/zabbix/zabbix-3.2.3/frontends/php /var/www/html/zabbix

mysql -uroot -p123456

create database zabbixdb; grant all on zabbixdb.* to zabbix@localhost identified by "123456";

cd /soft/zabbix/zabbix-3.2.3/database/mysql/ mysql -uzabbix -p123456 zabbixdb < schema.sql 导入表结构 mysql -uzabbix -p123456 zabbixdb < images.sql 导入图像 mysql -uzabbix -p123456 zabbixdb < data.sql 导入数据

4,登陆解决错误 http://192.168.4.21/zabbix #解决错误项

vim /etc/php.ini
post_max_size = 16M POST数据最大容量 max_execution_time = 300 最大执行时间,秒 max_input_time = 300 服务器接受数据的时间限制 date.timezone = Asia/Shanghai 设置时区 memory_limit = 128M PHP内存占用的容量限制

yum -y install php-gd yum -y install php-xml rpm -ivh --nodeps php-bcmath-5.4.45-13.el7.remi.x86_64.rpm rpm -ivh --nodeps php-mbstring-5.4.45-13.el7.remi.x86_64.rpm

systemctl restart httpd

chmod o+w /var/www/html/zabbix/conf

ls /var/www/html/zabbix/conf #初始化成功会生成以下文件zabbix.conf.php

默认用户:admin/zabbix 修改语言: 修改管理员登录密码: 查看监控模板: 查看监控信息:

4,修改zabbix_server配置文件 vim /usr/local/zabbix/etc/zabbix_server.conf DBName=zabbixdb 设置数据库名称 DBUser=zabbix 设置数据库账户 DBPassword=123456 设置数据库密码 LogFile=/var/log/zabbix/zabbix_server.log 设置日志(可以不修改)

5,启动服务 cp /soft/zabbix/zabbix-3.2.3/misc/init.d/fedora/core/zabbix_server /etc/init.d/

chmod +x /etc/init.d/zabbix_server

vim /etc/init.d/zabbix_server BASEDIR=/usr/local/zabbix

chkconfig --add zabbix_server chkconfig --list zabbix_server systemctl start zabbix_server systemctl enable zabbix_server systemctl is-active zabbix_server

netstat -anptu | grep zabbix netstat -anptu | grep 10051

cat /tmp/zabbix_server.log #错误日志

三、监控配置 A 监控远端主机(192.168.4.11) 1,配置被监控端 11 运行zabbix_agent服务 scp zabbix-3.2.3.tar.gz 192.168.4.11:/root

rpm -q gcc gcc-c++ useradd zabbix

tar xf zabbix-3.2.3.tar.gz

cd zabbix-3.2.3/ ./configure --prefix=/usr/local/zabbix --enable-agent

make install

vim /usr/local/zabbix/etc/zabbix_agentd.conf LogFile=/tmp/zabbix_agentd.log 设置日志 Server=127.0.0.1, 192.168.4.21 设置监控服务器IP ServerActive=192.168.4.21:10051 主动监控服务器IP Hostname=abc 设置主机名 UnsafeUserParemeters=1 是否允许自定义key

cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

chmod +x /etc/init.d/zabbix_agentd

vim /etc/init.d/zabbix_agentd BASEDIR=/usr/local/zabbix chkconfig --add zabbix_agentd systemctl start zabbix_agentd systemctl enable zabbix_agentd netstat -anptu | grep zabbix netstat -anptu | grep 10050

2,配置监控端 21 登录管理页面,添加新主机

B 监控本机 21 运行zabbix_agent服务

vim /usr/local/zabbix/etc/zabbix_agentd.conf ServerActive=127.0.0.1:10051 cp /soft/zabbix/zabbix-3.2.3/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ chmod +x /etc/init.d/zabbix_agentd

vim /etc/init.d/zabbix_agentd BASEDIR=/usr/local/zabbix chkconfig --add zabbix_agentd systemctl start zabbix_agentd systemctl enable zabbix_agentd netstat -anptu | grep zabbix netstat -anptu | grep 10050

登录管理页面,配置->主机->Zabbix server->添加新模板

      自定义监控模板

使用软件自定义命令定义监控项 17 httpd sshd 1 创建监控模版 amytmp(名称) 配置--》模版--》创建模版--》amytmp--》(群组)Templates--》添加 2 创建应用集 someser(名称) 配置--》模版--》anytmp的 应用集--》创建应用集--》someser--》添加 3 创建监控项(名称 命令) webrunning sshrunning 命令 命令 配置--》模版--》anytmp的 监控项--》创建监控项--》名字 (webrunning sshrunning)--》健值net.tcp.port[192.168.4.17,8080]--》--》应用集(someser)--》添加 4 监控主机时调用定义的模版 5 查看监控信息

自定义命令,自定义监控模板 1 配置被监控端17 1.1 启用自定义监控功能 zabbix_agentd.conf 1.2 自定义命名 (名称 命令:系统命令 shell脚本)

vim /usr/local/zabbix/etc/zabbix_agentd.conf 263 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf 278 UnsafeUserParameters=1

vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/getuser.conf Format: UserParameter=<key>,<shell command> UserParameter=get_sum_user,wc -l /etc/passwd | awk '{print $1}' UserParameter=get_login_users,grep -c "/bin/bash" /etc/passwd UserParameter=get_nologin_users,grep -v -c "/bin/bash" /etc/passwd 重起服务:systemctl restart zabbix_agentd 测试命令:/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -p(端口) 10050 -k(命令名) get_nologin_users

1.3 重起服务zabbix_agentd 1.4 测试配置

配置监控服务器21 测试17命令 测试命令:/usr/local/zabbix/bin/zabbix_get -s 192.168.4.17 -p 10050 -k get_nologin_users 1 创建监控模版 amytmp(名称) 配置--》模版--》创建模版--》amytmp--》(群组)Templates--》添加

2 创建应用集 someser(名称) 配置--》模版--》anytmp的 应用集--》创建应用集--》someser--》添加

3 创建监控项(名称 命令) 配置--》模版--》anytmp的 监控项--》创建监控项 (webrunning sshrunning)--》健值(选择:net.tcp.port[192.168.4.17,8080])--》应用集(someser)--》添加

4 在自定义应用集添加 新监控项(名字 命令) 配置--》模版--》anytmp的 监控项--》创建监控项 --》名字(sumuser)--》健值 (get_sum_user)--》应用集(someser)--》添加 配置--》模版--》anytmp的 监控项--》创建监控项 --》名字(loginusers)--》健值 (get_login_users)--》应用集(someser)--》添加
配置--》模版--》anytmp的 监控项--》创建监控项 --》名字(nologin_users)--》健值 (get_nologin_users)--》应用集(someser)--》添加

5 在监控主机时,调用定义的模版 6 查看监控项信息

监控报警 监控17时当系统的总用户数大于50个时发邮件给zabbix@localhost邮件帐号。

准备邮件服务器 localhost systemctl start postifix 收件人:zabbix@localhost 发件人:root@localhost

1 创建触发器 名称--》 监控项名称 配置--》模版--》anytmp的 触发器--》创建触发器(名称,严重性,表达式 )—》添加

2 创建动作 名称--》 动作发邮件 配置--》动作--》创建动作--》操作--》邮件标题--》操作--》发送用户--》仅发送到Email--》添加--》添加

3 指定发件人 管理--》用户--》上一步发送的用户--》用户名--》--》更新

4 指定邮件服务器 5 测试

一:启动postifix /etc/init.d/postfix start /etc/init.d/postfix status

二:安装邮件发送工具mailx yum -y install mailx
vim /etc/mail.rc

三:配置mail [root@iZ250b91srrZ zabbix]# grep -v "^#" /etc/mail.rc |grep -v "^$" set hold set append set ask set crt set dot set keep set emptybox set indentprefix="> " set quote set sendcharsets=iso-8859-1,utf-8 set from=xxx@163.com set smtp=smtp.163.com:25 set smtp-auth-user=xxx@163.com set smtp-auth-password=xxx set showname set showto set newmail=nopoll set autocollapse set markanswered ignore received in-reply-to message-id references ignore mime-version content-transfer-encoding fwdretain subject date from to set bsdcompat

测试邮件能否发送 echo "hello word" | mail -s 'xxx' xxx@163.com

编写邮件发送脚本sendmail.sh cd /usr/local/zabbix/share/zabbix/alertscripts/ #进入zabbix默认存放脚本路径

vim sendmail.sh #编写发送邮件脚本

#!/bin/bash

messages=echo $3 | tr '\r\n' '\n'

subject=echo $2 | tr '\r\n' '\n'

echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

zabbix分布式: zabbix agent 自动注册 zabbix server 自动发现 zabbix Api

zabbix主动模式: grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 StartAgents=0 #关闭被动模式,开启主动模式 ServerActive=192.168.43.118
Hostname=Zabbix agent Include=/etc/zabbix/zabbix_agentd.d/*.conf

systemctl restart zabbix-agent netstat -lantpu |grep 10050 #没有10050端口

#模板类型为zabbix客户端(主动模式)

安装zabbix-proxy #减轻zabbix-server的负载 yum -y install zabbix-proxy zabbix-proxy-mysql mysql-server

rpm -ql zabbix-proxy rpm -ql zabbix-proxy-mysql

cd /usr/share/doc/zabbix-proxy-mysql-4.0.1/ gzip -d schema.sql.gz systemctl restart mysqld

cat /var/log/mysqld.log |grep password

mysql>SET PASSWORD = PASSWORD('MyNewPass4!');

mysql -u root -pMyNewPass4! mysql>create database zabbix_proxy character set utf8; mysql> grant all on zabbix_proxy.* to zabbixproxy@localhost identified by 'ZabbixProxy123!'; mysql> use zabbix_proxy; mysql> source /usr/share/doc/zabbix-proxy-mysql-4.0.1/schema.sql;

grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf ProxyMode=0 #开启主动模式 Server=192.168.43.118 #zabbix-server的IP地址 Hostname=proxy-node1 #proxy名称 LogFile=/var/log/zabbix/zabbix_proxy.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_proxy.pid SocketDir=/var/run/zabbix DBName=zabbix_proxy #数据库名 DBUser=zabbixproxy #数据库授权对象 DBPassword=ZabbixProxy123! #数据库密码 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log Timeout=4 ExternalScripts=/usr/lib/zabbix/externalscripts LogSlowQueries=3000

systemctl restart zabbix-proxy systemctl enable zabbix-proxy

#配置web

管理--》agent代理程序--》创建——》主动--》ip--》添加

客户端: grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 StartAgents=0 ServerActive=192.168.43.71 #zabbix-proxy的ip地址 Hostname=Zabbix agent Include=/etc/zabbix/zabbix_agentd.d/*.conf

systemctl restart zabbix-agent

创建主机:最下面选择agent代理

自动添加: grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 StartAgents=0 ServerActive=192.168.43.71 Hostname=Zabbix agent HostMetadataItem=system.uname #自己添加linux模板 Include=/etc/zabbix/zabbix_agentd.d/*.conf

systemctl restart zabbix-agent

#配置web 配置--》动作--》事件源(自动注册)--》创建动作

自动发现:

aip自动发现: