发布notify

182 阅读1分钟

一、搭建服务器环境


1. 安装Python2.7

当前主机环境为centos6.4 当前Python环境为Python2.6.6 ,需当前环境运行notify程序,还需要Python2.7 环境安装ES,安装Python2.7如下

wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
tar zxvf Python-2.7.13.tgz
cd Python-2.7.13

./configure --prefix=/usr/local/ -enable-shared CFLAGS=-fPIC && make && make install

cd /usr/local/lib
ln -s libpython2.7.so.1.0 libpython2.7.so

vim /etc/ld.so.conf.d/local.conf
/usr/local/lib #写入Python的lib路径
/sbin/ldconfig
/sbin/ldconfig -v #查看是否被引用

至此,当前主机上就有了Python2.7环境了

2. 安装es

根据测试版本,安装ES服务

virtualenv --system-site-packages elasticsearch -p python2.7 #使用Python2.7隔离环境

yum install -y java-1.7.0-openjdk
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

vim /etc/yum.repos.d/es.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

yum install -y elasticsearch

修改配置,并启动程序

vim /etc/elasticsearch/elasticsearch.yml

cluster.name: your_name
path.data: your_data_path
path.logs: your_logs_path
http.port: your_port
action.destructive_requires_name: true
network.host: your_host
node.name: your_node

service elasticsearch start()#管理程序

curl http://your_host, 测试 成功

3. 构建后台代码环境

使用Python2.6构建后台代码运行环境

# 起一个虚拟环境
virtualenv --system-site-packages notify_new -p python2.6
pip install -r requirements.txt

二、 同步Python代码

1. 前台

将前端代码编译后提交到代码库,发布时直接获取即可

2. 后台

代码审核后,提交后台代码;打包后提交至代码库; 在生产环境获取代码

3. 构建ES

1. 创建 ES mapping

# 创建mapping
curl -XPUT http://ip/_template/mapping.json --user username:userpawd -d @/mapping.json
# 查看mapping
curl -XGET http://ip/_template --user username:userpawd| python -m json.tool

2. 创建 index

curl -XPUT 'http://ip/alerts_sender' --user username:userpawd

#查看 index
curl -XGET http://ip/cat/indices --user username:userpawd

3. 创建外部表 (跑脚本)

三、 psql同步ES

安装扩展 python2.6 装了 multicorn-1.3.2.zip

wget http://api.pgxn.org/dist/multicorn/1.3.2/multicorn-1.3.2.zip
unzip multicorn-1.3.2.zip
cd multicorn-1.3.2
make && make install

git clone https://github.com/Mikulas/pg-es-fdw /tmp/pg-es-fdw
cd $_
sudo python setup.py install

将SQL操作写入如下 的.sql脚本;跑这个脚本

psql -d aialert -U postgres -f multicorn_pg-es-fdw.sql

** psql操作扩展 命令示例:**

# 1.创建扩展

CREATE EXTENSION multicorn;

# 2.创建该数据源的服务器对象

CREATE SERVER multicorn_es FOREIGN DATA WRAPPER multicorn OPTIONS ( wrapper 'dite.ElasticsearchFDW');

# 3.创建外围表

CREATE FOREIGN TABLE alerts_es (
created_at timestamp,
updated_at timestamp,
deleted_at timestamp,
deleted boolean,
id integer,
keywords character varying(128),
ip character varying(128),
title character varying(128),
content character varying(512),
source character varying(128),
category character varying(128),
sendedid character varying(50))
SERVER multicorn_es OPTIONS (host '127.0.0.1', port '9222', node 'alerts_es', index 'alerts_es');


# 4.创建触发器
CREATE OR REPLACE FUNCTION delete_alert() RETURNS trigger AS $def$
BEGIN
DELETE FROM alerts_es a WHERE a.id = OLD.id; RETURN OLD; END; $def$ LANGUAGE plpgsql;



查看外围表服务
select * from pg_foreign_server;
查看扩展
select name from pg_available_extensions;
查看触发器
SELECT * FROM pg_trigger;
查看外围表
select * from pg_foreign_table;

删除扩展
DROP EXTENSION EXTENSION_name;
删除服务
DROP SERVER foreign_server;
删除 外围表
DROP FOREIGN TABLE foreign_table;
删除 触发器
DROP TRIGGER triggername;