zabbix源码安装,自定义监控205的用户数,有触发器但没有邮件报警
如果对运维课程感兴趣,可以在b站上搜索我的账号: 运维实战课程,可以关注我,学习更多免费的运维实战技术视频
监控端配置:(192.168.4.5)
1基础环境:(实验环境可以关闭防火墙,但生产环境不能关闭,否则不安全,要设置相应规则)
[root@localhost 桌面]# /etc/init.d/iptables stop
[root@localhost 桌面]# setenforce 0
2搭建lamp平台,(它运行在lamp平台上)
[root@localhost 桌面]# yum -y install httpd
[root@localhost 桌面]# yum -y install php-*
[root@localhost 桌面]# yum -y install mysql mysql-server
[root@localhost 桌面]# /etc/init.d/httpd restart
[root@localhost 桌面]# /etc/init.d/mysqld restart
3安装snmp协议 //用该协议收集信息
[root@localhost 桌面]# yum -y install net-snmp net-snmp-utils net-snmp-*
4安装编译工具gcc 和 gcc-c++
[root@localhost 桌面]# yum -y install gcc gcc-c++
5安装zabbix依赖包
[root@localhost 桌面]# yum -y install mysql-devel
[root@localhost 桌面]# yum -y install libcurl-devel
6安装zabbix源码包
[root@localhost 桌面]# ls //下面是插件功能包和zabbix源码包,网上下载
php-bcmath-5.3.3-22.el6.x86_64.rpm zabbix-2.2.1.tar.gz
php-mbstring-5.3.3-22.el6.x86_64.rpm
[root@localhost 桌面]# tar -zxf zabbix-2.2.1.tar.gz
[root@localhost 桌面]# cd zabbix-2.2.1
[root@localhost zabbix-2.2.1]# useradd zabbix
[root@localhost zabbix-2.2.1]# ls
[root@localhost zabbix-2.2.1]# ./configure --prefix=/usr/local/zabbix --enable-server \
--enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libcurl \
--enable-server \
--enable-proxy \
--with-mysql \
--with-net-snmp \
--with-libcurl
回车即可。
//注意:
--enable-server //安装zabbix server
--enable-proxy //安装zabbix proxy
--enable-agent //安装zabbix agent 被监控的机器需要配置,启动agent服务
--with-mysql //支持mysql数据库服务器
--with-net-snmp //支持snmp
--with-libcurl //支持curl,用于web监控
上面可以根据需要来进行选择,被监控的机器需要配置agent,启动agent服务,此处为了能够设置监控本机,所以本机也安装了agent,如果不监控本机,也可以不安装agent,此外proxy也可根据需要选择是否要安装。
[root@localhost zabbix-2.2.1]# make && make install
7创建启动脚本:(解压后的就自带有,cp一下即可)
注意:zabbix_server能成功启动服务并且能监听11051端口的条件是:1)mysql 不设置密码,2)要等恢复zabbix模板到数据库后再启动zabbix_server服务,否则缺失一个条件,zabbix_server服务虽然能起来,但11051端口也不能正常监听,配置的zabbix页面上就会显示:zabbix server is not running。
[root@localhost zabbix-2.2.1]# cp /root/桌面/zabbix-2.2.1/misc/init.d/fedora/core/zabbix_* /etc/init.d/
[root@localhost zabbix-2.2.1]# chmod +x /etc/init.d/zabbix_server
[root@localhost zabbix-2.2.1]# chmod +x /etc/init.d/zabbix_agentd
[root@localhost zabbix-2.2.1]# vim /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix //修改一下路径,指定安装的路径,才能启动,等恢复模板后再启动,现//在也能启动,但是进程启动起来,但不能正常监听11051端口。
或者:sed -i 's#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g' /etc/init.d/zabbix_server
[root@localhost zabbix-2.2.1]# vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix //修改一下路径,指定安装的路径,才能启动服务, 此处是为了监控//本机,才安装了agent,如果不监控本机,就不用安装agent
或者:sed -i 's#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g' /etc/init.d/zabbix_agentd
8添加为开机自启动或不自启动
[root@localhost zabbix-2.2.1]# chkconfig --add zabbix_server
[root@localhost zabbix-2.2.1]# chkconfig --add zabbix_agentd
[root@localhost zabbix-2.2.1]# chkconfig zabbix_server on
[root@localhost zabbix-2.2.1]# chkconfig zabbix_agentd on
9登录mysql数据库,通过备份文件,恢复模板配置 (解压后的zabbix就自带有了)
[root@localhost zabbix-2.2.1]# ls /root/桌面/zabbix-2.2.1/database/mysql/
data.sql images.sql schema.sql
[root@localhost zabbix-2.2.1]# cd /root/桌面/zabbix-2.2.1/database/mysql/
[root@localhost mysql]# ls
data.sql images.sql schema.sql//恢复按顺序恢复,可用root用户无密码恢复,也可用授权用户恢复
[root@localhost mysql]# mysql //数据库不能设置密码,否则会影响zabbix_server监听11051端口
mysql> create database zabbix default character set utf8;
mysql> grant all on zabbix.* to zabbix@"localhost" identified by "zbxpass";
mysql> quit
[root@localhost mysql]# mysql -uzabbix -pzbxpass //测试,能通过授权用户登录成功
mysql> quit
[root@localhost mysql]# mysql zabbix < schema.sql
[root@localhost mysql]# mysql zabbix < images.sql
[root@localhost mysql]# mysql zabbix < data.sql
[root@localhost mysql]# mysql
mysql> use zabbix;
mysql> show tables; //查看会有模板表
+-----------------------+
| Tables_in_zabbix |
+-----------------------+
| acknowledges |
| actions |
| alerts |
| application_template
……………………………
mysql> quit
10 拷贝zabbix的web页面或称php页面到 /var/www/html/zabbix (解压后就自动有了)
[root@localhost mysql]# cd /root/桌面/zabbix-2.2.1/frontends/
[root@localhost frontends]# ls
php
[root@localhost frontends]# ls php/
[root@localhost frontends]# cp -r php/ /var/www/html/zabbix
[root@localhost frontends]# chown -R apache:apache /var/www/html/zabbix/
[root@localhost frontends]# /etc/init.d/httpd restart
11 通过访问浏览器访问zabbix的web页面后根据提示安装zabbix
1)自己访问自己安装http://localhost/zabbix,也可用他机访问自己进行安装
[root@localhost frontends]# firefox
点击next,如下图:
2)根据报错信息修改php程序配置,使之达到要求的参数,且安装插件功能,然后重启httpd和zabbix_server
修改php程序配置中所需参数:
[root@localhost frontends]# vim /etc/php.ini
date.timezone =Asia/Shanghai
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
或者:
echo "date.timezone =Asia/Shanghai" >> /etc/php.ini
sed -i 's#post_max_size = 8M#post_max_size = 16M#g' /etc/php.ini
sed -i 's#max_execution_time = 30#max_execution_time = 300#g' /etc/php.ini
sed -i 's#max_input_time = 60#max_input_time = 300#g' /etc/php.ini
安装插件功能:
[root@localhost frontends]# cd /root/桌面/
[root@localhost 桌面]# ls
php-bcmath-5.3.3-22.el6.x86_64.rpm zabbix-2.2.1
php-mbstring-5.3.3-22.el6.x86_64.rpm zabbix-2.2.1.tar.gz
[root@localhost 桌面]# rpm -ivh --nodeps php-bcmath-5.3.3-22.el6.x86_64.rpm
[root@localhost 桌面]# rpm -ivh --nodeps php-mbstring-5.3.3-22.el6.x86_64.rpm
重启httpd和zabbix_server:
[root@localhost 桌面]# /etc/init.d/httpd restart
[root@localhost 桌面]# /etc/init.d/zabbix_server restart
[root@localhost 桌面]# /etc/init.d/zabbix_agentd restart
查看是否监听端口:
[root@localhost 桌面]# netstat -anptu |grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 26228/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 12262/zabbix_server
3)重新刷新页面访问zabbix,如下图即可:
点击next,如下图:
4)指定mysql数据库的那个机器,此处是本机,指定数据库的名字(zabbix),填写用哪个用户和密码来连接登录数据库,此处用授权用户和密码(zabbix,zbxpass),点击test connection测试一下,如下图:
测试ok才可,点击next,如下图:
5)填写zabbix监控端(zabbix_server端)服务器的ip地址:192.168.4.5(也就是本机),点击next,如下图:
点击next,如下图:
点击finish,如下图:
6)输入默认的用户名和密码,(用户名默认是:admin,密码默认是:zabbix,和之前设置的授权用户密码不冲突),点击sign in登录到zabbix页面,如下图:
7)改成中文页面:点击administration——点击users——右上角类型选择users,如下图:
点击admin,如下图:
选择中文,点击save,如下图:
刷新一下页面就可以变成中文了,如下图:
被监控端配置:(192.168.4.205)
在远端机器192.168.4.205上启动zabbix_agentd服务:
[root@localhost 桌面]# ls
zabbix-2.2.1.tar.gz
[root@localhost 桌面]# useradd -s /sbin/nologin zabbix
[root@localhost 桌面]# yum -y install gcc gcc-c++
[root@localhost 桌面]# tar -zxf zabbix-2.2.1.tar.gz
[root@localhost 桌面]# ls
zabbix-2.2.1 zabbix-2.2.1.tar.gz
[root@localhost 桌面]# cd zabbix-2.2.1
[root@localhost zabbix-2.2.1]# ls
aclocal.m4 compile configure.in include Makefile.in README
AUTHORS conf COPYING INSTALL man src
bin config.guess database install-sh misc upgrades
build config.sub depcomp m4 missing
ChangeLog configure frontends Makefile.am NEWS
[root@localhost zabbix-2.2.1]# ./configure --prefix=/usr/local/zabbix --enable-agent
[root@localhost zabbix-2.2.1]# make && make install
[root@localhost zabbix-2.2.1]# ls /usr/local/zabbix/
bin etc lib sbin share
[root@localhost zabbix-2.2.1]# ls /root/桌面/zabbix-2.2.1/misc/init.d/fedora/core/
zabbix_agentd zabbix_server
[root@localhost zabbix-2.2.1]#
cp /root/桌面/zabbix-2.2.1/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
[root@localhost zabbix-2.2.1]# chmod +x /etc/init.d/zabbix_agentd
[root@localhost zabbix-2.2.1]# chkconfig --add zabbix_agentd
[root@localhost zabbix-2.2.1]# chkconfig zabbix_agentd on
[root@localhost zabbix-2.2.1]# vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix
wq
[root@localhost zabbix-2.2.1]# /etc/init.d/zabbix_agentd start
在远端机器192.168.4.205上配置允许谁来监控自己,指定监控服务器IP,指定自己的主机名:
[root@localhost zabbix-2.2.1]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.4.5 //逗号后跟监控服务器的IP
ServerActive=192.168.4.5:10051 //指定监控服务器IP和端口
Hostname=client205 //自己的主机名,zabbix_server机器必须能解析才行
wq
[root@localhost zabbix-2.2.1]# /etc/init.d/zabbix_agentd restart
[root@localhost zabbix-2.2.1]# hostname client205
自定义监控项 :监控192.168.4.205上的用户数
在被监控端192.168.4.205上配置:(在被监控端,定义监控命令,允许被监控)
[root@localhost zabbix-2.2.1]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
UnsafeUserParameters=1 启用允许自定义命令
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
wq
[root@localhost zabbix-2.2.1]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/mon.user.num
UserParameter=mon.user.num,wc -l /etc/passwd | awk '{print $1}'
wq
注意:UserParameter=<键值>,命令 //(多个命令时候,命令之间用;隔开并且把最终的结果给键值调用)
[root@localhost zabbix-2.2.1]# /etc/init.d/zabbix_agentd restart
本机测试一下能不能使用上面定义的命令获取用户数:
[root@localhost zabbix-2.2.1]# cat /etc/passwd |wc -l
32
[root@localhost zabbix-2.2.1]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k mon.user.num
32
注意命令的使用格式:/usr/local/zabbix/bin/zabbix_get -s IP -k 键值
在192.168.4.5上:(监控端)
先测试能否通过客户端的键值来获取到数值:
[root@localhost 桌面]# /usr/local/zabbix/bin/zabbix_get -s 192.168.4.205 -k mon.user.num
32
再部署监控被监控机器的监控:
创建监控模板:点击组态——模板——创建模板——定义模板名——存档
在模板中添加创建应用集,添加存放各类监控项:在模板中点击应用集——创建应用集——命名——存档
在模板的应用集里添加项:在模板的应用集里点击项目——创建监控项——监控项名称填写,键值填写(和被监控端的键值要一致),属于的应用集——存档。
在模板的应用集里创建图形,以显示图像曲线:在模板的应用集里点击图形——创建图形——图形命名——关联上需要显示图形的监控项,选择好合适需要的线条、颜色显示——存档。
在模板的应用集里创建触发器:点击触发器——创建触发器——触发器命名,表达式添加(点击添加——选择监控项,并进行阀值设置——插入后生成表达式),描述,严重性级别颜色显示——存档。
创建被监控的主机,把监控端定义的模板让被监控端使用:点击组态——主机——创建主机——定义要监控的IP、可见名,再点击主机旁边的模板,关联好定义的模板——存档
监视、展示数据:点击检测中——最新数据,会显示出刚才添加的要监控的数据,并显示监控的数据,点击检测中——图形,选择好图形名字后可以看到图形。
再对比一下模板上和被应用到主机上的触发器表达式的不同,发现模板被应用到哪个主机,哪个主机上表达式会有相应的变化,但模板本身表达式不变,如下图:
模板上的触发器表达式:点击组态——模板——选择自定义的模板——触发器,如下:
被监控的4.205主机上的表达式:点击组态——主机——选择相应主机4.205——触发器,如下图:
在192.168.4.205上增加用户到41个( >40个)
[root@client205 桌面]#for i in `seq 9`;do useradd shi$i;done
[root@localhost zabbix-2.2.1]# cat /etc/passwd |wc -l
41
到在192.168.4.5(zabbix监控系统)上看:
监测中——最新数据:
监测中——图形:
监测中——仪表盘:
在192.168.4.205上减少到用户到39个( <40个)
[root@localhost zabbix-2.2.1]# sed -i '$d' /etc/passwd
[root@localhost zabbix-2.2.1]# sed -i '$d' /etc/passwd
[root@localhost zabbix-2.2.1]# cat /etc/passwd |wc -l
39
到在192.168.4.5(zabbix监控系统)上看:
监测中——最新数据:
监测中——图形:
监测中——仪表盘:
如果对运维课程感兴趣,可以在b站上搜索我的账号: 运维实战课程,可以关注我,学习更多免费的运维实战技术视频