监控03-分布式监控Zabbix
一、Zabbix概述
Zabbix是一个基于Web界面的分布式系统监控与网络设备监控系统,能够监控各种网络参数,并提供灵活的通知机制,以使管理员能快速定位故障并解决。由于zabbix server端与zabbix agent组成,可通过SNMP、zabbix、agent、ping、端口监视等方法实现对远程主机与网络设备的监控。
二、Zabbix的特点
1、支持自动发现网络设备和服务器
2、支持分布式监控
3、可设置报警阈值
4、可通过多种方式进行数据收集
5、可指定的报警方式
6、实时的绘图功能
7、通过Web监控系统与设置系统
三、Zabbix配置案例
实验环境:
zabbix:192.168.1.11/24
client:192.168.1.12/24
----------------------------------------------------------------------------------------------------------------------
1、安装Zabbix服务器
(1)前期准备
[root@zabbix ~]# /etc/init.d/iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
[root@zabbix ~]# setenforce 0
搭建两张光盘的yum仓库
挂载第二张光盘
[root@zabbix ~]# mount /dev/sr0 /media/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@zabbix ~]# mkdir /media/cdrom1
[root@zabbix ~]# cp -rf /media/cdrom/* /media/cdrom1/ &
[1] 1352
[root@zabbix ~]# ls /etc/yum.repos.d/
a CentOS-Media.repo
[root@zabbix ~]# vim /etc/yum.repos.d/CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/cdrom/
file:///media/cdrom1/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
挂载第二张光盘
[root@zabbix ~]# umount /dev/sr0
[root@zabbix ~]# mount /dev/sr0 /media/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@zabbix ~]# du -sh /media/cdrom
4.2G /media/cdrom
[root@zabbix ~]# du -sh /media/cdrom1
1.2G /media/cdrom1
[root@zabbix ~]# rpm --import /media/cdrom/*K*
[root@zabbix ~]# yum -y clean all
Loaded plugins: fastestmirror
Cleaning repos: c6-media
Cleaning up Everything
Cleaning up list of fastest mirrors
[root@zabbix ~]# yum makecache
Loaded plugins: fastestmirror
Determining fastest mirrors
* c6-media:
c6-media | 4.0 kB 00:00 ...
c6-media/group_gz | 220 kB 00:00 ...
c6-media/filelists_db | 5.8 MB 00:00 ...
c6-media/primary_db | 4.4 MB 00:00 ...
c6-media/other_db | 2.7 MB 00:00 ...
Metadata Cache Created
(2)搭建LAMP平台
[root@zabbix ~]# yum -y install httpd mysql-server mysql mysql-devel php php-mysql
(3)安装zabbix依赖包
[root@zabbix ~]# yum -y install gcc gcc-c++ autoconf httpd-manual mod_perl mod_auth_mysql php-gd php-xml php-ldap php-pear php-xmlrpc mysql-connector-odbc libdbi-dbd-mysql net-snmp-devel curl-devel unixODBC-devel java-devel openldap openldap-devel php-pdo ncurses-devel
[root@zabbix ~]# ls *.rpm
OpenIPMI-2.0.16-14.el6.x86_64.rpm php-bcmath-5.3.3-3.el6_2.5.x86_64.rpm
OpenIPMI-devel-2.0.16-14.el6.x86_64.rpm php-mbstring-5.3.3-3.el6_2.5.x86_64.rpm
OpenIPMI-libs-2.0.16-14.el6.x86_64.rpm
[root@zabbix ~]# rpm -ivh O*.rpm
Preparing... ########################################### [100%]
1:OpenIPMI-libs ########################################### [ 33%]
2:OpenIPMI ########################################### [ 67%]
3:OpenIPMI-devel ########################################### [100%]
[root@zabbix ~]# rpm -ivh php-*.rpm --nodeps
Preparing... ########################################### [100%]
1:php-mbstring ########################################### [ 50%]
2:php-bcmath ########################################### [100%]
(4)配置LAMP环境
配置php环境,修改php.ini,目的是zabbix的web代码要求这么配置才能正常运行,所以,不修改的后果就是无法安装,无法获得正常的环境。
[root@zabbix ~]# vim /etc/php.ini
946 date.timezone =Asia/Shanghai
440 max_execution_time = 300
729 post_max_size = 32M
449 max_input_time = 300
457 memory_limit = 128M
1586 mbstring.func_overload = 2
[root@zabbix ~]# sed -i '276 s/#//' /etc/httpd/conf/httpd.conf
[root@zabbix ~]# /etc/init.d/httpd start
正在启动 httpd: [确定]
[root@zabbix ~]# chkconfig httpd on
[root@zabbix ~]# /etc/init.d/mysqld start
正在启动 mysqld: [确定]
[root@zabbix ~]# chkconfig mysqld on
(5)编译安装zabbix
[root@zabbix ~]# useradd -s /sbin/nologin zabbix
[root@zabbix ~]# mkdir /etc/zabbix /var/log/zabbix
[root@zabbix ~]# chown zabbix.zabbix /var/log/zabbix/
[root@zabbix ~]# tar xf zabbix-2.0.12.tar.gz -C /usr/src/
[root@zabbix ~]# cd /usr/src/zabbix-2.0.12/
[root@zabbix zabbix-2.0.12]# ./configure --prefix=/usr/local/ --sysconfdir=/etc/zabbix/ --enable-server --enable-proxy --enable-agent --enable-ipv6 --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --with-openipmi --with-unixodbc --with-ldap --enable-java && make && make install
若添加--with-ssh2 需要SSH开发库的支持,可以不编译此项
[root@zabbix zabbix-2.0.12]# pwd
/usr/src/zabbix-2.0.12
[root@zabbix zabbix-2.0.12]# cp misc/init.d/fedora/core/zabbix_* /etc/init.d/
[root@zabbix zabbix-2.0.12]# ll -d /etc/init.d/zabbix_*
-rwxr-xr-x. 1 root root 2170 6月 16 11:40 /etc/init.d/zabbix_agentd
-rwxr-xr-x. 1 root root 2181 6月 16 11:40 /etc/init.d/zabbix_server
[root@zabbix zabbix-2.0.12]# cd /etc/zabbix/
[root@zabbix zabbix]# ls
zabbix_agent.conf zabbix_agentd.conf zabbix_proxy.conf zabbix_server.conf
zabbix_agent.conf.d zabbix_agentd.conf.d zabbix_proxy.conf.d zabbix_server.conf.d
[root@zabbix zabbix]# cp zabbix_server.conf zabbix_server.conf.origin
[root@zabbix zabbix]# vim zabbix_server.conf
39 LogFile=/var/log/zabbix/zabbix_server.log
87 DBName=zabbix //数据库名称
103 DBUser=zabbix
112 DBPassword=zabbix
120 DBSocket=/var/lib/mysql/mysql.sock //根据实际填写路径,此处为YUM安装的
128 DBPort=3306
77 DBHost=localhost
(6)创建zabbix_agentd服务
agentd的作用就是获得host数据,然后将收集到的数据发送给server。或者是server主动来拿取数据。
[root@zabbix zabbix]# pwd
/etc/zabbix
[root@zabbix zabbix]# cp zabbix_agentd.conf zabbix_agentd.conf.origin
[root@zabbix zabbix]# vim zabbix_agentd.conf
123 ServerActive=192.168.1.11:10051 //服务端IP,端口固定
21 LogFile=/var/log/zabbix/zabbix_agentd.log
82 Server=127.0.0.1,192.168.1.11 //服务端IP
228 UnsafeUserParameters=1 //自定义脚本功能,1为开启,默认0为关闭
217 Include=/etc/zabbix/zabbix_agentd.conf.d/ //自定义的agentd配置文件存放路径
(7)建立监控数据库
[root@zabbix ~]# cd /usr/src/zabbix-2.0.12/
[root@zabbix zabbix-2.0.12]# mysqladmin -uroot password '123123'
[root@zabbix zabbix-2.0.12]# mysql -uroot -p123123
mysql> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
[root@zabbix zabbix-2.0.12]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
[root@zabbix zabbix-2.0.12]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql
[root@zabbix zabbix-2.0.12]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql
(8)部署PHP页面文档
[root@zabbix zabbix-2.0.12]# pwd
/usr/src/zabbix-2.0.12
[root@zabbix zabbix-2.0.12]# cp -rf frontends/php/ /var/www/html/zabbix
[root@zabbix zabbix-2.0.12]# chown -R apache.apache /var/www/html/zabbix/
浏览器访问测试:http://192.168.1.11/zabbix/
端口:3306
数据库名、用户名、密码均为:zabbix
随便起个名字
默认用户名:admin
密码:zabbix
报错:zabbix服务未运行
(9)锁定安装页面(安全起见)
[root@zabbix ~]# cd /var/www/html/zabbix/
[root@zabbix zabbix]# mv setup.php setup.php.lock
[root@zabbix zabbix]# chmod 600 setup.php.lock
(10)启动zabbix_server服务
[root@zabbix ~]# /etc/init.d/zabbix_server start
Starting zabbix_server: [确定]
[root@zabbix ~]# /etc/init.d/zabbix_agentd start
Starting zabbix_agentd: [确定]
[root@zabbix ~]# netstat -anpt |grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 16316/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 16252/zabbix_server
tcp 0 0 :::10050 :::* LISTEN 16316/zabbix_agentd
tcp 0 0 :::10051 :::* LISTEN 16252/zabbix_server
浏览器查看,已不报错
2、Linux客户端(被监控端)配置
(1)准备工作
[root@client ~]# /etc/init.d/iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
[root@client ~]# setenforce 0
[root@client ~]# grep 'zabbix*' /etc/services
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
(2)安装zabbix_agentd代理程序
[root@client ~]# useradd -s /sbin/nologin zabbix
[root@client ~]# mkdir /etc/zabbix /var/log/zabbix
[root@client ~]# chown zabbix.zabbix /var/log/zabbix/
[root@client ~]# tar xf zabbix-2.0.12.tar.gz -C /usr/src/
[root@client ~]# cd /usr/src/zabbix-2.0.12/
[root@client zabbix-2.0.12]# ./configure --prefix=/usr/local/zabbix/ --sysconfdir=/etc/zabbix/ --enable-agent && make && make install
[root@client zabbix-2.0.12]# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
[root@client zabbix-2.0.12]# ll -d /etc/init.d/zabbix_agentd
-rwxr-xr-x. 1 root root 2170 6月 16 12:16 /etc/init.d/zabbix_agentd
[root@client zabbix-2.0.12]# cd /etc/zabbix/
[root@client zabbix]# ls
zabbix_agent.conf zabbix_agent.conf.d zabbix_agentd.conf zabbix_agentd.conf.d
[root@client zabbix]# cp zabbix_agentd.conf zabbix_agentd.conf.origin
[root@client zabbix]# vim zabbix_agentd.conf
82 Server=127.0.0.1,192.168.1.11 //服务端IP地址
123 ServerActive=192.168.1.11:10051 //服务端IP及端口
21 LogFile=/var/log/zabbix/zabbix_agentd.log
228 UnsafeUserParameters=1
(2)启动zabbix_agentd服务
[root@client ~]# ln -s /usr/local/zabbix/sbin/zabbix_agentd /usr/local/sbin/
[root@client ~]# /etc/init.d/zabbix_agentd start
Starting zabbix_agentd: [确定]
[root@client ~]# chkconfig zabbix_agentd on
3、使用Zabbix管理平台
浏览器访问:http://192.168.1.11/zabbix/index.php,登入管理界面(账号:admin/密码:zabbix)
(1)修改为中文界面:
选择第三个,Chineses(zh_CN),保存
(2)创建主机分组
可以根据业务类型分类,例如Web服务器、数据库服务器等
配置-->主机组-->创建主机组
创建Web Server主机组
添加client(被监控端)主机
配置à主机à创建主机
按下图设置后,点击下方的存档
设置Web1主机添加模板,选择Template OS Linux
将本机的监控开启
课外补充:解决中文乱码问题
1、在Windows中找一个喜欢的字体,我选择的是华文楷体
控制面板à外观和个性化à字体 (win10系统)
2、将喜欢的字体复制到zabbix 服务器的/var/www/html/zabbix/fonts/目录下,若以.TTF结尾,重命名一下,改成小写的.ttf
[root@zabbix fonts]# pwd
/var/www/html/zabbix/fonts
[root@zabbix fonts]# ls
DejaVuSans.ttf STKAITI.ttf
3、修改php页面
[root@zabbix include]# pwd
/var/www/html/zabbix/include
[root@zabbix include]# cp defines.inc.php defines.inc.php.bak
[root@zabbix include]# vim defines.inc.php
38 define('ZBX_GRAPH_FONT_NAME', 'STKAITI'); // font file name
86 define('ZBX_FONT_NAME', 'STKAITI');
4、重启zabbix_server服务
[root@zabbix ~]# /etc/init.d/zabbix_server restart
Shutting down zabbix_server: [确定]
Starting zabbix_server: [确定]
浏览器再次访问测试,乱码问题已解决:
http://192.168.1.11/zabbix