Exceptionless 生产部署笔记
参考 部署用于生产的Exceptionlees(一个强大易用的日志收集服务)
1. 安装配置 redis 4.0 点击下载redis教学脑图
cd /opt
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
tar -zxvf redis-4.0.10.tar.gz
cd redis-4.0.10
make && make install

将默认的redis.conf (默认配置文件不要动) 拷贝到自己定义好的一个路径下,比如 myconf
cd /opt/redis-4.0.10
mkdir myconf
cp redis.conf myconf
修改 myconf文件夹下 redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动

把 bind 127.0.0.1 注释掉 proteced-mode 改为 false

防火墙放开 redis 端口默认 6379 安全问题 可以让运维控制 6379端口的白名单
sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
sudo firewall-cmd –reloadcd /opt/redis-4.0.10./src/redis-server myconf/redis.conf
本地 telnet redis服务器 6379端口 看是否成功
2.安装 Elasticsearch 5.6 参考链接 Elasticsearch在Centos 7上的安装与配置
安装java 1.8.0
yum install java-1.8.0-openjdk -y
安装 Elasticsearch 5.6
cd /opt/wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.10.tar.gztar -zxvf elasticsearch-5.6.10.tar.gz
groupadd es #增加es组useradd es -g es -p pwd #增加es用户并附加到es组chown -R es:es elasticsearch-5.6.10 #给目录权限su es #使用es用户cd /opt/elasticsearch-5.6.10/./bin/elasticsearch -d #后台运行es
elasticsearch 外网可访问
cd /opt/elasticsearch-5.6.10/vim./config/elasticsearch.yml
找到network.host: 一行,去除#号,修改为:
network.host: 0.0.0.0
默认情况下 elasticsearch需要申请2G内存,我服务器共2G, 解决办法 如下, 设置es的堆大小
ES_JAVA_OPTS="-Xms256m -Xmx256m" ./bin/elasticsearch –d
外网访问下
http://172.30.6.1:9200/?pretty
其他错误 参考下: 这篇博文
使用supervisor 来管理 redis 和elasticsearch 安装 supervisor 参考这篇博文
yum install python-setuptools -y easy_install supervisor mkdir /etc/supervisor echo_supervisord_conf > /etc/supervisor/supervisord.conf

建立文件夹 mkdir /etc/supervisor/conf.d
新增 redis_supervisor.conf 文件 记得把 上文 redis 配置中的 daemonize 改回 yes
[program:redis_supervisor]
command=redis-server myconf/redis.conf ; 运行程序的命令
directory=/opt/redis-4.0./ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/redis_supervisor.err.log ; 错误日志文件
stdout_logfile=/var/log/redis_supervisor.out.log ; 输出日志文件
user=root ; 进程执行的用户身份
stopsignal=INT ; INT(类似于Ctrl+C)(kill -INT pid),退出后会将写文件或日志(推荐)
新增 elasticsearch_supervisor.conf 文件
[program:elasticsearch_supervisor]
command=/opt/elasticsearch-5.6./bin/elasticsearch ; 运行程序的命令
directory=/opt/elasticsearch-5.6./bin/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/elasticsearch_supervisor.err.log ; 错误日志文件
stdout_logfile=/var/log/elasticsearch_supervisor.out.log ; 输出日志文件
user=es ; 进程执行的用户身份
stopsignal=INT ; INT(类似于Ctrl+C)(kill -INT pid),退出后会将写文件或日志(推荐)
配置 supervisor开启启动 新建一个“/usr/lib/systemd/system/supervisord.service”文件
# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon [Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target

使用supervisor启动时,查看日志仍然报下面的错误
max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
解决办法:
切换到root用户修改vim /etc/supervisor/supervisord.conf 改下supervisor的操作文件句柄和文件数量


3. windows下 安装 Exceptionless.4.1
- 下载最新的 latest Exceptionless release artifact ZIP ,下载后解压
- 在IIS中新建一个网站,路径选择Exceptionless解压目录中的wwwroot目录,端口这里可以自定义,比如用8004,应用程序池选4.0集成
- 修改web.config中的ElasticSearchConnectionString为es的站点http://:ElasticSearchIP:9200,修改<add key="BaseURL" value="http://IIS站点绑定的IP:8004/#!" />,注意后面的"#"
- 修改app.config.*.js中的.constant('BASE_URL', 'http://IIS站点绑定的IP:8004') 注意后面没有#
- 打开http://IIS站点绑定的IP:8004 就能看到登录页面了,然后创建账户-->创建项目,比如创建一个控制台项目,这里就会提示怎么使用Exceptionless
- ExceptionlessClient.Default.Startup("oXX5BJqhS30ni045BqthqJtiSnpB0naMactfmYmI"),这里的oXX5BJqhS30ni045BqthqJtiSnpB0naMactfmYmI就是api-key
开启前 要记得 把 redis, ElasticSearch 都启动
4. net core 项目中 使用 尝试 启动项目 throw个异常 看看 , 配置到 配置文件中

5. 集成到 NLog
NuGet 安裝 NLog.Extensions.Logging 与 Exceptionless.NLog
装完之后,我们就需要为Nlog添加配置文件了。默认情况下Nlog会在根目录寻找一个叫做nlog.config的文件作为配置文件。那么我们就手动改添加一个nlog.config:
参考下 安装完Exceptionless.NLog 给的 示例文档

最终 Nlog.config文件 内容如下 记得 右键 Nlog.config 属性 改为始终复制
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<extensions>
<add assembly="Exceptionless.NLog"/>
</extensions>
<targets async="true">
<target xsi:type="Exceptionless" name="exceptionless" >
<field name="host" layout="${machinename}" />
<field name="identity" layout="${identity}" />
<field name="windows-identity" layout="${windows-identity:userName=True:domain=False}" />
<field name="process" layout="${processname}" />
</target>
<target xsi:type="File" name="logfile" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="exceptionless" />
<logger name="*" minlevel="Info" writeTo="logfile" />
</rules>
</nlog>
然后需要把Nlog集成到asp.net core

需要使用的地方

这样 日志 同时记录到 本地 file 又 记录到 elasticsearch 中了
Exceptionless 生产部署笔记的更多相关文章
- MongoDB 生产环境笔记
目录 MongoDB 生产环境笔记 一.vm.zone_reclaim_mode 参数 二.添加 swap 分区 三.设置 swappiness 参数 四.内核和文件系统版本 五.禁用 Transpa ...
- HappyAA服务器部署笔记1(nginx+tomcat的安装与配置)
这是本人的服务器部署笔记.文章名称叫"部署笔记1"的原因是之后我对这个进行了改进之后,会有"部署笔记2","部署笔记3"...循序渐进,估计 ...
- Exceptionless 本地部署踩坑记录
仅已此文记录 Exceptionless 本地部署所遇到的问题 1.安装ElasticSearch文本 执行elasticsearch目录中的elasticsearch.bat 没有执行成功. 使用命 ...
- tomcat集群机制剖析及其生产部署选型
为什么要使用集群? 为什么要使用集群?主要有两方面原因:一是对于一些核心系统要求长期不能中断服务,为了提供高可用性我们需要由多台机器组成的集群:另外一方面,随着访问量越来越大且业务逻辑越来越复杂,单台 ...
- RocketMQ 简单梳理 及 集群部署笔记【转】
一.RocketMQ 基础知识介绍Apache RocketMQ是阿里开源的一款高性能.高吞吐量.队列模型的消息中间件的分布式消息中间件. 上图是一个典型的消息中间件收发消息的模型,RocketMQ也 ...
- Nextcloud私有云盘在Centos7下的部署笔记
搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典.而Nextcloud是ownCloud原开发团队打造的号称是“下一代”存储.初一看觉得“口气”不小,刚推出来就重新“定义”了Clo ...
- Spark集群基于Zookeeper的HA搭建部署笔记(转)
原文链接:Spark集群基于Zookeeper的HA搭建部署笔记 1.环境介绍 (1)操作系统RHEL6.2-64 (2)两个节点:spark1(192.168.232.147),spark2(192 ...
- 【Zookeeper】Zookeeper部署笔记
Zookeeper部署笔记 .上传zk安装包 .解压 .配置(先在一台节点上配置) .1添加一个zoo.cfg配置文件 $ZOOKEEPER/conf mv zoo_sample.cfg zoo.cf ...
- MySQL 8 InnoDB 集群生产部署
生产部署InnoDB集群 1.先决条件 InnoDB集群使用组复制技术,所以InnoDB中的实例需要满足组复制要求.可以查看MySQL文档中组复制相关的部分,也可以通过AdminAPI提供的dba.c ...
随机推荐
- vue 使用微信JSSDK,在IOS端会授权出错
原因: vue-router切换的时候操作的都是浏览器的历史记录,iOS会把第一次刚进入时的URL作为真实URL,安卓会把当前URL作为真实URL. 所以导致后端在配置好的授权参数获得的config参 ...
- Jenkins与sonar扫描的集成问题
记录本周遇到的头疼了很久的一个问题,由于公司需要使用jenkins来自动管理构建项目,然后在关联sonar对项目代码质量进行审核. 接着坑爹的问题来了,原有的技术手段为项目构建成功后通过jenkins ...
- Cookie笔记
1.Cookie HTTP Cookie(也叫Web Cookie或浏览器Cookie)是服务器发送到用户浏览器并保存在浏览器的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器 ...
- 基于maven的spring-boot的pom文件详解
Spring Boot 推荐的基础 POM 文件 名称 说明 spring-boot-starter 核心 POM,包含自动配置支持.日志库和对 YAML 配置文件的支持. spring-boot-s ...
- D. Maximum Diameter Graph 贪心+图论+模拟
题意:给出n个点的度数列 上限(实际点可以小于该度数列)问可以构造简单路最大长度是多少(n个点要连通 不能有平行边.重边) 思路:直接构造一条长链 先把度数为1的点 和度数大于1的点分开 先把度数 ...
- [SCOI2015]小凸想跑步
题目描述 小凸晚上喜欢到操场跑步,今天他跑完两圈之后,他玩起了这样一个游戏. 操场是个凸 n 边形, nn 个顶点按照逆时针从 0 ∼n−1 编号.现在小凸随机站在操场中的某个位置,标记为p点.将 p ...
- Eclipse 运行导入的 Java 项目时,Error:A JNI error has occurred
出现场景 导入 Java 项目,运行时,出现:Error:A JNI error has occurred.... 解决方式 该项目的 Build Path , 在Libraries 中删除后重新添加 ...
- 关于confluence上传文件附件预览查看时出现乱码的问题解决办法
在confluence上传excel文件,预览时发现乱码问题主要是因为再上传文件的时候一般是Windows下的文件上传,而预览的时候,是linux下的环境,由于linux下没有微软字体,所以预览的时候 ...
- Docker: 基础介绍 [一]
一.Docker介绍 Docker是Docker.lnc公司开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源 Do ...
- c# mvc 在控制器中动态解析cshtml文件并获取对应的html代码
public static string GetViewHtml(ControllerContext context, string viewName, Object param) { if (str ...

其他错误 参考下: