系统及版本:Centos7 zabbix3.2.6
一、安装
1、关闭防火墙seLinux
[root@C2 ~]# systemctl stop firewalld.service
[root@C2 ~]# systemctl disable firewalld.service
[root@C2 ~]# setenforce 0
[root@C2 ~]# vim /etc/selinux/config
SELINUX=disabled
2、安装lamp环境
[root@C2 ~]# yum -y install httpd mariadb-server zlib zlib-devel php php-mysql php-gd php-fpm php-mbstring mcrypt php-mcrypt php53-xml php53-xmlrpc
3、 软连接所依赖的动态库文件
[root@C2 ~]# ln -s /usr/lib64/mysql/libmysqlclient.so.18.0.0 /usr/lib/libmysqlclient.so
##此处/usr/lib64/mysql/libmysqlclient.so.*****后边是版本号。注意自己的版本号
4.修改php-fpm 配置参数(/etc/php-fpm.d/www.conf)
[root@C2 ~]# sed -i 's/;rlimit_files = 1024/rlimit_files = 51200/g' /etc/php-fpm.d/www.conf
[root@C2 ~]# sed -i 's/^pm.max_children.*/pm.max_children = 300/g' /etc/php-fpm.d/www.conf
[root@C2 ~]# sed -i 's#^listen =.*#listen = /tmp/php-fpm.socket#g' /etc/php-fpm.d/www.conf
5、启动和配置php.ini文件(做备份)
[root@C2 ~]# systemctl start php-fpm
[root@C2 ~]# cp /etc/php.ini /etc/php.ini.bak
[root@C2 ~]# sed -i 's/post_max_size \= 8M/post_max_size \= 16M/g' /etc/php.ini
[root@C2 ~]# sed -i 's/max_execution_time \= 30/max_execution_time \= 300/g' /etc/php.ini
[root@C2 ~]# sed -i 's/max_input_time \= 60/max_input_time \= 300/g' /etc/php.ini
[root@C2 ~]# sed -i 's/\;date.timezone \=/date.timezone \= Asia\/Shanghai/g' /etc/php.ini
6、通过yum安装zabbix服务
(注意yum版本有问题先清除缓存yum clean all)
[root@C2 ~]# yum clean all
[root@C2 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
[root@C2 ~]# yum install zabbix-server-mysql -y
[root@C2 ~]# yum install zabbix-web-mysql -y
[root@C2 ~]# yum install zabbix-agent -y (客户端,如果不监控自己可以不安装)
[root@C2 ~]# yum install zabbix-get -y (获取监控信息)
7、创建数据库及zabbix用户
[root@C2 ~]# systemctl start mariadb.service
[root@C2 ~]# systemctl enable mariadb.service
[root@C2 ~]# mysql
MariaDB [(none)]> create database zabbix character set utf8;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit
8、导入zabbix数据库
[root@C2 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.6/
[root@C2 zabbix-server-mysql-3.2.6]# zcat create.sql.gz | mysql -uroot zabbix;
注意:安全起见生产环境要给mariadb添加root密码
mysqladmin -u root password "newpass"
9、修改http配置
[root@C2 ~]# vim /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai (修改时区)
10、修改zabbix配置文件参数
cat >> /etc/zabbix/zabbix_server.conf <<eof
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
eof
11、启动相关服务和配置开机启动
[root@C2 ~]# systemctl start zabbix-server.service
[root@C2 ~]# systemctl start zabbix-agent.service
[root@C2 ~]# systemctl restart httpd
[root@C2 ~]# systemctl enable zabbix-server.service
[root@C2 ~]# systemctl enable zabbix-agent.service
[root@C2 ~]# systemctl enable httpd
11、输入http://ip:prot/zabbix 就可以访问zabbix安装页面
例如:http://192.168.1.125/zabbix
全显示OK就可以继续
12、输入mysql授权的用户名和密码
数据库名称:zabbix
用户名:zabbix
密码:zabbix
点击:Test connection
端口0:是默认3306
13、填写name选项即可,随便取名字,点击Next
14、Zabbix 默认登录用户名和秘密
用户名:admin
密码:zabbix
完成
二、解决zabbix中文乱码
1、更改中文:
2、解决乱码
(1)找到本地C:[Windows](http://www.ttlsa.com/windows/ "windows")\Fonts\simkai.ttf(楷体)上传到服务器zabbix网站目录fonts目录下
[root@C2 ~]# cd /usr/share/zabbix/fonts/
[root@C2 fonts]# ls
graphfont.ttf simkai.ttf
(2)修改zabbix php配置文件
[root@C2 ~]# vim /usr/share/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'simkai'); // font file name
(3)刷新界面,乱码解决
三、客户端安装
**安装前要关闭防火墙和selinux (如果不关闭防火墙请开放10050和10051端口)
1、配置yum源
(yum版本有问题先清除缓存yum clean all)
[root@C3 ~]# yum clean all
[root@C3 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
2、安装客户端
[root@C3 ~]# yum install zabbix-agent -y
3、编辑配置文件,修改主机和客户端IP
[root@C3 ~]# vim /etc/zabbix/zabbix_agentd.conf ##修改内容如下
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=192.168.1.125 ##zabbix服务器地址
ServerActive=192.168.1.125:10051 ##zabbix服务器地址和端口号 (默认是10051)
Hostname=192.168.1.126 ##zabbix客户端IP地址
UnsafeUserParameters=1
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/
4、启动客户端
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service
5、页面logo修改
1).路径
/usr/share/zabbix/img
2).需要SVG编辑工具修改icon-sprite.svg
3).更多需求参考配置文件/usr/share/zabbix/styles/*.css
四、实现企业微信报警
1、申请企业微信(http://work.weixin.qq.com/)
写企业名
管理员扫码登录
登记管理员信息
2、添加组添加成员
3、添加一个企业应用
扫描二维码微信关注:(可以在微信里关注,在个人微信接收消息)
4、需要记录的消息
AgentId 1******
Secret Cy6**************************8KyXqAgA
CorpID wwb********2e5f60
部门ID
用户微信号
5、修改Zabbix.conf
[root@C2 ~]# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
6、设置python脚本
1)安装python的一个模块
[root@C2 ~]# wget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.2.tar.gz
[root@C2 ~]# tar zxvf simplejson-3.8.2.tar.gz && cd simplejson-3.8.2
[root@C2 ~]# python setup.py build
[root@C2 ~]# python setup.py install
2)写python脚本
[root@C2 ~]# cd /usr/lib/zabbix/alertscripts/
[root@C2 alertscripts]# vim wechat.py
#!/usr/bin/python
#_*_coding:utf-8 _*_
import urllib,urllib2
import json
import sys
import simplejson
reload(sys)
sys.setdefaultencoding('utf-8')
def gettoken(corpid,corpsecret):
gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
print gettoken_url
try:
token_file = urllib2.urlopen(gettoken_url)
except urllib2.HTTPError as e:
print e.code
print e.read().decode("utf8")
sys.exit()
token_data = token_file.read().decode('utf-8')
token_json = json.loads(token_data)
token_json.keys()
token = token_json['access_token']
return token
def senddata(access_token,user,subject,content):
send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
send_values = {
"touser":"1514***92190", #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
"toparty":"2", #企业号中的部门id。
"msgtype":"text", #消息类型。
"agentid":"1000002", #企业号中的应用id。
"text":{
"content":subject + '\n' + content
},
"safe":"0"
}
# send_data = json.dumps(send_values, ensure_ascii=False)
send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')
send_request = urllib2.Request(send_url, send_data)
response = json.loads(urllib2.urlopen(send_request).read())
print str(response)
if __name__ == '__main__':
user = str(sys.argv[1]) #zabbix传过来的第一个参数
subject = str(sys.argv[2]) #zabbix传过来的第二个参数
content = str(sys.argv[3]) #zabbix传过来的第三个参数
corpid = 'ww127b8*******6c86b1' #CorpID是企业号的标识
corpsecret = 'v0_nOsn7h85o-4******60oJDgavQcgNfnRX3B0kNMb8' #corpsecretSecret是管理组凭证密钥
accesstoken = gettoken(corpid,corpsecret)
senddata(accesstoken,user,subject,content)
3)修改权限
[root@C2 alertscripts]# pwd
/usr/lib/zabbix/alertscripts
[root@C2 alertscripts]# chmod +x wechat.py && chown zabbix:zabbix wechat.py
7、脚本测试
[root@C2 alertscripts]# ./wechat.py test-msg test hello
关注个人微信也可以收到报警
8、配置zabbix
1)配置报警媒介
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
注意:别写错
2)设置用户
之后更新
3)创建主机--》监控项--》触发器
添加http server的模板
4)设置动作
- hostname: ({HOST.NAME}
- Time:{EVENT.DATE} {EVENT.TIME}
- level:{TRIGGER.SEVERITY}
- message:{TRIGGER.NAME}
-
event:{ITEM.NAME}:{ITEM.VALUE}
故障状态:{TRIGGER.STATUS}\n故障机器 IP:{HOST.IP}\n故障时间:{EVENT.DATE}:{EVENT.TIME}\n故障详情: {TRIGGER.NAME}\n故障级别: {TRIGGER.SEVERITY}\n故障 ID: {EVENT.ID}
1.hostname: ({HOST.NAME}
2.Time:{EVENT.DATE} {EVENT.TIME}
3.level:{TRIGGER.SEVERITY}
4.message:{TRIGGER.NAME}
5.event:{ITEM.NAME}:{ITEM.VALUE}
恢复状态:{TRIGGER.STATUS}\n恢复机器 ip:{HOST.IP}\n恢复时间:{EVENT.DATE}:{EVENT.TIME}\n故障详情: {TRIGGER.NAME}\n故障级别: {TRIGGER.SEVERITY}\n故障 ID: {EVENT.ID}
5)之后安装httpd 测试
注意事项:
1、添加主机的时候后边的可用性如果是红色的,可以点击,之后就可以复制报错信息进行查看。有的时候可用性可能会不亮,可以添加个net-in监控项看看是否可以亮,如果不亮证明客户端配置有问题。
2、 不论配置服务端还是配置客户端都要关闭selinux,不然监控的时候可用性会是红色的,而且会报很多奇怪的错误。
3、 添加主机的时候一定要注意(主机名一定要对应客户端配置文件的Hostname。不然不能通信)
网友评论