zabbix是一个基于WEB界面的开源网络监控程序。官网:http://www.zabbix.com/。使用系统为CentOS6.2,监控机IP为192.168.1.100,被监控机IP为192.168.1.200。官方wiki:http://www.zabbix.com/wiki/。
一、监控机安装安装PHP Web Server环境及所需软件
这里选择用apache+php+mysql。安装zabbix需要的web server环境软件包: yum install httpd mysql mysql-devel mysql-server php php-mysql php-bcmath php-gd php-mbstring php-xml 配置LAMP过程略过。安装EPEL源,因为有软件包需要从EPEL源下载:
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm 安装zabbix需要的其它软件包: yum install curl-devel net-snmp-devel fping e2fsprogs-devel zlib-devel libgssapi-devel krb5-devel openssl-devel libidn-devel iksemel-devel patch make gcc gcc-c++ 二、编译安装zabbix 目前版本为Zabbix 1.8.X。 cd /tmp wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/1.8.11/zabbix-1.8.11.tar.gz/download tar -zxvf zabbix-1.8.11.tar.gz cd zabbix-1.8.11 ./configure --enable-agent --enable-ipv6 --enable-proxy --enable-server --with-mysql --with-libcurl --with-net-snmp --with-jabber make make install 三、监控机配置zabbix 1、添加zabbix用户 useradd zabbix 2、创建zabbix数据库 #mysql -u root -p mysql>create database zabbix default character set utf8; mysql>quit; 3、导入数据库 mysql -u root -p zabbix < /tmp/zabbix-1.8.11/create/schema/mysql.sql mysql -u root -p zabbix < /tmp/zabbix-1.8.11/create/data/data.sql mysql -u root -p zabbix < /tmp/zabbix-1.8.11/create/data/images_mysql.sql 4、创建相关目录 mkdir -p /etc/zabbix/alert.d mkdir -p /var/log/zabbix-server mkdir -p /var/log/zabbix-agent mkdir -p /var/run/zabbix-server mkdir -p /var/run/zabbix-agent chown zabbix.zabbix /var/run/zabbix* chown zabbix.zabbix /var/log/zabbix* 5、复制配置文件 cp /tmp/zabbix-1.8.11/misc/conf/zabbix_server.conf /etc/zabbix cp /tmp/zabbix-1.8.11/misc/conf/zabbix_agentd.conf /etc/zabbix cp /tmp/zabbix-1.8.11/misc/init.d/redhat/8.0/zabbix_server /etc/init.d cp /tmp/zabbix-1.8.11/misc/init.d/redhat/8.0/zabbix_agentd /etc/init.d 6、编辑配置文件 1)配置zabbix_server.conf: vim /etc/zabbix/zabbix_server.conf 将: LogFile=/tmp/zabbix_server.log 修改为: LogFile=/var/log/zabbix-server/zabbix_server.log 找到: # PidFile=/tmp/zabbix_server.pid 在下面添加: PidFile=/var/run/zabbix-server/zabbix_server.pid 找到: # DBPassword= 在下面添加: DBPassword=123456 //这里填mysql root用户密码 找到: # AlertScriptsPath=/home/zabbix/bin/ 在下面添加: AlertScriptsPath=/etc/zabbix/alert.d/ 找到: # FpingLocation=/usr/sbin/fping 在下面添加: FpingLocation=/usr/sbin/fping 2)配置zabbix_agentd.conf: vim /etc/zabbix/zabbix_agentd.conf 将: # PidFile=/tmp/zabbix_agentd.pid 修改为: PidFile=/var/run/zabbix-agent/zabbix_agentd.pid 将: LogFile=/tmp/zabbix_agentd.log 修改为: LogFile=/var/log/zabbix-agent/zabbix_agentd.log 找到: # EnableRemoteCommands=0 在下面添加: EnableRemoteCommands=1 找到: # Timeout=3 在下面添加: Timeout=10 3)修改自启动文件中的路径 vim /etc/init.d/zabbix_server 将: progdir="/usr/local/zabbix/bin/" 修改为: progdir="/usr/local/sbin/" vim /etc/init.d/zabbix_agentd 将: progdir="/usr/local/zabbix/bin/" 修改为: progdir="/usr/local/sbin/" 7、启动zabbix chkconfig zabbix_server on chkconfig zabbix_agentd on chmod +x /etc/init.d/zabbix_server chmod +x /etc/init.d/zabbix_agentd service zabbix_server restart service zabbix_agentd restart 8、配置web前端 cp -r /tmp/zabbix-1.8.11/frontends/php /var/www/html/zabbix 浏览器访问:http://监控机IP/zabbix网页上部提示:
date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function.
编辑/etc/php.ini
修改: date.timezone = PRC service httpd restart 继续访问http://监控机IP/zabbix 1. Introduction 点击Next。2. Licence agreement
选择I agree,点击Next。3. Check of pre-requisites
还需要编辑php.ini,将一些配置项修改成Required的值。 vim /etc/php.ini 修改以下几项: max_execution_time = 300 max_input_time = 300 memory_limit = 128M post_max_size = 16M service httpd restart 后面都显示ok后,点击Next。4. Configure DB connection
输入mysql用户密码。点击Test connection,显示ok后,点击Next。5. Zabbix server details
输入host name(选填),点击Next。6. Pre-Installation summary
确认配置信息,点击Next。7. Install
提示:Config file does not exist. 点击Save configuration file,将zabbix.conf.php文件放到/var/www/html/zabbix/conf目录下。 Configuration file: Ok之后点击Next。8. Finish
点击Finish。随后进入登陆页面,使用默认用户名admin,密码zabbix登陆。
四、被监控机安装zabbix agent
1、这里安装已编译好的Pre-compiled Zabbix 1.8.5 (stable) agents。 cd /tmp wget http://www.zabbix.com/downloads/1.8.5/zabbix_agents_1.8.5.linux2_6.i386.tar.gz tar -zxvf zabbix_agents_1.8.5.linux2_6.i386.tar.gz mkdir /usr/local/zabbix mv bin/ /usr/local/zabbix/bin mv sbin/ /usr/local/zabbix/sbin 2、添加用户和服务端口 adduser zabbix echo 'zabbix_agent 10050/tcp' >> /etc/services echo 'zabbix_trap 10051/tcp' >> /etc/services 3、建立配置文件 mkdir /etc/zabbix mkdir -p /var/log/zabbix-agent mkdir -p /var/run/zabbix-agent chown zabbix.zabbix /var/run/zabbix* chown zabbix.zabbix /var/log/zabbix* 由于预编译的zabbix agent没有zabbix_agnetd.conf文件,从监控机上复制一个过来放到/etc/zabbix目录。 vim /etc/zabbix/zabbix_agnetd.conf 修改Server和Hostname两项: Server=192.168.1.100 #填监控机IP Hostname=test 4、启动zabbix agent /usr/local/zabbix/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf & 5、设置zabbix agent自启动 echo '/usr/local/zabbix/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf &' >> /etc/rc.local 五、监控机添加主机 1、浏览器访问http://监控机IP/zabbix,输入用户名密码登陆。 选择Configuration - Hosts - Create Host,输入被监控机信息。 右边Linked templates添加一个模板,模板里预设了很多监控项。 最后点击Save保存。Availability显示一个绿颜色的Z,或者点击Items右边显示Availability: Available说明已经成功连上被监控机。2、添加图形
Configuration - Hosts - 点击Hosts列表被监控机后面的Graphs项 - 点击右上角Create Graph。填写Name,在下面的Items添加需要画图的项目。3、其它
zabbix还可以设置Trigger触发器、Actions动作,当Trigger满足条件被触发后执行Actions发出警告。Zabbix系列之Zabbix安装搭建及汉化
https://www.zabbix.org/wiki/InstallOnCentOS_6.x_RHEL_6.x)
搭建环境:Centos6.5_x86_64,Zabbix2.2.2(目前为止最新版本),epel源
Server端:
1、安装开发软件包
1 | yum -y groupinstall "Development Tools" |
2、安装所需的依赖包
1 | yum -y install httpd mysql mysql-server php php-mysql php-common php-mbstring php-gd php-odbc php-pear curl curl-devel net-snmp net-snmp-devel perl-DBI php-xml ntpdate php-bcmath |
3、同步服务端的时间,保持所有服务器时间一致避免出现时间不同导致的不可用的监控数据
1 | ntpdate pool.ntp.rog |
4、创建zabbix服务运行所需要的用户和组
1 2 | groupadd -g 201 zabbix useradd -g zabbix -u 201 -m zabbix |
5、初始化mysql服务器
1 | /etc/init.d/mysqld start |
6、创建zabbix运行所需要的数据库及用户权限
1 2 3 4 5 | mysqladmin -uroot -h127.0.0.1 password "123456" mysql -uroot -h127.0.0.1 -p create database zabbix character set utf8; grant all privileges on zabbix.* to zabbixuser@'%' identified by 'zabbixpass'; flush privileges; |
7、下载解压zabbix
1 2 3 | wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.2/zabbix-2.2.2.tar.gz/download cd /usr/src/ tar xf zabbix-2.2.2.tar.gz |
8、将zabbix的初始数据导入到数据库中
1 2 3 4 5 | cd zabbix-2.2.2 mysql -uzabbixuser -h192.168.239.130 -p zabbix <database/mysql/schema.sql mysql -uzabbixuser -h192.168.239.130 -p zabbix <database/mysql/images.sql mysql -uzabbixuser -h192.168.239.130 -p zabbix <database/mysql/data.sql #登录数据库查看下表是否都创建成功 |
9、编译安装zabbix
1 2 3 | ./configure --sysconfdir=/etc/zabbix/ --enable-server --enable-agent --with-net-snmp --with-libcurl --with-mysql make && make install #此处指定sysconfdir配置文件的路径就在/etc/zabbix/目录下了,如果不指定默认在/usr/local/etc下 |
10、Copy zabbixserver端跟agent端的启动脚本,并设置执行权限
1 2 3 | cp misc/init.d/tru64/zabbix_agentd /etc/init.d/ cp misc/init.d/tru64/zabbix_server /etc/init.d/ chmod +x /etc/init.d/zabbix_* |
11、将zabbix的页面文件copy到指定目录(跟apache配置的相同即可)
1 2 3 | mkdir /var/www/html/zabbix cp -a zabbix-2.2.2/frontends/php/* /var/www/html/zabbix/ chown -R apache.apache /var/www/html/zabbix/ |
12、配置php文件,适应zabbix安装所需的参数
1 2 3 4 5 6 7 | vim /etc/php.ini date.timezone = Asia/Shanghai max_execution_time = 300 max_input_time = 300 post_max_size = 32M memory_limit = 128M mbstring.func_overload = 2 |
13、配置apache文件,定义安装访问zabbix的虚拟主机
1 2 3 4 5 6 | vim /etc/httpd/conf/httpd.conf ServerName 127.0.0.1 <VirtualHost *:80> DocumentRoot "/var/www/html" ServerName 192.168.239.130 </VirtualHost> |
14、配置zabbix server端的文件,定义数据库的IP、用户名、密码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | vim /etc/zabbix/zabbix_server.conf DBHost=192.168.239.130 DBName= zabbix DBUser=zabbixuser DBPassword=zabbixpass StartPollers=30 #开启多线程数,一般不要超过30个 StartTrappers=20 #trapper线程数 StartPingers=10 #fping线程数 StartDiscoverers=120 MaxHousekeeperDelete=5000 CacheSize=1024M #用来保存监控数据的缓存数,根据监控主机的数量适当调整 StartDBSyncers=8 #数据库同步时间 HistoryCacheSize=1024M TrendCacheSize=128M #总趋势缓存大小 HistoryTextCacheSize=512M AlertScriptsPath=/etc/zabbix/alertscripts LogSlowQueries=1000 |
15、启动apache服务跟zabbix服务
1 2 | /etc/init.d/httpd start /etc/init.d/zabbix_server start |
16、访问安装界面按照界面提示一步一步的完成安装
1 | http://192.168.239.130/zabbix/setup.php |
a) 进入安装界面点击Next
b) 确保所有的监测项都是OK,点击Next
c) 填写zabbix数据库的用户名、密码、地址等信息,点击Test connection,OK后点击Next
d) 填写zabbix服务器的信息,主机名,server程序监听的的端口,主机IP地址等,如果server跟web在一台服务器上保持默认即可,点击Next
e) 确认前面几部填写的信息没有问题的话点击Next
f) 检查web程序的config文件,如果没问题会显示OK,直接点击finish即可完成安装(如果此处有问题一般是zabbix虚拟主机目录文件的权限问题,上面已经有设置的过程一般不会出现问题)
1 | #如果因为手误,数据库密码或者用户名等的填写错了,后面会一直报错,我们可以手动的去编辑配置文件vim /var/www/html/zabbix/conf/zabbix.conf.php 手动定义相关的参数即可 |
g) 进入登录界面点击登录,默认admin zabbix
1 | #至此,server端的安装完成 |
Agent端
1、安装开发软件包
1 2 | yum -y groupinstall "Development Tools" yum –y install ntpdate |
2、同步客户端时间,防止跟服务器端不一致,导致检测到不可用的监控数据
1 | ntpdate pool.ntp.org |
3、创建zabbix运行所需要的用户跟组
1 2 | groupadd -g 201 zabbix useradd -g zabbix -u 201 -m zabbix |
4、解压安装zabbixagent端
1 2 3 4 5 | cd /usr/src/ tar xf zabbix-2.2.2.tar.gz cd zabbix-2.2.2 ./configure --sysconfdir=/etc/zabbix --enable-agent make && make install |
5、copy agent端运行所需要的脚本
1 2 | cp misc/init.d/tru64/zabbix_agentd /etc/init.d/ chmod +x /etc/init.d/zabbix_agentd |
6、配置agent端配置文件
1 2 3 4 5 6 | vim /etc/zabbix/zabbix_agentd.conf #此处千万别写成了zabbix_agent.conf,否则配置了不生效 Server=192.168.239.130 #填写Server的IP地址 ServerActive=192.168.239.130 #修改为Server的IP地址 Hostname=Centos-03 #填写本机的HostName,注意Server端要能解析 UnsafeUserParameters=1 #是否允许自定义的key,1为允许,0为不允许 Include= etc/zabbix/zabbix_agentd.conf.d/#自定义的agentd配置文件(key)可以在这里面写; |
7、启动zabbix agent端
1 | /etc/init.d/zabbix_agentd start |
解决zabbix中文乱码、汉化
1、在windows中找一个自己喜欢的字体或者去网上下载一个字体
2、将字体上传至/var/www/html/zabbix/fonts目录下
3、修改zabbix页面管理的中文字体设置
1 2 3 | vim /var/www/html/zabbix/include/defines.inc.php #修改以下两行 define('ZBX_FONT_NAME', 'simkai'); define('ZBX_GRAPH_FONT_NAME', 'simkai'); |
4、登陆页面设置相应用户的默认语言Administrator---->Users(此处要保证显示的是用户,否则显示的都是用户组)
5、点击用户名进入用户信息编辑,默认语言选择简体中文,然后点击save保存
6、刷新页面
1 | #已经成为中文,在有些地方还是会有英文的但是zabbix的汉化相对其他开源软件来说已经做的十分的好了!!!!!!. |
创建zabbix用户
# useradd zabbix -s /sbin/nologin -M
下载zabbix安装包
安装zabbix所需的组件
# yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI php-gd php-xml php-bcmath
解压安装编译
# tar zxvf zabbix-2.4.3.tar.gz -C /usr/src/# cd /usr/src/zabbix-2.4.3/# ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install
创建配置启动脚本
# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/# chmod +x /etc/init.d/zabbix_agentd# vim /etc/init.d/zabbix_agentdZABBIX_BIN="/usr/local/sbin/zabbix_agentd" 修改前ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd" 修改后
配置端口(官方建议添加)
# cat >>/etc/services<
修改配置文件
# vim /usr/local/zabbix/etc/zabbix_agentd.confServer=192.168.1.13(修改成Server对应的IP)ServerActive=192.168.1.13 (修改成Server对应的IP)Hostname=16 test (这里定义等下添加的主机名称)
启动zabbix_agent
# /etc/init.d/zabbix_agentd startStarting Zabbix Agent: [ OK ]
zabbix_agent防火墙配置
# iptables -I INPUT -p tcp -m state --state NEW --dport 10050 -s 192.168.1.0/255.255.255.0 -j ACCEPT
在zabbix_server上测试
# /usr/local/zabbix/bin/zabbix_get -s192.168.1.16 -p10050 -k "system.uptime"447400
证明agent安装成功
下面进入Zabbix WEB界面添加要监控的主机
组态-主机-创建主机
添加对应的监控模板,这里是Linux服务器所以添加linux模板
最后添加完成
使用zabbix agent监控Windows主机
(1) 下载Windows的zabbix客户端 下载地址: 选择windows版本的agent下载 从官方下载Zabbix Agent后,压缩包里面有2个目录,bin和conf,conf里面的配置文件是通用的。 bin文件夹里包含两个文件夹,一个为win32,另一个是win64,每个目录下应该有3个文件,分别 为:zabbix_agentd.exe zabbix_get.exe zabbix_sender.exe 根据操作系统不同,选择不同文件放在c:\zabbix目录下 (2) 添加客户端zabbix_agentd.win.conf文件 在c:\zabbix文件夹中新建zabbix_agentd.win.conf文件,写入如下基本内容: 直接编辑写字板打开zabbix_agentd.win.conf修改下面内容,这里跟linux下面的配置基本相同的。点击(此处)折叠或打开
点击(此处)折叠或打开
- zabbix_agentd.exe [3092]: service [Zabbix Agent] installed successfully
- zabbix_agentd.exe [3092]: event source [Zabbix Agent] installed successfull
点击(此处)折叠或打开
- zabbix_agentd.exe [4524]: service [Zabbix Agent] started successfull
ok,agents正常运行之后,在安装文件内会看到日志文件
zabbix_agent端安装完成,可以去监控端添加主机,配置模板了zabbix发送邮件
环境部署,参考其他靠谱文档,建议官方文档,今天我们聊聊zabbix邮件告警的事。
项目即监控项,触发器相当于给监控项设置阈值,根据表达式触发触发器,产生报警。
关于操作系统CentOS6.0 以下版本都是通过mail命令调用sendmail的sm-client发送邮件,所以如果关闭sendmail按照很多网上的文档是发不出邮件的。
那么mail命令如果仔细观察的话其实调用的是mailx来调用第三方非本地smpt服务。
一. 首先卸载(或停止) senmail升级安装mailx
1) 停止sendmail:
[root@localhost ~]# /etc/init.d/sendmail stop[root@localhost ~]# chkconfig sendmail off[root@localhost ~]#
2) 安装mailx:
[root@localhost workplace]# ls mailx-12.4 mailx-12.4.tar.bz2 zabbix-2.2.3 zabbix-2.2.3.tar.gz[root@localhost workplace]#[root@localhost workplace]# cd mailx-12.4 [root@localhost mailx-12.4]# make && make install UCBINSTALL=/usr/bin/install
如果碰到错误自行解决.
3) 配置mailx:
[root@localhost ~]# cd /usr/local/bin/ [root@localhost bin]# cp mailx /bin/mail cp: overwrite `/bin/mail'? y [root@localhost bin]#
4) 配置第三方smtp服务:
可以注册新浪邮箱测试发送给网易邮箱
Mailx的配置文件/etc/nail.rc~
[root@localhost ~]# vi /etc/nail.rcset from=test001@sina.com #你的用户名set smtp=smtp://smtp.sina.cn:25 set smtp-auth-user= test001@sina.com #你的用户名set smtp-auth-password= test001 #你的密码
5) 测试发送一份邮件
登陆163查看是否收到邮件。
调用第三方邮件服务器配置完成,mailx的好处是占用系统资源小,速度快,配置简洁。
也可以使用它连接公司内部服务器,这样做就更好了。
二. Zabbix 配置文件配置。
1) 首先我们配置zabbix的配置文件,使其示警媒介支持脚本。
修改zabbix_server.conf中的
# AlertScriptsPath=${datadir}/zabbix/alertscripts
为
AlertScriptsPath=/usr/loca/zabbix/alertscripts
2) 建立示警媒介可执行脚本的存放目录:
[root@localhost ~]# mkdir /usr/local/zabbix/alertscripts[root@localhost ~]# chmod 755 /usr/local/zabbix/alertscripts[root@localhost ~]# chown -R zabbix:zabbix /usr/local/zabbix/alertscripts
这几步相当重要!!!
3) 脚本的编写:
[root@localhost ~]# cat /usr/local/zabbix/alertscripts/sendmail.sh #!/bin/bash echo "$3" | /bin/mail -s "$2" $1 [root@localhost ~]#
非常简单:
说明一下: $3是邮件内容
$2 邮件标题
$1 发送给谁
三. Zabbix web页面配置:
1) 示警媒介配置:
注意其中的类型以及脚本名称
类型选择脚本,名称选择你在alertscripts目录下建立的脚本文件名称。
2) 用户配置
多个收件人,注意以逗号隔开,然后存档。
注意这个类型选择你在示警媒介中定义的名称。
3) 动作配置:
4) 测试一下:
把触发项的阈值调节一下
邮件效果:
5) 邮件发送成功在web上页面上如何看到?
6) 如果邮件发送在linux服务商能成功,就是zabbix发送不成功,在那里看?
在51cto有朋友可能遇到这个问题,怎么排错
- 首先检查权限,给zabbix脚本目录可执行权限,以及用户,并使用zabbix用户看能否发出邮件,如果是755的权限,基本是不用zabbix用户就能发出来邮件。
- 接着就是同zabbix web自带的审计
如果信息发送不成功,通常会显示在信息栏,比如超时,等等。