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
$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=,
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
zabbix监控_第1张图片
重起服务: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 postifixbr/>收件人: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 [email protected]
set smtp=smtp.163.com:25
set [email protected]
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' [email protected]

编写邮件发送脚本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自动发现: