zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利,官方网站:http://www.zabbix.com官方文档:http://www.zabbix.com/documentation/2.0/manual/quickstart。Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能。zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(trapping方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
<a href="http://s4.51cto.com/wyfs02/M01/86/FE/wKiom1fQk1XDQ_Z5AADeQ6M4T0o052.png" target="_blank"></a>
zabbix的主要特点:
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能等等
Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
一.安装LNMP环境
参考:http://pvbutler.blog.51cto.com/7662323/1845685
二.Zabbix服务端安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<code>[root@Zabbix_Server Tools]</code><code># tar zxvf zabbix-3.0.4.tar.gz </code>
<code>[root@Zabbix_Server Tools]</code><code># cd zabbix-3.0.4/database/mysql/</code>
<code>[root@Zabbix_Server mysql]</code><code># ls</code>
<code>data.sql images.sql schema.sql</code>
<code>[root@Zabbix_Server mysql]</code><code># mysql -u root -pZabbix</code>
<code>mysql> create database zabbix character </code><code>set</code> <code>utf8; </code><code>#创建数据库zabbix,并且数据库编码使用utf8</code>
<code>Query OK, 1 row affected (0.00 sec)</code>
<code>mysql> insert into mysql.user(Host,User,Password) values(</code><code>'localhost'</code><code>,</code><code>'zabbix'</code><code>,password(</code><code>'zabbix'</code><code>));</code>
<code>ERROR 1364 (HY000): Field </code><code>'ssl_cipher'</code> <code>doesn't have a default value</code>
<code>mysql> quit;</code>
<code>[root@Zabbix_Server mysql]</code><code># vim /app/mysql/my.cnf </code>
<code>#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 指定了严格模式,为了安全,严格模式禁止通过insert 这种形式直接修改mysql库中的user表进行添加新用户</code>
<code>sql_mode=NO_ENGINE_SUBSTITUTION </code><code>#将配置文件中的STRICT_TRANS_TABLES删掉 </code>
<code>[root@Zabbix_Server mysql]</code><code># service mysqld restart</code>
<code>mysql> insert into mysql.user(Host,User,Password) values(</code><code>'localhost'</code><code>,</code><code>'zabbix'</code><code>,password(</code><code>'zabbix'</code><code>)); </code><code>#新建账户zabbix,密码zabbix</code>
<code>Query OK, 1 row affected, 3 warnings (0.00 sec)</code>
<code>mysql> flush privileges; </code><code>#刷新系统授权表</code>
<code>Query OK, 0 rows affected (0.00 sec)</code>
<code>mysql> grant all on zabbix.* to </code><code>'zabbix'</code><code>@</code><code>'localhost'</code> <code>identified by </code><code>'zabbix'</code> <code>with grant option; </code><code>#允许账户zabbix能从本机连接到数据库zabbix</code>
<code>mysql> flush privileges;</code>
<code>mysql> use zabbix; </code><code>#进入数据库,按照顺序进行导入,否则会出错。</code>
<code>Database changed</code>
<code>mysql> </code><code>source</code> <code>/usr/local/Tools/zabbix-3</code><code>.0.4</code><code>/database/mysql/schema</code><code>.sql</code>
<code>...</code>
<code>Query OK, 0 rows affected (0.05 sec)</code>
<code>Records: 0 Duplicates: 0 Warnings: 0</code>
<code>mysql> </code><code>source</code> <code>/usr/local/Tools/zabbix-3</code><code>.0.4</code><code>/database/mysql/images</code><code>.sql</code>
<code>Query OK, 1 row affected (0.01 sec)</code>
<code>mysql> </code><code>source</code> <code>/usr/local/Tools/zabbix-3</code><code>.0.4</code><code>/database/mysql/data</code><code>.sql</code>
<code>Query OK, 0 rows affected (0.01 sec)</code>
<code>mysql> </code><code>exit</code><code>;</code>
<code>Bye</code>
<code>[root@Zabbix_Server mysql]</code><code># ln -s /usr/lib64/mysql/libmysqlclient.so.16.0.0 /usr/lib64/mysql/libmysqlclient.so #32位系统为/usr/lib/mysql,注意系统版本同,文件版本可能不一样,这里是16.0.0</code>
<code>[root@Zabbix_Server mysql]</code><code># ln -s /usr/lib64/mysql/libmysqlclient_r.so.16.0.0 /usr/lib64/mysql/libmysqlclient_r.so</code>
<code>[root@Zabbix_Server mysql]</code><code># cd /usr/local/Tools/zabbix-3.0.4</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># groupadd zabbix</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># useradd -g zabbix zabbix -s /sbin/nologin </code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># yum -y install mysql-devel mysql-community-devel unixODBC-devel libssh2-devel OpenIPMI-devel net-snmp-devel curl-devel net-snmp-libs net-snmp-utils</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># chkconfig snmpd on</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># ./configure --prefix=/app/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc --with-ssh2 --with-openipmi --with-openssl</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># make && make install</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># cp /usr/local/Tools/zabbix-3.0.4/misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># cp /usr/local/Tools/zabbix-3.0.4/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># chmod +x /etc/rc.d/init.d/zabbix_*</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># chkconfig zabbix_server on</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># chkconfig zabbix_agentd on</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># vim /etc/rc.d/init.d/zabbix_server </code>
<code> </code><code>BASEDIR=</code><code>/app/zabbix</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># vim /etc/rc.d/init.d/zabbix_agentd</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># cp /app/zabbix/etc/zabbix_server.conf{,bak}</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># ln -s /app/zabbix/sbin/* /usr/local/sbin/</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># ln -s /app/zabbix/bin/* /usr/local/bin/</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># vim /app/zabbix/etc/zabbix_server.conf</code>
<code>LogFile=</code><code>/app/zabbix/logs/zabbix_server</code><code>.log</code>
<code>PidFile=</code><code>/app/zabbix/pid/zabbix_server</code><code>.pid</code>
<code>DBName=zabbix</code>
<code>DBUser=zabbix</code>
<code>DBPassword=zabbix</code>
<code>ListenIP=localhost</code>
<code>CacheSize=1024M </code><code>#根据服务器性能修改,太小后面会报out of memory</code>
<code>AlertScriptsPath=</code><code>/app/zabbix/alertscripts</code> <code>#zabbix运行脚本存放目录</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># cp /app/zabbix/etc/zabbix_agentd.conf{,bak}</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># vim /app/zabbix/etc/zabbix_agentd.conf</code>
<code>LogFile=</code><code>/app/zabbix/logs/zabbix_agentd</code><code>.log</code>
<code>Include=</code><code>/app/zabbix/etc/zabbix_agentd</code><code>.conf.d/</code>
<code>UnsafeUserParameters=1 </code><code>#启用自定义key</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># mkdir -p /app/zabbix/logs</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># touch /app/zabbix/logs/zabbix_agentd.log</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># touch /app/zabbix/logs/zabbix_server.log</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># mkdir /app/zabbix/pid</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># touch /app/zabbix/pid/zabbix_server.pid</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># chmod 766 /app/zabbix/pid/*</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># chmod 766 /app/zabbix/logs/*</code>
--with-libxml2 用来解析调用SOAP接口返回的XML,
--with-libcurl用来调用vcenter的SOAP接口。
如果没有mysql_config,需要安装yum install mysql-devel
配置web站点
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># rm -rf /app/nginx/html/*</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># cp -r /usr/local/Tools/zabbix-3.0.4/frontends/php/* /app/nginx/html/</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># chown www.www -R /app/nginx/html/</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># service zabbix_agentd start</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># tail /app/zabbix/logs/zabbix_server.log </code>
<code> </code><code>21858:20160906:072015.723 Ez Texting notifications: YES</code>
<code> </code><code>21858:20160906:072015.724 ODBC: YES</code>
<code> </code><code>21858:20160906:072015.724 SSH2 support: YES</code>
<code> </code><code>21858:20160906:072015.724 IPv6 support: YES</code>
<code> </code><code>21858:20160906:072015.724 TLS support: YES</code>
<code> </code><code>21858:20160906:072015.724 ******************************</code>
<code> </code><code>21858:20160906:072015.724 using configuration </code><code>file</code><code>: </code><code>/app/zabbix/etc/zabbix_server</code><code>.conf</code>
<code> </code><code>21858:20160906:072015.730 current database version (mandatory</code><code>/optional</code><code>): 03000000</code><code>/03000000</code>
<code> </code><code>21858:20160906:072015.730 required mandatory version: 03000000</code>
<code> </code><code>21858:20160906:072015.735 listener failed: cannot resolve address [[localhost]:10051]: [-2] Name or service not known</code>
<code>#ListenIP=localhost</code>
<code>ListenIP=127.0.0.1</code>
<code>[root@Zabbix_Server logs]</code><code># service zabbix_server start</code>
<code>[root@Zabbix_Server logs]</code><code># netstat -ntlp |grep zabbix</code>
<code>tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 22490</code><code>/zabbix_agentd</code>
<code>tcp 0 0 127.0.0.1:10051 0.0.0.0:* LISTEN 22419</code><code>/zabbix_server</code>
<code>tcp 0 0 :::10050 :::* LISTEN 22490</code><code>/zabbix_agentd</code>
<code>[root@Zabbix_Server logs]</code><code>#</code>
修改php配置文件参数
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># cp /app/php/etc/php.ini{,bak}</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># vim /app/php/etc/php.ini</code>
<code>post_max_size = 16M</code>
<code>max_execution_time = 300</code>
<code>max_input_time = 300</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># cp /app/php/etc/php-fpm.conf{,bak}</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># vim /app/php/etc/php-fpm.conf</code>
<code>request_terminate_timeout = 300</code>
<code>[root@Zabbix_Server zabbix-3.0.4]</code><code># service php-fpm restart</code>
安装web
在浏览器里直接输入IP地址http://192.168.100.176安装
<a href="http://s3.51cto.com/wyfs02/M00/86/E0/wKioL1fOF3Dg4QA_AACU3ItbNp0923.png" target="_blank"></a>
下一步,提示:PHP option "always_populate_raw_post_data" must be set to "-1"
修改php.ini中always_populate_raw_post_data = -1
<code>[root@Zabbix_Server conf]</code><code># vim /app/php/etc/php.ini</code>
<code>always_populate_raw_post_data = -1</code>
<code>[root@Zabbix_Server conf]</code><code># service php-fpm restart</code>
刷新页面,下一步
<a href="http://s2.51cto.com/wyfs02/M00/86/E0/wKioL1fOGYKTI_ZjAAB3ez_EBDc459.png" target="_blank"></a>
配置MySQL数据库信息
Database:MySQL
Database host:localhost
Database port:0 use default port 3306
Database name:zabbix
User:zabbix
Password:zabbix
<a href="http://s5.51cto.com/wyfs02/M01/86/E0/wKioL1fOGiXR-f4IAABdeGu4J9A897.png" target="_blank"></a>
直接下一步
<a href="http://s5.51cto.com/wyfs02/M02/86/E0/wKioL1fOGmWR3e-eAACMP_ZVJyg386.png" target="_blank"></a>
检查一下设置情况,没问题直接Next
<a href="http://s1.51cto.com/wyfs02/M00/86/E0/wKioL1fOGsXg3xo1AABmoKPkN4Y784.png" target="_blank"></a>
<a href="http://s1.51cto.com/wyfs02/M01/86/E1/wKiom1fOGsXg95m_AAAxypicUAc979.png" target="_blank"></a>
默认Username: Admin、Password: zabbix
<a href="http://s4.51cto.com/wyfs02/M01/86/E0/wKioL1fOG4DTb7swAADaVx4nlSc315.png" target="_blank"></a>
Zabbix主要的配置文件两个:“zabbix_server.conf”负责服务器端的设定;“zabbix_agent.conf”用来设置客户端代理参数;“zabbix_proxy.conf”用来设定分布式的部署。Zabbix_server.conf参数除了保证服务正常运行外还涉及该服务器的性能,如果参数设定不合理可能会导致zabbix添加主机不正常、代理端数据无法正常收集或是zabbix服务器性能严重下降,经常报告CPU占用过高或是IO占用过高等问题。
zabbix_server.conf
DBName=zabbix zabbix所属数据库名称
DBUser=zabbix zabbix所属数据库用户
DBPassword=www.xxxxxx.com zabbix数据库密码
StartPollers=30 轮询的初始值(0-1000)
StartIPMIPollers=4 IPMI轮询的初始值(0-1000)
StartPollersUnreachable=30 轮询不可达的主机数(包括IPMI 0-1000)
StartTrappers=8 捕获的初始值(0-1000)
StartPingers=4 ping的初始值(0-1000)
StartDiscoverers=0 自动发现的初始值(0-250)
CacheSize=384M 缓存大小
CacheUpdateFrequency=300 缓存更新的频率
StartDBSyncers=8 数据库同步时间
TrendCacheSize=128M 总趋势缓存大小
AlertScriptsPath=/usr/bin 脚本的存放位置
LogSlowQueries=1000 日志慢查询设定
查看Zabbix版本号:
<code>[root@Zabbix_Server ~]</code><code># /app/zabbix/bin/zabbix_get -V</code>
<code>zabbix_get (Zabbix) 3.0.4</code>
<code>Revision 61185 15 July 2016, compilation </code><code>time</code><code>: Sep 5 2016 14:28:41</code>
<code>Copyright (C) 2016 Zabbix SIA</code>
<code>License GPLv2+: GNU GPL version 2 or later <http:</code><code>//gnu</code><code>.org</code><code>/licenses/gpl</code><code>.html>.</code>
<code>This is </code><code>free</code> <code>software: you are </code><code>free</code> <code>to change and redistribute it according to</code>
<code>the license. There is NO WARRANTY, to the extent permitted by law.</code>
<code>[root@Zabbix_Server ~]</code><code>#</code>
本文转自 justin_peng 51CTO博客,原文链接:http://blog.51cto.com/ityunwei2017/1846630,如需转载请自行联系原作者